Estructura de computos

61
1 /62 /62 Mg. Samuel Oporto Díaz Lima, 30 de Abril 2005 Estructura de los Sistemas de Computo SISTEMAS OPERATIVOS

Transcript of Estructura de computos

Page 1: Estructura de computos

11 /62/62

Mg. Samuel Oporto Díaz

Lima, 30 de Abril 2005

Estructura de los Sistemas de Computo

SISTEMAS OPERATIVOS

Page 2: Estructura de computos

22 /62/62

Los Sistemas Operativos son programas para la administración eficiente de los recursos del

computador.

Page 3: Estructura de computos

33 /62/62

Tabla de Contenido

i. Objetivos. 3

ii. Mapa Conceptual 4

3. Visión General de un Sistema de Computo 6

4. Procesador 11

5. Buses 43

6. Memoria 46

7. Entrada/Salida 54

8. Bibliografía 60

Page 4: Estructura de computos

44 /62/62

Objetivos de la Sesión• Exponer la arquitectura básica de un computador.• Presentar los elementos y las características de

operación de un microprocesador simple.• Exponer el mecanismo de ejecución de instrucciones• Exponer el mecanismo de interrupciones• Exponer el mecanismo del DMA.

• Presentar los tipos de buses que usa un μP.• Presentar los aspectos básicos del manejo de memoria.• Presentar los aspectos básicos del manejo de E/S

Page 5: Estructura de computos

55 /62/62

Mapa Conceptual de la Sesión

μP

Proceso

E/S

Bus

Memoria

Page 6: Estructura de computos

66 /62/62

VISION GENERAL DE UN SISTEMA DE COMPUTO

Page 7: Estructura de computos

77 /62/62

Sistema Operativo• Explota los recursos de hardware de uno o más

procesadores.• Provee un conjunto de servicios al usuario del sistema• Administra la memoria secundaria y los dispositivos de

E/S

Page 8: Estructura de computos

88 /62/62

Elementos Básicos• Procesador• BUS del Sistema

– Comunicación entre el

procesador, la memoria y

los módulos de E/S

• Memoria Principal– Es la memoria real o

memoria principal

– Volátil

– Acceso aleatorio

• Módulos de E/S– Dispositivos de memoria secundaria

– Equipos de comunicación

– Terminales

Page 9: Estructura de computos

99 /62/62

Componentes de Alto Nivel

Page 10: Estructura de computos

1010 /62/62

Componentes de Alto Nivel• Procesador. CPU• Memoria Principal. Memoria Real o Primaria• Módulos de E/S. Dispositivos de Entrada/Salida (DES)• Interconexión de sistemas. BUS• MAR (Memory Address Register). Registro de memoria

direcionable, dirección de la siguiente R/W en memoria.

• MBR (Memory Buffer Register). Registro de memoria intermedia. Datos leídos o por escribir en Memoria.

• IOAR (Input/Output Address Register). Dirección de un DES.

• IOBR (Input/Output Buffer Register). Intercambia datos entre el DES y el Procesador.

Page 11: Estructura de computos

1111 /62/62

PROCESADOR

Page 12: Estructura de computos

1212 /62/62

Registros del Procesador

1. Registros visibles al usuario• Permite que el programador minimice las referencias

a la memoria principal.

3. Registros de control y de estado

• Usado por el procesador para controlar la operación del procesador

• Usado por las rutinas del SO para controlar la ejecución de programas

Page 13: Estructura de computos

1313 /62/62

1. Registros Visibles al Usuario• Puede ser referenciada por

lenguaje de máquina.

• Disponible para todos los programas: (de aplicación y del sistema).

• Los tipos de registros – Registros de Datos. (AX, BX,

CX y DX)– Registros de Dirección

• Registro índice (SI, DI)• Puntero de Segmento (CS,

DS, SS, ES).• Puntero de Pila (SP, BP)

Page 14: Estructura de computos

1414 /62/62

1. Registros Visibles al Usuario• Registros de Datos:

– AX. Para las operaciones de E/S, las correcciones decimales, las multiplicaciones, las divisiones y las translaciones.

– BX. Registro base para direccionar una posición de memoria con el modo de direccionamiento indirecto con el registro base.

– CX. Contador de datos en las manipulaciones de cadenas de caracteres.

– DX. Para las multiplicaciones y divisiones asociándolo con AX, o de registro de direccionamiento indirecto para direccionar un puerto de E/S.

Page 15: Estructura de computos

1515 /62/62

1. Registros Visibles al Usuario• Registros de Dirección:

– Registro Índice (SI y DI)• El direccionamiento indexado implica adicionar un

índice a un valor base para obtener una dirección.– Puntero de Segmento (CS, DS, SS y ES).

• Cuando la memoria es dividida en segmentos, la memoria es referenciada por un segmento y un desplazamiento.

– Puntero de Pila (SP, BP).• Puntero a la cima de la pila

Page 16: Estructura de computos

1616 /62/62

2. Registros de Control y de Estado• Contador de Programa (PC)

– Contiene la dirección de una instrucción a ser leída

• Registro de Instrucción (IR)– Contiene la instrucción más recientemente leída

• Palabra de Estado de Programa:(PSW: Program Status Word )– Códigos de Condición

• Signo, Cero, Acarreo, Igualdad, Desbordamiento– Habilitar/deshabilitar interrupciones– Modo Supervidor

Page 17: Estructura de computos

1717 /62/62

Modos de Operación

Los microprocesadores dos modos de funcionamiento:

• El modo real. Operación básica del μP.

• El modo protegido, en el que surgen capacidades nuevas, como memoria virtual, proteccion de segmentos.

Page 18: Estructura de computos

1818 /62/62

Modos de Operación

MODO REAL• Realiza una sola tarea a

la vez, si se está imprimendo, scaneando, etc. no se puede hacer otra cosa hasta que el microprocesador no termine con la tarea asignada.

• Direccionamiento hasta de 1MB

• El DOS requiere el modo real.

MODO PROTEGIDO• Hace varias tareas a la

vez, pero las atiende todas juntas.

• Características:– Mecanismos de

protección. – Conmutación de tareas. – Manejo de Interrupciones

y Excepciones. – Permite el Modo Virtual.

Page 19: Estructura de computos

1919 /62/62

Ejecución de Instrucciones• La tarea más importante de un

computador es ejecutar programas.• Los programas constan de un conjunto de

instrucciones y datos almacenados en la memoria.

• Pasos:– El procesador lee la instrucción desde

memoria.– El procesador ejecuta la instrucción.

• El procesamiento de una instrucción simple se denomina ciclo de instrucción

Leer la siguiente

instrucción

Ejecutar la instrucción

INICIO

FIN

Page 20: Estructura de computos

2020 /62/62

Lectura y ejecución de instrucciones• Al inicio de cada ciclo de

instrucción el procesador lee una instrucción de la memoria, en el registro de instrucción.

• El contador de programa(PC: program counter) tiene la dirección de la siguiente instrucción a ser leída.

• El PC se incrementa luego de cada lectura.

• La dirección cargada en el PC puede ser alterada.

Page 21: Estructura de computos

2121 /62/62

Registro de Instrucción• La instrucción leída se carga en un registro conocido

como registro de instrucción.• Tipos de Instrucciones:

– Procesador-memoria• Se transfieren datos entre el procesador y la memoria y viceversa.

– Procesador-E/S• Se transfieren datos de y hacia los dispositivos periféricos

– Procesamiento de Datos• Operaciones aritméticas o lógicas con los datos

– Control• Alteración de la secuencia de instrucciones a pedido de otra

instrucción.

Page 22: Estructura de computos

Máquina Hipotética

Código de Operación

Dirección

0 3 4 15

SMagnitud

0 1 15

Formato de Instrucción

Formato de un entero

Registros Internos de la CPUPC: Contador de Programa Dirección de la Instrucción.IR: Registro de la Instrucción Instrucción que está ejecutandoseAC: Acumulador Almacenamiento Temporal

Listado de códigos de operación0001 Cargar de la memoria al acumulador0010 Almacenar el acumulador en memoria0101 Sumar al AC el contenido de la memoria

Page 23: Estructura de computos

2323 /62/62

Ejemplo de ejecución de un programa• EL PC contiene 300, la dirección de la primera

instrucción. Se cargará el contenido de la ubicación 300 en el IR.

• Los primeros 4 bits de IR indican que se cargará el AC. Los 12 bits restantes especifican la dirección, que es 940. (1 940)(0001 001110101100).

• Se incrementa el PC y se lee la siguiente instrucción.• El contenido anterior de AC y el contenido de la

ubicación 941 se suman y el resultado se almacena en el AC.

• Se incrementa el PC y se le la instrucción siguiente.

• El contenido del AC se almacena en la ubicación 941.

Page 24: Estructura de computos

2424 /62/62

Ejemplo de ejecución de un programa0001Cargar de la memoria al acumulador0010Almacenar el acumulador en memoria0101Sumar al AC el contenido de la memoria

Page 25: Estructura de computos

2525 /62/62

Ejercicio 1• Para la máquina hipotética presentada, se adiciona 2

instrucciones:

0011 Carga de AC desde E/S

0111 Almacena el AC en la E/S• En estos casos, las direcciones de 12 bits identifican a

un dispositivo externo en particular. Mostrar la ejecución del siguiente programa:

1. Cargar AC desde el dispositivo 5.

2. Sumar el contenido de la ubicación de memoria 940

3. Almacenar el AC en el dispositivo 6• Asumir que el siguiente valor recuperado desde el

dispositivo 5 es 3 y que la dirección 940 contiene 2.

Page 26: Estructura de computos

1. Se coloca la dirección 300 al contador de programa (PC) y se carga el contenido de la posición de memoria al Registro de Instrucción (IR).

2. Load AC from I/O. El programa mueve la información que sé encuentra en device 5 al acumulador.

3. El PC incrementa una posición y coloca la información encontrada en la memoria al IR para ser procesada y ejecutada.

4. Add contents of memory location 940. La instrucción pide sumar la Información contenida en la posición de memoria 940con el AC que ya tiene un 0003.

5. El PC incrementa una posición y coloca la información encontrada en la memoria al IR para ser procesada y ejecutada.

6. Store AC to device 6. La instrucción pide almacenar la información del AC a el device 6 lo cual transfiere la información de AC para device 6.

Page 27: Estructura de computos

2727 /62/62

Acceso directo a Memoria (DMA)• Los intercambios de E/S ocurren directamente con la

memoria principal.• El procesador entrega autoridad para que los módulos

de E/S lean y escriban directamente en memoria.• Releva al procesador de la responsabilidad del

intercambio• El procesador está libre para hacer otras cosas.• Resultado: interrupción

– Indica estado de terminación (OK, ERROR)– Una interrupción por bloque, no por byte

Page 28: Estructura de computos

2828 /62/62

E/S y acceso directo a memoria

UCPmemoria dispositivos de

entrada/salida

instrucciones de E/S

Page 29: Estructura de computos

2929 /62/62

Ejercicio 2• El módulo de DMA transfiere caracteres a la memoria

principal desde un DES que transmite 9600 bps (bits por segundo). El procesador puede leer instrucciones a razón de 1 millón de instrucciones por segundo. ¿En cuanto se hará más lento el procesador debido a la actividad del DMA?

9.6x103 bps

106 bps

R = 9.6 x 103 / 106 = 0.96%

Page 30: Estructura de computos

3030 /62/62

Interrupciones• Una interrupción es la suspensión de la secuencia

normal de ejecución de un proceso.• Permite mejora la eficiencia del procesamiento.• Permite que el procesador ejecute otras instrucciones

mientras que una operación de I/O está en proceso.• Es la suspensión de un proceso causado por un

acontecimiento externo a ese proceso y ejecutado de tal forma que el proceso pueda ser reasumido más adelante.

Page 31: Estructura de computos

3131 /62/62

Interrupciones• Supongamos que el procesador transfiere datos hacia

una impresora, utilizando el esquema básico propuesto.• Luego de ejecutar una instrucción ESCRIBIR(data,

print), el procesador debe esperar y permanecerá desocupado hasta que la impresora le avise, que ya terminó o acerca de un error.

• La duración de la pausa puede ser del orden de varios cientos o miles de ciclos de instrucción.

• Es claro el derroche en el uso de los recursos.

Page 32: Estructura de computos

3232 /62/62

Page 33: Estructura de computos

3333 /62/62

Tipos de Interrupciones• De Programa. Generadas por la ejecución de alguna

instrucción tales como:– Overflow (desbordamiento aritmetico)– Division por zero– Intento de ejecutar una instrucción ilegal de la máquina– Referencia fuera del espacio de memoria permitido para el

usuario

• De Reloj. Generadas por el reloj interno del procesador (funciones regulares)

• De E/S. Generadas por el controlador de E/S, para indicar termino de E/S, condiciones de error.

• Por falla de Hardware. Error de paridad, falta de energía.

Page 34: Estructura de computos

3434 /62/62

Vector de InterrupcionesVector Uso

0 Error: División por cero1 Excepciones para depuración (ejecución paso a paso)2 Interrupción no enmascarable3 Punto de ruptura interrupción (Instrucción INT)4 Desbordamiento ("Overflow"); utilizado cuando un cálculo aritmético se desborda. Instrucción INTO5 (reservado)6 Código de instrucción no válido7 Coprocesador no disponible8 Fallo doble9 (reservado)10 TSS no válido11 Segmento no disponible12 Excepción de pila13 Protección general14 Fallo de página15 (reservado)16 Error de coprocesador

17-31 (reservado)32-255 Disponibles para interrupciones enmascarables

Page 35: Estructura de computos

3535 /62/62

Administración de Interrupciones• Es un programa que determina la naturaleza de la

interrupción y ejecuta la acción que sea necesaria.• El control es transferido a este programa.• Por lo general es parte del S.O.• Se denomina Rutina de Servicio de Interrupciones

(ISR: Interrupt service routine) (interrupt handler).• El proceso que es interrumpido no debe de tener algo en

especial, esta función es responsabilidad total de la RSI

Page 36: Estructura de computos

3636 /62/62

Transferencia de Control

..............

..............

..............

..............

..............

..............

..............

1. .............2. .............3. .............4. .............5. .............

viii. .............i+1 ..................m ............

ISRProceso actual

Interrupción

Page 37: Estructura de computos

3737 /62/62

Tratamiento de una Interrupción

El controlador del dispositivo u otro

sistema del hardware genera una interrupción

El procesador carga el nuevo valor del PC dependiendo de la

interrupción

El procesador inserta la PSW y el PC en la pila

El procesador finaliza la ejecución de la

instrucción en curso

El procesador acusa el recibo de la interrupción

Restaurar los valores anteriores de PSW y

PC

Interrupción del proceso

Salvar el resto de la información de estado

del proceso

Restaurar la información de estado

del proceso

Hardware

Software

Page 38: Estructura de computos

3838 /62/62

Tratamiento de interrupciones• El dispositivo emite una señal de interrupción • El procesador finaliza la ejecución de la instrucción

actual antes de responder a la interrupción.• El procesador verifica la Int (¿qué Int?) (polling) y envía

una señal de reconocimiento al DES que la originó, esta señal le permite al DES suprimir la señal de Int.

• El procesador inicia la transferencia de control a la ISR.• Se almacena en la pila: la PSW y la PC

• Se pone la PSW y la PC de la rutina de tratamiento de interrupciones (ISR: interrupt service routine)

• Se ejecuta la ISR

Page 39: Estructura de computos

3939 /62/62

Múltiples Interrupciones• Se pueden presentar interrupciones simultáneamente o

mientras se está ejecutando la ISR, se puede presentar una nueva interrupción.

• Se deshabilitan las interrupciones mientras una interrupción está siendo procesada.

• El procesador no hace caso de cualquier nueva señal de petición de la interrupción.

Page 40: Estructura de computos

Múltiples InterrupcionesOrden Secuencial • Se deshabilitan las interrupciones para

que el procesador puede completar la tarea.

• Las siguientes interrupciones permanecen pendientes hasta el procesador habilite las interrupciones.

• Después de que ISR completa la tarea, el procesador verifica para interrupciones adicionales

Prioridades.• Interrupciones de alta prioridad la causa

interrupciones de baja prioridad esperen.• Causas que una IRS de baja prioridad

pueda ser interrumpido. • Por ejemplo cuando una entrada llega

desde la línea de comunicación, necesita ser absorbida rápidamente para hacer más sitio para la siguiente entrada.

Page 41: Estructura de computos

4141 /62/62

Multiprogramación• Cuando el procesador tiene más de un programa para

ejecutar • La secuencia de programas son ejecutados

dependiendo de su prioridad relativa y si ellos están esperando por I/O.

• Después de que una ISR se completa, el control puede no ser retornado al programa que estaba ejecutando en el momento de la interrupción.

Page 42: Estructura de computos

4242 /62/62

Ejercicio 3

Page 43: Estructura de computos

4343 /62/62

BUSES

Page 44: Estructura de computos

4444 /62/62

Buses

Son las pistas de cobre que se encuentran en la placa madre, que se encargan de transportar datos o pulsos.

• Bus de control. que consiste en una línea que detecta las señales de entrada y de otra línea que genera señales de control desde el interior de la CPU.

• Bus de dirección. una línea unidireccional que sale desde el procesador y que gestiona la ubicación de los datos en las direcciones de la memoria.

• Bus de datos. una línea de transmisión bidireccional que lee los datos de la memoria y escribe nuevos datos en ésta.

Page 45: Estructura de computos

4545 /62/62

Buses

Page 46: Estructura de computos

4646 /62/62

MEMORIA

Page 47: Estructura de computos

4747 /62/62

Jerarquía de Memoria

Registros

Cache

Memoria Principal

Memoria Secundaria<Disco Magnético>

Cinta magnéticaCosto/ bit

TiempoAcceso

Capacidad

+

+ +

Page 48: Estructura de computos

4848 /62/62

Memoria Cache• La memoria Cache es una clase de memoria especial de

alta velocidad que esta diseñada para acelerar el proceso de las instrucciones de memoria en la CPU.

• La CPU puede obtener las instrucciones y los datos ubicados en la memoria cache mucho más rápidamente que las instrucciones y datos almacenados en la memoria principal.

• Cuantas más instrucciones y datos la CPU pueda obtener de la memoria cache, más rápido será la computadora.

CPU. 100 MHzV memoria principal 180 nanosegundos.V memoria cache 45 nanosegundos.

Page 49: Estructura de computos

Memoria Cache• Es invisible al SO.• Incrementa la velocidad de la memoria.• La velocidad del procesador es mayor que la velocidad

de la memoria

Memoria principal

Procesador

Tie

mpo

de

cada

cic

lo (

nseg

)

104

1955 1960 1965 1970 1975 1980 1985 1990

103

102

101

Page 50: Estructura de computos

Memoria Cache• Contiene una porción de la memoria principal.• El procesador primero verifica la memoria cache.• Si no se encuentra en la memoria cache, el bloque de

memoria conteniendo la información necesaria es movida a la memoria cache.

Page 51: Estructura de computos

5151 /62/62

Diseño de la Memoria CachéTamaño del caché.• Los caches pequeños tienen un impacto significante en

el desempeño.

Tamaño del bloque.es la unidad de intercambio de datos entre el caché y la memoria principal.

• A medida que los tamaños de bloque aumenta, la tasa de aciertos, aumenta al inicio (principio de la cercanía), pero luego comienza a disminuir dado que el bloque se hace mayor y la probabilidad de uso de un dato recientemente leído se hace menor que la probabilidad de reutilizar el dato ubicado en la memoria caché.

Page 52: Estructura de computos

5252 /62/62

Diseño de la Memoria CachéFunción de correspondencia• Determina la ubicación qué ocupará el bloque en la

memoria caché. ¿hay sitio?

El algoritmo del reemplazo. • Determina qué bloque para reemplazar si no hay sitio• Algoritmo LRU. Least-Recently-Used (el usado hace

más tiempo)

Política de escritura.¿Cuándo tiene lugar la operación de escritura en memoria?

• Cada vez que el bloque se actualiza.• Cada vez que el bloque se reemplace.

– Minimiza la operación de la memoria. – Deja la memoria en un estado obsoleto.

Page 53: Estructura de computos

5353 /62/62

Tamaños• La memoria principal consta de 2n palabras

direccionales.• Cada palabra tiene una dirección de n bits.• La memoria principal consta de M = 2n/K bloques de

tamaño K palabras.• La memoria caché consta de C bloques de K palabras.

(C << M)

CK

M

Page 54: Estructura de computos

5454 /62/62

ENTRADA/SALIDA

Page 55: Estructura de computos

5555 /62/62

Operaciones• Las operaciones de E/S hacen uso de las siguientes

tres técnicas:

1. E/S programada

2. E/S dirigida por interrupciones.

3. Acceso Directo a Memoria

Page 56: Estructura de computos

1. E/S Programada• Cuando ocurre la interrupción, el

procesador lanza la IRS.• El módulo de E/S realiza la

acción, no el procesador.• El módulo de E/S pone los bits

apropiados en el registro de estados de E/S.

• No ocurren interrupciones.• El procesador verifica el estado

hasta que la operación se complete.

• La verificación se hace repetidamente.

Emitir orden de lectura al

módulo de E/S

Leer estado del módulo de E/S

Leer palabra del módulo de E/S

Escribir palabra en memoria

¿estado?

¿Hecho?

Siguiente instrucción

CPU E/S

E/S CPU

Condición de Error

E/S CPU

CPU Memoria

Listo

No listo

No

Si

Page 57: Estructura de computos

5757 /62/62

2. E/S Dirigida por Interrupciones• El procesador es interrumpido

cuando el módulo de E/S esta listo para intercambiar datos

• El procesador esta libre hacer otros trabajos.

• No existen esperas innecesarias.• Consume mucho tiempo del

procesador porque cada palabra leída o escrita pasa a través del procesador.

• La velocidad está limitada por velocidad en que el procesador verifica.

Emitir orden de lectura al

módulo de E/S

Leer estado del módulo de E/S

Leer palabra del módulo de E/S

Escribir palabra en memoria

¿estado?

¿Hecho?

Siguiente instrucción

CPU E/SHacer otra cosa

Interrupción

E/S CPU

Condición de Error

E/S CPU

CPU Memoria

Listo

No

Si

Page 58: Estructura de computos

5858 /62/62

3. Acceso Directo a Memoria• Transfiere un bloque de datos

directamente, desde o hasta la memoria.

• Una interrupción es enviada cuando la tarea es completada.

• El procesador es involucrado solo al inicio o al final de la transferencia.

• El DMA se implementa a través de un módulo separado o esta incorporado en el módulo de E/S.

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

CPU DMAHacer otra cosa

Interrupción

DMA CPU

Siguiente instrucción

Page 59: Estructura de computos

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

¿estado?

¿Hecho?

Siguiente instrucción

CPU E/S

E/S CPU

Condición de Error

E/S CPU

CPU Memoria

Listo

No listo

No

Si

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

¿estado?

¿Hecho?

Siguiente instrucción

CPU E/SHacer otra cosa

Interpretar

E/S CPU

Condición de Error

E/S CPU

CPU Memoria

Listo

No

Si

Emitir orden de lectura al

módulo de E/S

Emitir orden de lectura al

módulo de E/S

CPU DMAHacer otra cosa

Interpretar

DMA CPU

Siguiente instrucción

E/S Programada E/S Dirigida por interrupciones

DMA

Page 60: Estructura de computos

6060 /62/62

Bibliografía• Sistemas Operativos (Capítulo 1). William Stallings, 3ra

Edición. Prentice Hall.

Page 61: Estructura de computos

6161 /62/62

PREGUNTAS