Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contenido
1. 2. 3. 4. 5. 6. 7. 8. 9. Estructura y funcionamiento del ordenador Modelos de programacin Interrupciones Reloj Jerarqua de memoria Memoria virtual Entrada/Salida Proteccin Multiprocesador y multicomputadora
Instrucciones de mquina
Fundamentos de los Computadores II (Sistemas Operativos) 4
PERIFRICOS
UNIDAD DE CONTROL
Registro de instruccin
2. Modelos de programacin
1. Elementos de almacenamiento disponibles en la ejecucin de las instrucciones mquina: registros generales contador de programa puntero de la pila registro de estado memoria principal mapa de E/S
a) b) c)
Lectura de la instruccin apuntada por CP Incremento del CP Ejecucin de la instruccin secuencia lineal: ejecuta instrucciones consecutivas bucle infinito
10
11
Registros de direccin Puntero de pila de usuario Puntero de pila de sistema Contador de programa
Mapa de memoria
16
2 -1 232-1
Mapa de E/S
Juego de Instrucciones
12
Registro de estado
T 15 14 S 13 12 11 I2 10 I1 9 I0 8 7 6 5 X 4 N 3 Z 2 V 1 C 0
Registro de estado
7 6 5 4 3 2 1 0
X N Z V C
Octeto de Usuario
0 0
2 -1 216-1 232-1
31
Mapa de memoria
Juego de Instrucciones
Mapa de memoria
Mapa de E/S
Juego de Instrucciones
3. Interrupciones
15
Interrupciones (I)
Una interrupcin se solicita activando una seal que llega a la unidad de control. El elemento que necesita ser atendido y genera la seal se denomina agente generador. Ante la solicitud (si esta interrupcin est habilitada) se realiza un ciclo de aceptacin de interrupcin por parte de la UC. Este ciclo se produce al terminar la ejecucin de la instruccin en curso, y consiste en: Salva algunos registros del procesador (CP y registro de estado) Eleva el nivel de ejecucin del procesador (nivel de ncleo) Salta al SO, cargando un nuevo valor en CP El SO dispone de rutinas de tratamiento de las interrupciones
16
Interrupciones (II)
Mecanismo usual para determinar la direccin de salto: 1. El agente que interrumpe suministra un vector, que identifica la direccin del programa que desea que le atienda (programa de tratamiento de la interrupcin) 2. La UC toma dicha direccin y la carga en CP, con lo que comienza a ejecutarse el programa de tratamiento
Agente que interrumpe Solicitud de Interrupcin Vector Unidad de control S.O.
Tabla Interr.
Memoria
17
Interrupciones (III)
Causas de generacin de interrupciones: 1. Excepciones de programas por problemas de ejecucin (desbordamiento, operaciones aritmticas no permitidas, etc) 2. Interrupciones de reloj 3. Interrupciones de E/S 4. Excepciones del HW; por ejemplo, error de paridad en la memoria 5. Instrucciones de TRAP Los ordenadores disponen de una instruccin RETI (instruccin para retorno de interrupcin). Esta instruccin restituye los registros de estado y CP, para volver al punto de ejecucin donde se gener la interrupcin Hay diferentes seales que solicitan interrupciones, con diferentes prioridades. Algunas de las seales se pueden inhibir explcitamente (por lo que no sern atendidas)
18
4. Reloj
19
Reloj (I)
Tres visiones del reloj Oscilador que gobierna las fases de las instrucciones de mquina: 1000 MHZ (frecuencia) Interrupcin peridica. La seal de oscilador se divide para generar interrupciones cada cierto periodo de tiempo. Objetivo: conseguir que el SO pase a ejecutar de forma sistemtica cada cierto intervalo de tiempo, evitando as que algn programa acapare los recursos del sistema Contador fecha y hora Contabiliza unidades de tiempo (p.e. segundos) desde un instante (p.e. 0 h del 1 de enero de 1990) Esta cuenta la puede hacer: HW especial con batera SO
Fundamentos de los Computadores II (Sistemas Operativos) 20
Reloj (II)
Procesador
21
5. Jerarqua de memoria
5.1. 5.2. 5.3. 5.4. Introduccin Migracin de la informacin Direccionamiento Proximidad
22
Mem. Expandida
Gestin S.O.
Discos
Gestin S.O.
-Coste + Capacidad
24
Automtica: se realiza de forma transparente al programa. Se produce en las memorias cach y en la memoria virtual
Por demanda explcita: el programa solicita explcitamente el movimiento de la informacin. Por ejemplo, un editor de textos cuando solicita partes del documento a medida que se va visualizando
25
tamao de bloques transferidos: cantidad de informacin movida entre niveles. Disminuye a medida que nos acercamos a la cspide
poltica de extraccin: qu informacin sube al nivel k desde el nivel k+1 y cundo. Solucin ms comn: por demanda. Se promueva aquella informacin solicitada por el programa y cuando se referencia. Se aprovecha la proximidad espacial, por lo que no slo se promueve el dato solicitado, sino tambin las direcciones cercanas (bloque, lnea, pgina, ....)
poltica de reemplazo: el nivel k tiene menor tamao que el nivel k+1, por lo que estar lleno cuando se quiera llevar informacin a l, y habr que extraer datos ya presentes
Fundamentos de los Computadores II (Sistemas Operativos) 26
27
Se trata de un problema no trivial, ya que puede haber notables diferencias de tamao entre niveles: k+1 (2GB, n=31) k (8M, m=23)
Fundamentos de los Computadores II (Sistemas Operativos) 28
Direccin porcin
p p-1
palabra
n-1
Direccin porcin
p p-1
palabra
Traductor
m-1
Porcin
Direcc. porcin
p p-1
palabra
Divisin de la direccin
Traduccin de la direccin
29
31
Tiempo
32
6. Memoria virtual
6.1. Introduccin 6.2. La tabla de pginas
Memoria virtual: hacer que el usuario vea una gran memoria principal, aunque parte de ella resida fsicamente en disco (memoria de respaldo). Involucra diferentes niveles de la jerarqua de memoria: MP y memoria de respaldo.
En la memoria de respaldo se establece un mapa uniforme de memoria virtual. En este sistema las direcciones se refieren a este mapa virtual, aunque los accesos reales se hagan sobre MP.
34
36
Mapa de memoria virtual (direcciones generadas por el procesador) Memoria principal (RAM + ROM) Procesador
Direccin virtual Direccin fsica Fallo pgina
MMU
37
Memoria virtual
Programa A
Memoria virtual
Segmento 0
Programa A
38
MEMORIA PRINCIPAL
0 2p 2p-1 2 2p-1 2 2p 3 2p-1 3 2p
A'
2m-1
2 -1
n>m
Slo algunas pginas en MP. Si no est la pgina deseada: excepcin (fallo de pgina, generado por MMU)
Fundamentos de los Computadores II (Sistemas Operativos) 39
Direccin en el nivel k
n-1 Direccin pgina p p-1 0 Direccin X virtual
Pgina
Divisin de la direccin
Traduccin de la direccin
567
La tabla de pginas de cada programa ha de tener el tamao suficiente como para que pueda ejecutar Solucin ms sencilla: tabla de pginas de un nivel (como la mostrada en la transparencia anterior). En este esquema se supone que toda la memoria virtual asignada a un programa es contigua. El nmero de pgina virtual se utiliza como ndice para entrar en la tabla, y de ah se obtiene el marco de pgina en que reside en MP. Un ejemplo de traduccin con este esquema se muestra en la transparencia siguiente.
42
0 1 2 3 4 5 m
43
El problema del esquema anterior es su falta de flexibilidad. La memoria virtual asignada a cada proceso ha de ser contigua. De esta forma, la ampliacin del espacio asignado a un proceso slo puede realizarse si el espacio contiguo al que ya ocupa est libre. De esta forma, la nica alternativa posible es reservar ms espacio virtual del inicialmente necesario, de forma que se asegure la disponibilidad de espacio libre. Usando esta solucin habr grandes huecos de memoria virtual sin usar, pero que sin embargo habr que gestionar mediante las tablas correspondientes. Por esta razn se emplean esquemas con tablas de pginas de dos niveles. En este caso, la memoria asignada est compuesta de varios segmentos. El espacio correspondiente a cada segmento es contiguo, pero los diferentes segmentos no tienen por qu estar agrupados.
44
segmento de memoria donde est la informacin a acceder con esta informacin se entra en la tabla de segmentos, para acceder a la tabla de pginas del segmento el resto de la direccin permite identificar la palabra buscada
Cada tabla contiene informacin sobre su tamao, por lo que puede ser redimensionada, as como controlar los posibles accesos incorrectos.
Ventaja: se pueden asignar bloques disjuntos, que pueden crecer de forma independiente (no todos los segmentos han de ser del mismo tamao). La tabla de pginas no tiene espacios referidos a pginas que no estn en uso. En algunos sistemas se puede llegar a ms niveles de indireccin (4).
Fundamentos de los Computadores II (Sistemas Operativos) 45
Direccin virtual
Subtabla de pginas
N de ndice (Segmento)
Tamao
Memoria virtual
Programa A
Segmento 0
Direccin virtual
Tamao=5
Direccin Fsica
21-3-974
Direccin virtual
Tabla de pginas
r- 4A24 Tamao=5
48
Al dividir las tareas, se gana en rapidez, esencial para que tenga sentido este sistema de gestin de memoria
La tabla de pginas es mantenida por el SO y reside en MP (a veces parte de ella puede estar en MMU). Esto supone un problema: por cada acceso a memoria se precisan tantos accesos a la tabla (a memoria, en definitiva) como niveles de indireccin haya. Solucin: la MMU suele contar con una memoria de acceso muy rpido, que permite completar la traduccin en el menor tiempo posible. Se trata de una memoria asociativa (TLB: translation lookaside buffer), donde se almacenan los pares direccin virtual direccin fsica ms recientemente usados. La MMU se encarga de controlar las pginas modificadas, para asegurar la coherencia de la informacin
Fundamentos de los Computadores II (Sistemas Operativos) 49
50
7. Entrada/Salida
7.1. Introduccin 7.2. E/S y concurrencia 7.3. E/S y memoria virtual
Entrada/Salida (I)
7.1. Introduccin
El objetivo de los mecanismos de E/S es permitir el intercambio de informacin entre los perifricos y la memoria o los registros del procesador. Respecto al punto de vista de los SSOO los aspectos ms relevantes del la E/S aluden a: concurrencia de E/S y operacin del procesador impacto en el uso de la memoria virtual
El esquema general de un perifrico puede verse en la transparencia siguiente. Cabe distinguir entre dispositivo y controlador. Este ltimo dispone de una serie de registros incluidos en el mapa de E/S del equipo, por lo que pueden ser accedidos por parte de las operaciones de E/S.
52
Entrada/Salida (II)
Procesador
CONTROLADOR Registro control DISPOSITIVO Registro datos Registro estado
Memoria Bus
Registro de datos: en l carga el controlador los datos ledos, y de l se extraen los datos para su escritura en el perifrico. Registro de estado. Uno de sus bits sirve para indicar que el controlador puede transferir una palabra (en lectura esto significa que la palabra est en el registro de datos, en escritura que se necesita un nuevo dato). Otros bits sirven para que el controlador muestre los problemas encontrados en la ejecucin de la ltima operacin de E/S. Registro de control: indica al controlador las operaciones a realizar.
Fundamentos de los Computadores II (Sistemas Operativos) 53
Entrada/Salida (III)
7.2. E/S y concurrencia
Los perifricos son sensiblemente ms lentos que el procesador. Por ejemplo, durante el tiempo de acceso a disco de un equipo moderno podran realizarse varios millones de operaciones mquina. De ah la necesidad de aprovechar el tiempo de finalizacin de las operaciones de E/S, de forma que el procesador contine ejecutando operaciones tiles y no nicamente un bucle de espera. Modos bsicos de realizar operaciones de E/S: E/S programada E/S por interrupciones E/S por DMA (direct memory access)
54
Entrada/Salida (IV)
E/S programada: la operacin se realiza mediante la ejecucin de un programa. No hay concurrencia. Los otros dos modos si presentan diferente nivel de concurrencia Fases de una operacin de E/S: a) envo de orden al perifrico: en esta fase se escribe la orden en el registro de control del controlador del perifrico. El controlador es un dispositivo electrnico, por lo que esta fase se realiza a la velocidad del procesador. b) lectura o escritura de datos (fase de transferencia), dependiente de la velocidad del perifrico. En el caso en que la E/S se haga por programa, durante esta fase se estara repitiendo el bucle mostrado en la figura siguiente (para una operacin de lectura). De esta forma, hasta estar disponible el primer dato el bucle podra repetirse cerca del milln de veces, y entre dato y dato, varias decenas de veces.
55
Entrada/Salida (V)
Procesador
CONTROLADOR Registro control Registro datos Registro estado
Espera activa
DISPOSITIVO
Memoria Bus
n = 0 while n < m (nmero de caracteres a leer o escribir) read registro_control /* para ver si hay dato listo*/ if (registro_control = dato_disponible) /* Hay datos disponibles y se opera con ellos*/ read registro_datos store en memoria principal n = n + 1 endif endwhile
Fundamentos de los Computadores II (Sistemas Operativos) 56
Entrada/Salida (VI)
Cont b) Durante la fase de transferencia, el procesador puede estar en: espera activa: bucle de espera de eventos, como el mostrado en la transparencia anterior. Se consume tiempo de procesador espera pasiva: el procesador enva la orden de operacin de E/S y se desentiende de la misma (continua ejecutando otras operaciones). Cuando el controlador ha finalizado la operacin genera una interrupcin. La rutina de tratamiento de la interrupcin realiza la lectura del dato y se almacena en MP (suponiendo que se trata de una operacin de lectura). Por tanto, el programa que espera el evento de finalizacin de la operacin de E/S no est ejecutndose. Es la interrupcin quien despierta al programa que solicit la operacin de E/S. E/S por DMA: el controlador se encarga directamente de transferir los datos entre el perifrico y la memoria, sin requerir la intervencin del procesador. Finalizada la operacin de E/S se genera una interrupcin, de forma que el programa que solicit la operacin de E/S sepa que sta ya concluy.
57
Entrada/Salida (VII)
c) Finalizacin: el programa puede continuar con su ejecucin normal.
Envo de orden E/S programada E/S por interrupciones E/S por DMA Procesador Procesador Procesador
58
59
8. Proteccin
8.1. Mecanismos de proteccin del procesador 8.2. Mecanismos de proteccin de memoria
61
62
Proteccin (III)
RIED
63
Proteccin (IV)
Mecanismo basado en la tabla de pginas. La tabla de pginas asociada a cada programa se selecciona mediante el RIED. La MMU comprueba adems que no se sobrepase el lmite de ninguna de las tablas usadas. Si se sobrepasa, excepcin de violacin de MP.
RIED
Memoria virtual Cdigo
Tamao
Memoria principal
Datos
Tamao
Tamao
Disco
Pila
64
Proteccin (V)
En sistemas sin memoria virtual consiste en incluir un par de registros valla (superior e inferior), que marcan los extremos de la memoria contigua asignada al proceso. Todos los direccionamientos se realizan sumando al contenido del registro base. En cada acceso se comprueba si se ha excedido el valor del registro que marca el lmite superior. En caso de producirse esta situacin se genera una excepcin de violacin de memoria.
Memoria principal
Registro l mite
Registro base
Registros valla
65
9. Multiprocesador y multicomputador
9.1. Multiprocesador 9.2. Multicomputador
66
Inconveniente: limitado nmero de procesadores que se pueden aadir, para no incurrir en la saturacin del ancho de banda de la memoria comn
67
Procesador 1
Procesador 2
Procesador n
Red de conexin
E/S
Memoria principal
68
69
Red de conexin de
paso de mensajes
70