Story Transcript
2. Elementos de Arquitectura de Computadores INF2100 - Computaci´ on 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´ omo escribimos y ejecutamos programas sobre ellos. Arquitectura de un computador. Componentes. Sistemas Operativos y software. Representaci´ on de n´ umeros. Base binaria y hexadecimal. Lenguajes de programaci´on. El proceso de compilaci´ on.
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´ omo se ejecutan los programas que vamos a desarrollar, es u ´til y pr´actico conocer c´ omo funciona la m´aquina 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´en 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´on interna de todos los componentes... Caminos el´ectricos 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˜ no de una palabra es un par´ametro determinante en los sistemas. Sistemas embebidos peque˜ nos: 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´on con el exterior... Dispositivos de entrada: teclado, mouse, joysticks, micr´ ofonos, c´amaras... 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´es 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´ odigo de un programa en ejecuci´on. F´ısicamente, est´a compuesta de un conjunto de celdas de Dynamic Random Access Memory (DRAM). L´ ogicamente, es un arreglo de posiciones, numerados secuencialmente desde 0. ¿Cu´anta memoria se puede utilizar? Depende del tama˜ no del bus de direcciones y del tama˜ no de cada celda. Un Un Un Un Un
bus de 8-bit permite usar 256 posiciones de memoria. bus de 10-bit permite usar 1024 (1K) posiciones de memoeria. bus de 16-bit permite usar 65536 (64K) posiciones de memoria. bus de 20-bit permite usar 1048576 (1M) posiciones de memoria. bus de 32-bit permite usar 4294967296 (4G) posiciones de memoria.
¿Y si s´ olo 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´ on... Interpreta y ejecuta las instrucciones de un programa, que est´an almacenadas en la memoria principal. Compuesto por un conjunto peque˜ no de celdas, y una ALU: Registros. Celdas de memoria de acceso inmediato. ALU. Unidad aritm´etica/l´ ogica. Ejecuta los c´alculos requeridos.
¿C´omo saber qu´e parte del programa debemos ejecutar? Un registro especial se usa para saber en qu´e parte del c´ odigo del programa nos encontramos: Program Counter (PC). La CPU ejecuta el siguiente ciclo una y otra vez: Fetch. Lee una instrucci´ on de memoria en los registros. Actualiza el Program Counter para poder leer la siguiente instrucci´ onExecute. Decodifica y ejecuta la instrucci´ on.
Cristian Ruz R. (UDP)
2. Elementos de Arquitectura de Computadores
INF2100 - Sem. 2/2007
9 / 16
Arquitectura de Von Neumann: CPU
¿Con qu´e frecuencia se repite esto? La CPU tiene una frecuencia de reloj. En cada tick se lee o se ejecuta una instrucci´ on. Algunas instrucciones ocupan m´as de un ciclo.
Algunos procesadores famosos: Intel Intel Intel Intel Intel Intel
80386: 25 MHz 80486: 66 MHz Pentium: 100 MHz Pentium II: 300 MHz Pentium III: 750 MHz 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. L0: Registers
Smaller, faster, and costlier (per byte) storage devices
L1: L2:
L3: Larger, slower, and cheaper (per byte) storage devices
L4:
CPU registers hold words retrieved from cache memory.
On-chip L1 cache (SRAM)
L1 cache holds cache lines retrieved from the L2 cache.
Off-chip L2 cache (SRAM)
L2 cache holds cache lines retrieved from memory.
Main memory (DRAM)
Main memory holds disk blocks retrieved from local disks.
Local secondary storage (local disks) Local disks hold files retrieved from disks on remote network servers.
L5:
Cristian Ruz R. (UDP)
Remote secondary storage (distributed file systems, Web servers)
2. Elementos de Arquitectura de Computadores
INF2100 - Sem. 2/2007
11 / 16
El Sistema Operativo Todo lo anteriormente descrito es hardware. ¿Qui´en controla todo esto? El hardware tiene algunas instrucciones b´asicas 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
Cristian Ruz R. (UDP)
Main memory
I/O devices
2. Elementos de Arquitectura de Computadores
Hardware
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´ on 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´omo 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´as 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´ on main), y carga esa direcci´ on el Program Counter. El programa de usuario est´a 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´a 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´a extendida de Unix RedHat, Fedora, Debian, Slackware, Ubuntu, CentOS, Gentoo
Solairs: Sun tambi´en tiene lo suyo. MacOS: la estrella de Apple.
Cristian Ruz R. (UDP)
2. Elementos de Arquitectura de Computadores
INF2100 - Sem. 2/2007
16 / 16