Title: Introduccin
1Introducción
- Pedro Rodríguez Moreno
- Arquitectura de Computadores y Sistemas (IECI)
- Departamento de Sistemas de Información
- Facultad de Ciencias Empresariales
2Lecturas Recomendadas para este capítulo
- C. Hamacher, Z. Vranesic, S. Zaky. Organización
de Computadores. 5ª. Edición, McGraw-Hill, 2003 - Andrew Tanenbaum. Organización de Computadores.
4a Edición, Prentice-Hall, 1999. - Leer capítulo 1 (para ser controlado en test 1).
- Silberchatz, Peterson, Galvin. Sistemas
Operativos conceptos fundamentales. 3a Edición,
Addison Wesley, 1994.
3Antecedentes
- Todos los computadores digitales básicamente son
máquinas electrónicas que pueden almacenar y
procesar datos e incluso transmitirlos a otro
computador aunque su ubicación sea remota. - Un computador se puede definir como un conjunto
de dispositivos electrónicos, que interactuan
entre ellos para procesar datos y entregar
resultados a través de la ejecución de programas. - En los principios de la computación moderna,
(década del 40) los primeros computadores eran
enormes máquinas que solamente podían procesar
información numérica, eran además, limitados en
su almacenamiento y poder de procesamiento. - Los computadores de hoy día son de propósito
general y pueden procesar distintos tipos de
datos, tales como numéricos, alfanuméricos,
gráficos, etc. - Un computador está compuesto de dos elementos
básicos que son consustanciales y que dan vida
a la máquina - El Hardware conformado por todos los elementos
físicos tangibles (CPU, memoria, disco, buses). - El Software lo constituyen los programas básicos
del sistema (como el Sistema Operativo), los
programas de aplicación (procesadores de texto,
etc.), software administrativos, etc.
4Estructura General de un Computador
5Organización Básica de un Computador
6Dispositivos de Almacenamiento
- Memoria principal o almacenamiento principal
compuesto por dos tipos de memorias - La memoria ROM (Read Only Memory). Se escriben
los programas básicos del sistema, tales como las
rutinas de inicialización del sistema. - La memoria RWM (Read Write Memory) que es la
memoria de lectura y escritura, pero que tiene
como característica principal, su alta
volatilidad. En esta memoria reside el Sistema
Operativo y los programas de los usuarios. - Ambas memorias son de tipo RAM (Random Access
Memory), es decir de acceso alelatorio o directo. - Memoria secundaria o almacenamiento secundario.
Este tipo de almacenamiento tiene como
característica principal, ser de capacidad masiva
y permanente, es decir, la información no se
pierde. Los medios de almacenamiento típicos son - Discos magnéticos
- Discos ópticos.
- Cintas magnéticas.
- Pendrives.
- USB digital drive, etc.
7Representación interna de Datos
- Hoy en día, los datos son representados y
manipulados utilizando el sistema binario. - El sistema binario se compone de dos dígitos
0,1 los que se pueden combinar en grandes
conjuntos de 0's y 1's para formar las
representaciones de números decimales y
caracteres. - La unidad mínima de almacenamiento interno se
denomina bit. - Un bit puede tomar sólo uno de los dos valores
binarios 0 ó 1. - Existen otras unidades de almacenamiento tales
como el byte y la palabra - El byte conjunto de 8 bits, podemos almacenar
tanto caracteres como números. - La palabra conjunto de uno o más bytes
(generalmente su tamaño es potencia de 2, por
ejemplo 1, 2, 4, 8, 16, ...), donde se pueden
almacenar datos mas complejos.
8Unidades Lógicas de Almacenamiento
Código ASCII del caracter a.
- La palabra (ejemplo, una palabra de 2 bytes).
- La Memoria Principal podemos verla como un gran
arreglo o conjunto de bytes o palabras.
- En la Memoria Principal los datos se pueden
organizar aun en bloques de mayor tamaño, tales
como los segmentos y las páginas.
9Sistema de Codificación de Caracteres y Datos
Numéricos
- Cada caracter posee un código binario único, que
está definido por el sistema de codificación de
caracteres ASCII (American Standard Code for
Information Interchange). - La tabla de caracteres ASCII y sus
correspondientes códigos (ya sea en los sistemas
decimal, hexadecimal, octal, y binario) la pueden
ver en - http//pebu.face.ubiobio.cl/prodrigu/scici/
introd/ASCII.html - Todos los caracteres se almacenan internamente
utilizando un byte de memoria. - Representación de Datos Numéricos. Para la
representación de datos numéricos utilizando un
byte de memoria, podemos ver que estos pueden
tener o no un signo. Si el número es signado,
entonces éste puede ser positivo (0) o negativo
(1), por tanto, en un byte debemos reservar un
bit para el signo.
Un byte de información numérica.
10La Unidad Central de Proceso (UCP o CPU)
- Conocido también como el Procesador, este
componente prácticamente constituyente el cerebro
del computador, ya que la mayor parte de su
''inteligencia'' reside aquí. La CPU es
responsable de la ejecución de las instrucciones
de los programas. - Componentes de la CPU. La CPU está conformada por
sub-unidades, cada una de las cuales desempeña
funciones particulares - La ALU o UAL (Unidad Aritmética y Lógica) que
ejecuta las operaciones aritméticas y lógicas
básicas. - La Unidad de Control responsable de emitir y
recibir las señales de control (impulsos
eléctricos) para la ejecución de las
instrucciones y otras operaciones básicas como el
control de otros dispositivos del computador. - Registros son pequeñas unidades de
almacenamiento (generalmente de 2 o más bytes)
que son utilizados por el procesador para
almacenar datos e instrucciones. Dependiendo del
procesador, la cantidad de registros físicos
puede variar desde 16 a 32.
11Arquitectura tipo von Neumann
12Hardware y el Sistema Operativo
- El Sistema Operativo (como Windows y Linux),
tiene el control sobre toda la máquina. - El hardware (CPU, Memoria, Discos, etc.) permiten
el almacenamiento y procesamiento de los datos a
través de la ejecución de programas. - El Sistema Operativo y los demás programas son
cargados (almacenados) en memoria para su
ejecución. - El procesador ejecuta las instrucciones de
máquina del Sistema Operativo y de los programas.
13Relación entre el Hardware y el Sistema Operativo
Programas de Aplicación
Procesos
Procesador (CPU)
Utilitarios
Dispositivos periféricos
disco
monitor
impresora
14El Sistema Operativo
- El Sistema Operativo forma parte del software del
sistema y es el programa más importante debido a
que éste es quien administra la máquina y todos
sus recursos (CPU, Memoria, Dispositivos
Periféricos y otros programas). - El sistema operativo está compuesto por un
conjunto de elementos tales como - El kernel o núcleo, que contiene todos los
programas que administran el hardware. - Los Utilitarios, tales como los comandos del
sistema, que ofrecene varios servicios tales como
fecha, hora, estadísticas, etc. - El shell (intérprete de comandos), el cual recibe
órdenes desde el teclado y los dirige hacia el
kernel del sistema operativo, para ejecutar
programas.
15Máquinas Multinivel Contemporáneas
Lenguaje Orientado al Problema
Lenguajes de alto nivel, los cuales son
utilizados para escribir los programas de
aplicación.
Nivel 5
Traducción (Compilador)
Es un lenguaje de programación que es una
representación simbólica del lenguaje de máquina
de la computadora
Lenguaje Ensamblador
Nivel 4
Traducción (Ensamblador)
Nivel de programación híbrido donde coexisten
instrucciones del nivel 2 y de este nivel
Sistema Operativo
Nivel 3
Interpretación Parcial
Nivel lógico de programación donde se encuentra
definido el lenguaje de máquina
Máquina Convencional
Nivel 2
Interpretación (Microprogramación)
Microprogramación
Nivel de programación orientado A la máquina
Nivel 1
Hardware interpreta y ejecuta microprogramas
Hardware
Lógica Digital
Nivel 0
Leer capítulo 1 de Tanenbaum
16Traductores Compiladores
- Son programas que permiten traducir un programa
desde un lenguaje de alto nivel a otro de mas
bajo nivel. Por ejemplo, el compilador del
lenguaje C.
17Traductores Intérpretes
- Un intéprete es un programa que acepta otro
programa (el programa fuente) escrito en un
determinado lenguaje (el lenguaje fuente) y lo
ejecuta. - El intérprete carga, analiza y ejecuta una a una
las instrucciones del programa fuente. - La interpretación se caracteriza por ser más
lenta que la compilación.
- Ejemplo de lenguaje interpretado Java.
18Tipos de Procesadores
- En los últimos años se han distinguido dos
grandes tendencias en la construcción de
procesadores. Se diferencian esencialmente en las
características de su repertorio de
instrucciones. - Procesadores CISC (Complex Instruction Set
Computer). - Procesadores RISC (Reduced Instruction Set
Computer). - Ambos tipos de microProcesadores han incluido un
conjunto de unidades funcionales adicionales que
los potencia - Unidad para el procesamiento aritmético en Punto
Flotante (FPU Floating Point Unit). - Unidad de Administración de Memoria (MMU Memory
Management Unit). - Unidad de Carga y Almacenamiento (Load/Store).
- Funciones de control de memoria caché.
- Implementación de un conjunto de registros
múltiples.
19Los Procesadores CISC
- Tienen un conjunto de instrucciones alto (entre
200 y 300) estas instrucciones son más complejas
que las de RISC, con lo que la circuitería
necesaria para decodificación y secuenciación
también aumenta, y la velocidad del proceso
disminuye. - Formato de instrucciones bastante variable (no
hay tamaño fijo de instrucciones). - El diseño hace que el procesador tenga que
realizar constantes accesos a memoria. - La microprogramación es una característica
importante y esencial de casi todas las
arquitecturas CISC. Como por ejemplo - Intel 8086, 8088, 80286, 80386, 80486, Pentium.
- Motorola 68000, 68010, 68020, 68030, 68040.
20La microprogramación
- La microprogramación significa que cada
instrucción de máquina es interpretada por un
microprograma localizado en una memoria en el
circuito integrado del procesador. - En la década de los sesenta, la micropramación,
por sus características, era la técnica más
apropiada para las tecnologías de memorias
existentes en esa época y permitía desarrollar
también procesadores compatibles. - Permite la emulación de arquitecturas.
- Los procesadores se dotaron de poderosos
conjuntos de instrucciones. - Las instrucciones compuestas son decodificadas
internamente y ejecutadas con una serie de
microinstrucciones almacenadas en una ROM
interna. Para esto se requieren de varios ciclos
de reloj (al menos uno por microinstrucción).
21Los Procesadores RISC
- Su juego de instrucciones es más reducido (menos
de 128), y las instrucciones son más sencillas
(con lo que se necesitarán más instrucciones para
ejecutar un programa). - El formato de instrucciones es fijo (o son pocos
formatos) con lo que el control de hardware es
más sencillo y se facilita la puesta de las
instrucciones en la memoria, lo que implica que
los accesos a la memoria se aceleren. - Por otra parte, estos accesos a memoria son menos
frecuentes ya que el procesador posee un mayor
número de registros. - Estos procesadores son los que están presentes en
las estaciones de trabajo. Como ejemplos podemos
citar a los procesadores - ALPHA de Digital Equipment, y
- UltraSPARC y MicroSPARC de Sun Microsystems.
- Debido a que se tiene un conjunto de
instrucciones simplificado, éstas se pueden
implantar por hardware directamente en la CPU, lo
cual elimina el microcódigo (microprogramación) y
la necesidad de decodificar instrucciones
complejas.
22Características comunes de los Procesadores RISC
- Modelo de conjunto de instrucciones Load/Store
(Cargar/Almacenar). - Sólo las instrucciones Load/Store acceden a
memoria las demás operaciones en un RISC, tienen
lugar sobre datos residentes en su gran conjunto
de registros. - Arquitectura de tres direcciones no destructiva.
- Los procesadores CISC destruyen la información
que existe en alguno de los registros, como
consecuencia de la ejecución normal de
instrucciones esto es debido a su arquitectura
de dos direcciones, por la cual el resultado de
una operación sobrescribe uno de los registros
que contenía a los operandos. - Por el contrario, las instrucciones RISC, con
tres direcciones, contienen los campos de los dos
operandos y de su resultado. - Tanto los operandos origen como el destino, son
mantenidos en los registros tras haber sido
completada la operación. - Instrucciones simples, de formato fijo, con pocos
modos de direccionamiento. - Las instrucciones simples reducen de manera muy
significativa el esfuerzo para su decodificación,
y favorecen su ejecución en pipelines. - Las instrucciones de longitud fija, con formatos
fijos, implican que los campos de códigos de
operación (opcodes) y de los operandos están
siempre codificados en las mismas posiciones,
permitiendo el acceso a los registros al mismo
tiempo que se está decodificando el código de
operación.
23Otras Características
- Todas las instrucciones tienen una longitud
equivalente a una palabra y están alineadas en la
memoria en palabras, ya que no pueden ser
repartidas en pedazos que puedan estar en
diferentes páginas. - Ausencia de microcódigo.
- El microcódigo no se presta a la ejecución en
ciclos únicos, ya que requiere que el hardware
sea dedicado a su interpretación dinámica. - La programación en microcódigo no hace que el
software sea más rápido que el programado con un
conjunto de instrucciones simples. - Todas las funciones y el control, en los
procesadores RISC, están "cableados" (hardwired),
para lograr una máxima velocidad y eficiencia. - Ejecución en pipelined.
- Las instrucciones simples, de formato fijo y
ciclo único permiten que las diferentes etapas de
los ciclos de ejecución (búsqueda o fetch,
decodificación, ejecución, y escritura del
resultado) para instrucciones múltiples, se
puedan realizar simultáneamente, de un modo más
simple y eficaz. - Ejecución en ciclos únicos (single-cycle).
- El resultado directo de los conjuntos de
instrucciones que ofrecen los procesadores RISC,
es que cada instrucción puede ser ejecutada en un
único ciclo de la CPU.
24Esquema de un Sistema Pipeline
25Arquitectura de la CPU de un microProcesador RISC
26Descripción Detallada de los Registros del
Procesador
27Continuación Descripción de Registros del
Procesador
28Microprocesador Intel Pentium
29Sistemas Paralelos y Multiprocesadores
- El desempeño de los computadores determina la
clase de problemas que se pueden resolver. - Existen problemas tan complejos y de gran tamaño
(cantidad de datos), que su solución podría tomar
mucho tiempo (días, meses, años). - Algunas áreas con fuerte demanda por la
computación de alto desempeño son - Química molecular.
- Astrofísica.
- Genética.
- La carrera espacial.
- Computación gráfica.
- Geometría Computacional.
- Bases de Datos Masivas (Data Warehouse).
- Simulaciones.
- Búsqueda Web, etc.
30Clasificación de los Computadores
- Clasificación de Flynn
- SISD (Single Instruction Stream Single Data
Stream) - Computador convencional ? Un solo procesador
- Un flujo de instrucciones y de datos
- SIMD (Single Instruction Stream Multiple Data
Stream) - Procesadores matriciales y multiprocesadores
- Una Unidad de control y multiples elementos de
proceso (PE) - Una misma instrucción se aplica a
multiples/distintos datos - MISD (Multiple Instruction Stream Single Data
Stream) - Unidades segmentadas/vectoriales, procesadores
sistólicos - Múltiples PE actúan sobre un único flujo de datos
- MIMD (Multiple Instruction Stream Multiple Data
Stream) - Multiprocesadores de propósito general.
- Múltiples PE actúan sobre múltiples flujos de
datos.
31SIMD vs. MIMD
32Características de los Sistemas MIMD con Memoria
Compartida.
- Sistemas MIMD Fuertemente Acoplado Memoria
Compartida. - Fácil de contruir, con SO convencionales y
Procesadores SISD. - Limitaciones confiabilidad y escalabilidad. Si
falla un elemento puede fallar todo el sistema. - El incremento de procesadores puede producir un
cuello de botella en el bus al competir por el
uso de memoria. - En general, la programación se hace a través de
Threads o Hilos (POSIX, Solaris, etc.)
33Características de los Sistemas MIMD con Memoria
Distribuida.
- Sistemas MIMD Débilmente Acoplado Memoria
Distribuida. - Ejemplo los Clusters.
- Un cluster o agrupamiento de máquinas, es un tipo
de sistema de procesamiento paralelo o
distribuido, que consiste en una colección de
PC's autónomos interconectados trabajando unidos
como un solo recurso de computación integrado. - Ejemplo, son los cluster Beowulf.
- En un cluster típico podemos encontrar
generalmente un nodo servidor y uno o más nodos
esclavos en red, que se implementan sobre un
sistema multicomputador y que utiliza mecanismos
de paso de mensajes a través de librerías tales
como - MPI (Message Passing Interface).
- PVM (Parallel Virtual Machine).
- Cada nodo o computador posee su sistema operativo
(por ejemplo, Linux), un tarjeta de red y su
disco desde donde arranca el sistema operativo
(aunque esto último no es necesario).
34Ejemplo de una configuración Cluster
35Breve Historia de los Sistemas Operativos
- Década 1940 Primero computadores, no existen
sistemas operativos. - Década 1950 Procesamiento Batch.
- Década 1960 Multiprogramación.
- Década 1970 (principios) Time-Sharing
minicomputadores. - Década 1980 (principio) Microprocesadores PC.
- Década 1970, 1980 Redes, Sistemas Distribuidos,
Sistemas Paralelos. - Década 1990 y Futuro PCs, WWW, Sistemas Móviles
(redes móviles e inalámbricas), Sistemas
Distribuidos.