Sei sulla pagina 1di 16

2.

Elementos de Arquitectura de Computadores

INF2100 - Computación I

Semestre 2/2007

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 1 / 16


Objetivos

En este capı́tulo revisaremos algunos de los conceptos fundamentales con


que funcionan los computadores, y cómo escribimos y ejecutamos
programas sobre ellos.
Arquitectura de un computador. Componentes.
Sistemas Operativos y software.
Representación de números. Base binaria y hexadecimal.
Lenguajes de programación.
El proceso de compilación.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 2 / 16


Arquitectura de un computador

Para poder construir un programa que resuelve un problema, debemos


plantear un algoritmo, e implementarlo con un programa.
Para comprender cómo se ejecutan los programas que vamos a desarrollar,
es útil y práctico conocer cómo funciona la máquina sobre la cual estamos
trabajando.
Todos los computadores comparten una arquitectura similar desde sus
inicios. La tecnologı́a, por supuesto, ha ido mejorando considerablemente.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 3 / 16


Arquitectura de Von Neumann

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 4 / 16


Arquitectura de Von Neumann

La arquitectura de un computador tiene 3 componentes principales:


Procesador (CPU, Central Processing Unit).
Memoria principal.
Dispositivos de Entrada/Salida, E/S (Input/Output, I/O).
También hay que considerar los buses de datos que conectan todos estos
componentes.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 5 / 16


Arquitectura de Von Neumann: Buses

La comunicación interna de todos los componentes...


Caminos eléctricos que corren a lo largo de todo el sistema.
Permiten transmitir datos entre los distintos componentes.
Los datos tı́picamente se transmiten en palabras (words), que son
grupos de bytes.
El tamaño de una palabra es un parámetro determinante en los
sistemas.
Sistemas embebidos pequeños: palabras de 1 a 2 bytes (8 a 16-bit)
Intel Pentium: palabras de 4 bytes (32-bit)
Intel Itanium, Sun SPARC: palabras de 8 bytes (64-bit)

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 6 / 16


Arquitectura de Von Neumann: Entrada/Salida

La comunicación con el exterior...


Dispositivos de entrada: teclado, mouse, joysticks, micrófonos,
cámaras...
Dispositivos de salida: pantalla, audı́fonos/parlantes, impresoras...
Dispositivos de entrada y salida: memoria usb, discos, conexiones de
red...
Se comunican con el bus de E/S a través de controladores o
adaptadores.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 7 / 16


Arquitectura de Von Neumann: Memoria Principal
El almacenamiento principal...
Lugar de almacenamiento temporal.
Almacena los datos y el código de un programa en ejecución.
Fı́sicamente, está compuesta de un conjunto de celdas de Dynamic
Random Access Memory (DRAM).
Lógicamente, es un arreglo de posiciones, numerados secuencialmente
desde 0.
¿Cuánta memoria se puede utilizar? Depende del tamaño del bus de
direcciones y del tamaño de cada celda.
Un bus de 8-bit permite usar 256 posiciones de memoria.
Un bus de 10-bit permite usar 1024 (1K) posiciones de memoeria.
Un bus de 16-bit permite usar 65536 (64K) posiciones de memoria.
Un bus de 20-bit permite usar 1048576 (1M) posiciones de memoria.
Un bus de 32-bit permite usar 4294967296 (4G) posiciones de memoria.
¿Y si sólo tengo 256 MB de memoria, como puedo usar 4GB?
Memoria virtual.
Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 8 / 16
Arquitectura de Von Neumann: CPU

Finalmente, aquı́ se ejecuta toda la acción...


Interpreta y ejecuta las instrucciones de un programa, que están
almacenadas en la memoria principal.
Compuesto por un conjunto pequeño de celdas, y una ALU:
Registros. Celdas de memoria de acceso inmediato.
ALU. Unidad aritmética/lógica. Ejecuta los cálculos requeridos.
¿Cómo saber qué parte del programa debemos ejecutar? Un registro
especial se usa para saber en qué parte del código del programa nos
encontramos: Program Counter (PC).
La CPU ejecuta el siguiente ciclo una y otra vez:
Fetch. Lee una instrucción de memoria en los registros.
Actualiza el Program Counter para poder leer la siguiente instrucción-
Execute. Decodifica y ejecuta la instrucción.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 9 / 16


Arquitectura de Von Neumann: CPU

¿Con qué frecuencia se repite esto?


La CPU tiene una frecuencia de reloj. En cada tick se lee o se ejecuta
una instrucción. Algunas instrucciones ocupan más de un ciclo.
Algunos procesadores famosos:
Intel 80386: 25 MHz
Intel 80486: 66 MHz
Intel Pentium: 100 MHz
Intel Pentium II: 300 MHz
Intel Pentium III: 750 MHz
Intel Pentium 4: 3.2 GHz.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 10 / 16


Almacenamiento

Distintos tipos de almacenamiento dan lugar a una jerarquı́a de memoria.

Smaller,
L0:
faster, Registers CPU registers hold words retrieved from
and cache memory.
costlier L1: On-chip L1
(per byte) cache (SRAM)
storage L1 cache holds cache lines retrieved
devices from the L2 cache.
L2: Off-chip L2
cache (SRAM) L2 cache holds cache lines
retrieved from memory.

L3: Main memory


(DRAM)
Larger, Main memory holds disk
slower, blocks retrieved from local
and disks.
cheaper Local secondary storage
(per byte) L4:
storage (local disks)
devices Local disks hold files
retrieved from disks on
remote network servers.

L5: Remote secondary storage


(distributed file systems, Web servers)

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 11 / 16


El Sistema Operativo

Todo lo anteriormente descrito es hardware. ¿Quién controla todo esto?


El hardware tiene algunas instrucciones básicas codificadas.
BIOS: Basic Input/Output System.
El que permite utilizar todos estos recursos es un software que se
inicia al encender al computador (en verdad la BIOS permite
iniciarlo): el Sistema Operativo.
El sistema operativo administra el hardware, y permite al usuario
ejecutar programas.
Los programas del usuario funcionan sobre el sistema operativo.
Los programas del usuario no pueden comunicarse directamente con
el hardware. Para ello deben utilizar llamadas al sistema operativo
(system calls).

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 12 / 16


El Sistema Operativo

Application programs
Software
Operating system
Processor Main memory I/O devices Hardware

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 13 / 16


El Sistema Operativo

El sistema operativo provee abstracciones para permitir que los


programas del usuario puedan ejecutar:
Procesos: representan la ejecución de un programa.
Memoria virtual: permite utilizar memoria fı́sica no contı́nua, de forma
independiente a la cantidad de memoria fı́sica disponible.
Archivos: permiten tener acceso a los dispositivos de entrada/salida
(por ejemplo, discos).

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 14 / 16


¿Cómo se ejecuta un programa?

Cuando el usuario solicita que el sistema operativo ejecute un programa se


dan los siguientes pasos:
El sistema operativo busca el archivo con el programa en el disco.
El sistema operativo copia (carga) el programa desde el disco a la
memoria principal.
En algunos casos puede cargar solamente un segmento del programa.
¿Y si el archivo es más grande que el espacio de memoria disponible?
Archivos de swap.
El sistema operativo crea un proceso para ejecutar el programa.
El sistema operativo ubica el inicio del programa (ej: función main), y
carga esa dirección el Program Counter.
El programa de usuario está lista para utilizar la CPU, y ejecutar.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 15 / 16


Algunos sistemas operativos

Cada uno tiene sus propias instrucciones y caracterı́sticas. Un programa


hecho para un sistema operativo no funcionará sobre otro (¿o sı́?).
Algunos sistemas operativos:
Windows, y todas sus variedades.
1.0, 2.0, 3.1, 3.11, 95, 98, NT, Me, XP, Vista, etc...
Unix, y variantes.
BSD, FreeBSD, Berkeley
Irix (Silicon Graphics)
Linux, la variante má extendida de Unix
RedHat, Fedora, Debian, Slackware, Ubuntu, CentOS, Gentoo
Solairs: Sun también tiene lo suyo.
MacOS: la estrella de Apple.

Cristian Ruz R. (UDP) 2. Elementos de Arquitectura de Computadores INF2100 - Sem. 2/2007 16 / 16

Potrebbero piacerti anche