Interrupciones

Anuncio
09/03/2011
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
1
09/03/2011
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
2
09/03/2011
Modelo de programación
Modelo de programación
3
09/03/2011
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.
4
09/03/2011
Registros de control y
estado

Program Counter (PC)

Instruction Register (IR)

Program Status Word (PSW)
– Contiene la direccion de la instruccion a ser cargada (fetch)
– Contiene la instruccion mas reciente
– 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
5
09/03/2011
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
6
09/03/2011
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
7
09/03/2011
Lenguajes programación
a=1;
f=1;
while (a <= 5)
{
f = f * a;
a = a + 1;
}
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
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 1
14 ADD
15 SAVEC 128
16 JUMP 4 // loop back to if
17 STOP
8
09/03/2011
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
9
09/03/2011
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
10
09/03/2011
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



– SO



Salva algunos registros (PC y
estado)
Eleva nivel de ejecución a
núcleo
Salto a 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
11
09/03/2011
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
12
09/03/2011
Flujo de control del
programa sin interrupciones
Flujo de control de programa
con interrupciones, corta
espera I/O
13
09/03/2011
Flujo de control de programa con
interrupciones, larga espera I/O
Diagrama de tiempos
basado en una espera I/O
corta
14
09/03/2011
Diagrama de tiempos
basados en una espera I/O
larga
Interrupciones multiples

Estrategia: deshabilitar
interrupciones mientras que
interrupcion esta siendo procesada.
15
09/03/2011
Interrupciones multiples

Se definen prioridades para las
interrupciones
Interrupciones multiples
16
09/03/2011
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
17
09/03/2011
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

Memoria secundaria
– Volatil, RAM
– No volatil, disco
– Memoria auxiliar
– Almacenan programas y datos
18
09/03/2011
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
19
09/03/2011
Cache

Hardware
– ExternaInterna 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
20
09/03/2011
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)
21
09/03/2011
Diseño de la cache

Tamaño

Tamaño del bloque
– Caches pequeñas tienen un fuerte impacto en el rendimiento
– 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)

Algoritmo de reemplazo
– En que posición de la cache se ubica el bloque requerido
– 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.8Ghz122Gb/seg, Pentium III 1
Ghz16Gb/seg
– Nivel 3 (Extreme Edition processor)


1- 2Mb
800-1066Mhz system bus
22
09/03/2011
Jerarquía de memoria

¿Porque Funciona?
Traza: Re=re(1),re(2)…,re(j)

Proximidad referencial

– Distancia d(u,v)=|u-v|
– Espacial


i-j pequeñod(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)
23
09/03/2011
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
24
09/03/2011
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
25
09/03/2011
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
26
09/03/2011
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
27
09/03/2011
Ej. Traducción con tabla 2
niveles
Direcciones no validas
con tabla de 2 niveles
28
09/03/2011
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
29
09/03/2011
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
30
09/03/2011
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.
31
09/03/2011
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
32
09/03/2011
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
33
09/03/2011
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
34
09/03/2011
Resumen

Interrupciones
– Dispositivos
– Reloj

Memoria
– Memoria virtual

E/S
– Concurrente
35
Descargar