fundamentos de arquitectura de computadores … · 2011-03-09 · – instrucción de salto...

35
09/03/2011 1 Fundamentos de arquitectura de computadores relacionados con SO Ingeniería del Software EUITI Índice Estructura del computador Modelo de programación Registros del procesador Ejecución de instrucciones Interrupciones Jerarquía de memoria Entrada/salida Protección

Upload: vohanh

Post on 25-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

09/03/2011

1

Fundamentos de arquitectura de computadores relacionados con SO

Ingeniería del Software

EUITI

Índice

Estructura del computador

– Modelo de programación

– Registros del procesador

– Ejecución de instrucciones

Interrupciones

Jerarquía de memoria

Entrada/salida

Protección

09/03/2011

2

Esquema de funcionamiento

Elementos del sistema

Procesador Memoria principal

– volatil– Memoria real o primaria

I/O modulos– Dispositivos de memoria

secundaria– Comunicaciones– Terminales

Bus del sistema– Comunicacion entre

procesadores, memoria e I/O

09/03/2011

3

Modelo de programación

Modelo de programación

09/03/2011

4

Registros del procesador

Registros de usuario– Permiten al programador minimizar el uso de

memoria principal (referencias a memoria)

Control y estado– Usados por el procesador

– Usados por rutinas privilegiadas del sistema operativo para controlar la ejecucion de programas

– Estado (octeto de usuario) si puede ser usado por programas

Registros de usuario

Pueden ser referenciados por codigo maquina (ensamblador)

Pueden ser usados por todos los programas, usuario y sistema.

Tipos de registros– Datos– Direcciones

Indice/s– Se utiliza para conseguir una direccion absoluta con una referencia

relativa

Puntero de segmento (segment pointer)– Cuando la memoria se divide en segmentos, las referencias pueden

ser generadas de forma relativa a un puntero de segmento y un offset.

Puntero de pila (Stack pointer)– Apunta al principio de la pila.

09/03/2011

5

Registros de control y estado Program Counter (PC)

– Contiene la direccion de la instruccion a ser cargada (fetch)

Instruction Register (IR)– Contiene la instruccion mas reciente

Program Status Word (PSW)– Condition codes (usuario)

Banderas (flags) o codigos de condicion– Bits fijados por el hardware del procesador como resultado de

operaciones

Ejemplos– Resultado positivo– Resultado negativo (N)– Cero (Zero=Z)– Desbordamiento (Overflow)

– Interrupt enable/disable (nucleo)– Supervisor/user mode (nucleo)

Instrucciones

Tipos de instruccion– Procesador-memoria

Transferencia de datos

– Procesador-I/O Transferencia a dispositivos

– Procesamiento datos Aritmeticos o logicos

– Control Cambiar la secuencia de ejecucion

09/03/2011

6

Secuencia de ejecucion

El procesador carga (fetch) la instruccion de memoria apuntada por el contador de programa, Program counter (PC), en el registro de instruccion IR

El PC se incrementa despues de cada carga

Maquina hipotetica

09/03/2011

7

Ejemplo de ejecucion

Secuencia de ejecución

Secuencia

– Lectura de la instrucción apuntada por el PC

– Incrementa PC

– Ejecuta instrucción

Es lineal e infinita

– Instrucción de salto modifica PC

– Interrupción (procesador modifica PC)

Interna o externa

TRAP produce interrupción

09/03/2011

8

Lenguajes programación

LOADA mem - Load register A from memory address LOADB mem - Load register B from memory address CONB con - Load a constant value into register B SAVEB mem - Save register B to memory address SAVEC mem - Save register C to memory address ADD - Add A and B and store the result in C SUB - Subtract A and B and store the result in C MUL - Multiply A and B and store the result in C DIV - Divide A and B and store the result in C COM - Compare A and B and store the result in test JUMP addr - Jump to an address JEQ addr - Jump, if equal, to address JNEQ addr - Jump, if not equal, to address JG addr - Jump, if greater than, to address JGE addr - Jump, if greater than or equal, to address JL addr - Jump, if less than, to address JLE addr - Jump, if less than or equal, to address STOP - Stop execution

a=1;

f=1;

while (a <= 5)

{

f = f * a;

a = a + 1;

}

Compilador

// Assume a is at address 128 // Assume F is at address 129 0 CONB 1 // a=1; 1 SAVEB 128 2 CONB 1 // f=1; 3 SAVEB 129 4 LOADA 128 // if a > 5 the jump to 17 5 CONB 5 6 COM 7 JG 17 8 LOADA 129 // f=f*a; 9 LOADB 128 10 MUL 11 SAVEC 129 12 LOADA 128 // a=a+1; 13 CONB 114 ADD 15 SAVEC 128 16 JUMP 4 // loop back to if 17 STOP

09/03/2011

9

Ensamblador

Índice

Estructura del computador

– Modelo de programación

– Registros del procesador

– Ejecución de instrucciones

Interrupciones

Jerarquía de memoria

Entrada/salida

Protección

09/03/2011

10

Ciclo de interrupción El procesador (HW) chequea las interrupciones Si no hay interrupciones, el procesador carga la siguiente instrucción del

programa en ejecución. Si hay una interrupción pendiente, se suspende la ejecución del programa en

curso y se ejecuta la rutina de manejo de la interrupción (Interrupt Handler, Manejador de interrupción, Rutina de atención a la interrupción)

– Programa para una interrupción, un dispositivo I/O particular

Sobrecarga del procesador, pero sigue siendo ventajoso

Cambios en memoria y registros en una interrupcion

09/03/2011

11

Interrupciones

Interrupciones en microcontroladores

Interrupciones en computadores.

– Casi todos los dispositivos de I/O son mas lentos que el procesador

El procesador debe hacer una pausa para esperar al dispositivo

Interrupciones

Rompen la secuencia de ejecución– HW

Salva algunos registros (PC y estado)

Eleva nivel de ejecución a núcleo

Salto a SO

– SO Tabla y rutina pertenecen al

sistema operativo Rutina de tratamiento de la

interrupción Instruccion RETI devuelve el

control al programa– Baja a modo usuario– Caso de retornar al proceso,

recupera el PC y registro de estado

09/03/2011

12

Procesamiento de una interrupcion simple

Interrupciones Fuentes de interrupción:

– Excepciones de programa

– Interrupciones periódicas de reloj

– Interrupciones E/S

– Excepciones del HW

– Instrucción TRAP

09/03/2011

13

Flujo de control del programa sin interrupciones

Flujo de control de programa con interrupciones, corta espera I/O

09/03/2011

14

Flujo de control de programa con interrupciones, larga espera I/O

Diagrama de tiempos basado en una espera I/O corta

09/03/2011

15

Diagrama de tiempos basados en una espera I/O larga

Interrupciones multiples

Estrategia: deshabilitar interrupciones mientras que interrupcion esta siendo procesada.

09/03/2011

16

Interrupciones multiples

Se definen prioridades para las interrupciones

Interrupciones multiples

09/03/2011

17

Sistema multiprogramacion

El procesador tiene mas de un proceso

La secuencia en la que los programas se ejecutan depende de su prioridad relativa y de si estan esperando I/O

Despues de una interrupcion, el control puede que no retorno al programa que se estaba ejecutando cuando salto la interrupcion

Índice

Estructura del computador

– Modelo de programación

– Registros del procesador

– Ejecución de instrucciones

Interrupciones

Jerarquía de memoria

Entrada/salida

Protección

09/03/2011

18

Jerarquía de memoria

Ventajas:– Equilibrio entre

eficiencia y coste

Problemas:– Información replicada

en los distintos niveles– Problema de coherencia– Migración de la

información Automática Demanda explicita

– Traducción de direcciones

Jerarquía de memoria

Segun se baja en la jerarquia– Decrece el coste por bit– Aumenta la capacidad– Se incrementa el tiempo de acceso– Disminuye la frecuencia de acceso por el

procesador Proximidad referencial

Memoria primaria– Volatil, RAM

Memoria secundaria– No volatil, disco– Memoria auxiliar– Almacenan programas y datos

09/03/2011

19

Jerarquía de memoria

Nivel Capacidad Tiempo de acceso

Tipo

Registros 64-256 bytes

1-5ns Palabra

Cache 8Kb – 2Mb 5-20ns Palabra

Memoria principal

128Mb a 64 Gb

60-200 ns Palabra

Disco 50 Mb a 250 Gb

10-30 ms Sector

Jerarquía de memoria

Migración de la información

– Automática

– Por demanda explicita

Migración automática

– Tamaño bloque transferido

– Política de extracción

– Política de reemplazo

– Política de ubicación

– Traducción de direcciones

09/03/2011

20

Cache

Hardware

– ExternaInterna 512Kb

Software

– Acceso a datos de disco.

– Una porción de memoria principal se puede usar como buffer temporal para contener datos del disco

Las escrituras y lecturas se realizan en clusters.

Referencias continuas a los mismos datos son mucho mas rápidas

Memoria cache

Invisible al SO, tratamiento por hardware

Aumenta la velocidad de la memoria

– SRAM, mas cara, mas rapida, mas pequeña.

Explota el principio de localidad o proximidad referencial

09/03/2011

21

Sistema de memoria cache/ppal

Memoria ppal 2n

direcciones, n bits (4Gb con 32bits)

Tamaño de bloque=K palabras

M=2n/K bloques en memoria principal

Cache contiene C<<M

Operación de lectura de la cache

Contiene una copia de una porción de la memoria principal

El procesador primero mira la cache.

Si no se encuentran los datos en la cache, el bloque de memoria principal se copia a la cache y se suministran al procesador (invisible al SO)

09/03/2011

22

Diseño de la cache Tamaño

– Caches pequeñas tienen un fuerte impacto en el rendimiento

Tamaño del bloque– La unidad de intercambio entre cache y memoria ppal– Un tamaño de bloque mas grande incrementa la tasa de acierto

en un principio, hasta que la probabilidad de referenciar un dato de fuera de la cache supera a la probabilidad de reusar un dato de dentro

Función de ubicación (mapping)– En que posición de la cache se ubica el bloque requerido

Algoritmo de reemplazo– Que bloque reemplazar, el que tenga menor probabilidad de ser

referenciado– Algoritmo Least-Recently-Used (LRU)

Política de escritura– Cuando se realiza la escritura en memoria principal?– Puede producirse cada vez que el bloque se modifica– La escritura se realiza cuando se reemplaza el bloque

Minimiza las operaciones en memoria ppal Deja la memoria principal obsoleta (DMA, multiprocesadores)

Cache actual

Pentium 4 (on die)– Nivel 1

16 Kb datos, 12Kb (Execution trace cache) instrucciones ya decodificadas

– Nivel 2 (Advanced Transfer cache) 512 Kb – 1 Mb

Velocidad del micro 3.8Ghz122Gb/seg, Pentium III 1 Ghz16Gb/seg

– Nivel 3 (Extreme Edition processor) 1- 2Mb

800-1066Mhz system bus

09/03/2011

23

Jerarquía de memoria

¿Porque Funciona? Traza: Re=re(1),re(2)…,re(j)

– Distancia d(u,v)=|u-v|

Proximidad referencial– Espacial

i-j pequeñod(re(i),re(j)) prob. pequeña Causas

– Programa secuencial– Bucles pequeños– Estructuras de datos

– Temporal d(re(j+1),re(j-x)) prob. pequeña Causas

– Bucles– Uso de datos– Subrutinas frecuentes

Rendimiento

Rendimiento de una memoria simple de 2 niveles– Nivel 1, 1000 palabras y tiempo de acceso de 0,1us

– Nivel 2, 100.000 palabras, tiempo de acceso de 1us

– Tasa de aciertos H=95%

– Tiempo medio de acceso

0,95 x 0,1 + (1-0,95)x(0,1 +1) = 0,15us

– El numero de palabras influye en la tasa de aciertos

– No se ha tenido en cuenta la penalización del tratamiento del fallo

0,95 x 0,1 + (1-0,95)x(2x0,1 +fallo de pagina)

09/03/2011

24

Asignación de memoria clásica

Los programas reciben del SO un espacio de memoria para su ejecución

– ¿Y si no hay suficiente?

Memoria virtual

Fundamentos– El procesador utiliza y genera direcciones virtuales

– Parte del mapa de memoria virtual esta en disco (swap) y parte en memoria principal.

Paginas virtuales

Marco de pagina (mem ppal)

Pagina de intercambio (disco)

– La Memory Management Unit MMU convierte las direcciones virtuales en físicas por HARDWARE (traducción)

– Si la dirección generada no esta en memoria ppal (fallo de pagina), la MMU genera una interrupción

– El SO gestiona la interrupción, trayendo la información de disco a memoria ppal

09/03/2011

25

División del espacio de memoria

El espacio virtual se divide en paginas 4Kb

Algunas paginas están en memoria ppal

– SO se encarga de que estén las necesarias, respondiendo a los fallos de pagina de la MMU (paginacion)

Traducción de direcciones

La MMU realiza la traducción de pagina virtual a marco de pagina

09/03/2011

26

Tablas de paginas

El SO genera y mantiene las tablas de paginas, la MMU las usa para hacer la traducción (TLB)

Una tabla por cada proceso

Elementos de la tabla de paginas

Otras informaciones:

– Copy on Write

– Edad

– No pagina (fija en memoria fisica)

– Rellenar a ceros

09/03/2011

27

Ej. Traducción con tablas de paginas

Tabla de paginas con 2 niveles

Mas flexible

Menor espacio

Necesita 3 accesos a Memoria ppal por cada acceso de la CPU

09/03/2011

28

Ej. Traducción con tabla 2 niveles

Direcciones no validas con tabla de 2 niveles

09/03/2011

29

Otros…

Diferencia entre la caché de disco y la memoria virtual

Trashing=hiperpaginacion

Índice

Estructura del computador

– Modelo de programación

– Registros del procesador

– Ejecución de instrucciones

Jerarquía de memoria

Entrada/salida

Protección

09/03/2011

30

E/S y concurrencia

Concurrencia entre CPU y E/S

– E/S programada: concurrencia nula

– E/S por interrupciones : concurrencia

– E/S por DMA: maxima concurrencia

El SO se encarga de explotar esta concurrencia

Transferencia de datos

Espera activa

Espera pasiva (interrupciones)

DMA

09/03/2011

31

I/O programada

El que realiza la accion es el modulo I/O, no el procesador

Cuando termina, fija los bits adecuados en el registro de estado.

No hay interrupciones

El procesador chequea el estado continuamente hasta que la operacion finaliza

I/O por interrupcion

El procesador es interrumpido cuando el modulo I/O esta listo para el intercambio de datos.

No son necesarias esperas, el procesador salva el contexto del programa y comienza a ejecutar la interrupción.

Consume tiempo de procesamiento porque cada dato pasa por el procesador.

09/03/2011

32

Direct Memory Access (DMA)

I/O transfiere directamente a/de memoria

La interrupcion se lanza cuando la transferencia se termina

El procesador debe conferir privilegios al modulo I/O para que pueda leer o escribir a memoria.

Libera al procesador de la responsabilidad de hacer el intercambio

Índice

Descripción computador– Hardware

Estructura del computador– Modelo de programación– Registros del procesador– Ejecución de instrucciones

Interrupciones– Reloj del computador

Jerarquía de memoria Entrada/salida Protección

09/03/2011

33

Protección

CPU– Niveles de ejecución

Núcleo: todas las instrucciones maquina, toda E/S (con instrucciones privilegiadas), registros y memoria

Usuario: un subconjunto de instrucciones y solo mapa propio

– Las interrupciones (y solo ellas) pasan la CPU a modo nucleo TRAP genera una

interrupción Reloj evita que se

monopolice

Protección de memoria

Memoria ppal: registros valla o claves

09/03/2011

34

Protección: división del mapa de memoria

Memoria:

– Espacios de memoria virtual independientes

Tablas de paginas como protección de memoria

Memoria virtual

– Regiones definidas por la tabla de paginas

09/03/2011

35

Resumen

Interrupciones

– Dispositivos

– Reloj

Memoria

– Memoria virtual

E/S

– Concurrente