Sei sulla pagina 1di 71

FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II (Sistemas Operativos)

Captulo 1 Conceptos arquitectnicos

Fundamentos de los Computadores II (Sistemas Operativos)

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

Fundamentos de los Computadores II (Sistemas Operativos)

1. Estructura y funcionamiento del ordenador

Fundamentos de los Computadores II (Sistemas Operativos)

Estructura y funcionamiento del ordenador (I)

Estructura general a alto nivel

Procesador Datos Resultados

Instrucciones de mquina
Fundamentos de los Computadores II (Sistemas Operativos) 4

Estructura y funcionamiento del ordenador (II)


Registros MEMORIA PRINCIPAL Datos Cdigo UNIDAD ARITMTICA ROM
UNIDAD de ENTRADA/SALIDA

PERIFRICOS

UNIDAD DE CONTROL

Estado Contador de programa Puntero de pila

Registro de instruccin

Monoprocesador Multiprocesador Multicomputador


Fundamentos de los Computadores II (Sistemas Operativos)

Arquitectura von Neumann


5

Estructura y funcionamiento del ordenador (III)


Funciones de la Unidad de control: lectura instrucciones mquina interpretacin de las instrucciones lectura datos de memoria ejecucin instrucciones almacenamiento de resultados Registros asociados a la Unidad de control: contador de programa (PC: program counter): direccin de la siguiente instruccin a ejecutar puntero de pila (SP: stack pointer) registro de instruccin (IR: instruction register):instruccin a ejecutar registro de estado (SR: status register): informacin producida en la ejecucin de las instrucciones ms recientes (bits de estado aritmtico, bits de interrupcin, nivel de ejecucin, etc.....)
Fundamentos de los Computadores II (Sistemas Operativos) 6

Estructura y funcionamiento del ordenador (IV)


RECORDAR: Procesador: unidad central de proceso, unidad aritmtica + unidad de control Sistemas operativos: relacionados con el funcionamiento interno, y no con los componentes fsicos. Arquitectura: componentes fsicos del ordenador y sus relaciones Ya que el funcionamiento interno depende de los componentes disponibles, ambos enfoques son interdependientes

Fundamentos de los Computadores II (Sistemas Operativos)

2. Modelos de programacin

Fundamentos de los Computadores II (Sistemas Operativos)

Modelos de programacin (I)

El modelo de programacin, a bajo nivel, se basa en:

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

Fundamentos de los Computadores II (Sistemas Operativos)

Modelos de programacin (II)


2. Juego de instrucciones: operaciones que puede realizar el ordenador (diferentes modos de direccionamiento) 3. Secuencia de funcionamiento: modo en que se van ejecutando las instrucciones mquina. Consta de una secuencia sencilla que se repite a altsima velocidad; se compone de las siguientes tareas (repetidas en un bucle infinito):

a) b) c)

Lectura de la instruccin apuntada por CP Incremento del CP Ejecucin de la instruccin secuencia lineal: ejecuta instrucciones consecutivas bucle infinito

Fundamentos de los Computadores II (Sistemas Operativos)

10

Modelos de programacin (III)


4. Niveles de ejecucin: generalmente los SSOO disponen de varios niveles de ejecucin: nivel usuario: algunos recursos no estn disponibles, para evitar que algn programa de algn usuario pueda interferir en la ejecucin de otros programas o hacer uso de recursos que no le pertenecen (archivos, por ejemplo) nivel de ncleo: no hay restricciones

Fundamentos de los Computadores II (Sistemas Operativos)

11

Modelos de programacin (IV)


31 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A7' 16 15 87 0

Registro de estado Registros de datos


Modo Traza T 15 14 Sistema/Usuario S 13 12 11 Mscara I2 10 de I1 9 Interrupciones I0 8 7 6 5 Extensin X 4 Negativo N 3 Cero Z 2 Desbordamiento V 1 Acarreo C 0

Octeto de Sistema Octeto de Usuario

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

Fundamentos de los Computadores II (Sistemas Operativos)

12

Modelos de programacin (V)


D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A7'

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

Modelo de programacin de usuario


Fundamentos de los Computadores II (Sistemas Operativos)

Modelo de programacin de ncleo


13

Octeto de Octeto de Usuario Sistema

Modelos de programacin (VI)


Repercusiones: a) Este modo de funcionamiento se produce siempre que haya un programa cargado en memoria y el PC apunte a su primera instruccin b) Se necesitan mecanismos para romper la linealidad del modo de funcionamiento visto (bucles, bifurcaciones...). Se basan en modificar el contenido del PC c) Los mecanismos bsicos de ruptura de secuencia son: instrucciones mquina de salto o bifurcacin interrupciones externas o internas (es la CPU quien modifica el PC) instruccin TRAP

Importancia de instrucciones y bifurcaciones para el SO: permiten cambiar el modo de ejecucin.


Fundamentos de los Computadores II (Sistemas Operativos) 14

3. Interrupciones

Fundamentos de los Computadores II (Sistemas Operativos)

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

Fundamentos de los Computadores II (Sistemas Operativos)

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.

Rutina Trat. Interrupcin

Memoria

Fundamentos de los Computadores II (Sistemas Operativos)

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

Fundamentos de los Computadores II (Sistemas Operativos)

4. Reloj

Fundamentos de los Computadores II (Sistemas Operativos)

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)

Esquema general con las tres visiones del reloj

Contador Divisor de frecuencia Oscilador


INT

Procesador

Fundamentos de los Computadores II (Sistemas Operativos)

21

5. Jerarqua de memoria
5.1. 5.2. 5.3. 5.4. Introduccin Migracin de la informacin Direccionamiento Proximidad

Fundamentos de los Computadores II (Sistemas Operativos)

22

Jerarqua de memoria (I) 5.1. Introduccin


Objetivo: conseguir tiempos de acceso aceptables a costes razonables Elementos de informacin replicados en varios niveles de la jerarqua. Cuando los datos van a ser usados se promueven a niveles ms rpidos (hacia arriba). Cuando se modifica o crea informacin en niveles rpidos y quiere hacerse permanente, se promueve a niveles inferiores Problema de coherencia: necesidad de actualizar las diferentes copias de los mismos datos, de forma que se asegure que siempre que se use se tomarn los valores correctos Traduccin de direcciones: las copias de la misma informacin, en niveles distintos, tendrn direcciones diferentes. Necesidad de traducir
Fundamentos de los Computadores II (Sistemas Operativos) 23

Jerarqua de memoria (II)


+ Rapidez
Reg. M. Cache Mem. Principal Gestin HW Gestin S.O.

Mem. Expandida

Gestin S.O.

Discos

Gestin S.O.

-Coste + Capacidad

Fundamentos de los Computadores II (Sistemas Operativos)

24

Jerarqua de memoria (III)


5.2. Migracin
Objetivo: que la informacin est en el nivel adecuado cuando se necesite
Migracin de la informacin realizada de forma:

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

Fundamentos de los Computadores II (Sistemas Operativos)

25

Jerarqua de memoria (IV)


El mecanismo de migracin se basa en los siguientes aspectos:

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

Jerarqua de memoria (V)


poltica de ubicacin: dnde se coloca la nueva informacin. Hay situaciones en que se puede optar por ubicarla en diferentes niveles

Fundamentos de los Computadores II (Sistemas Operativos)

27

Jerarqua de memoria (VI)


5.3. Direccionamiento
El programa en ejecucin genera la direccin X relativa al dato A. Esta direccin X se refiere al nivel k+1. Sin embargo, hay una copia del dato en el nivel K, por lo que se desear acceder a la copia en este nivel. Este dato tiene direccin Y en el nivel K.
n bits Traductor m bits Direccin en el nivel k Direccin en el nivel k+1

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

Jerarqua de memoria (VII)


Para simplificar la traduccin y aprovechar la proximidad espacial, se dividen los mapas de direcciones en porciones de tamao fijo (2p). Estos bloques constituyen la unidad mnima de informacin transferida entre niveles. Al tener la unidad de informacin este tamao, la direccin puede descomponerse en dos partes: m-p bits: identifican el bloque p bits: identifican el byte dentro del bloque
n-1

Direccin porcin

p p-1

palabra

n-1

Direccin porcin

p p-1

palabra

Direccin X de nivel k+1

Traductor
m-1

Porcin

Direcc. porcin

p p-1

palabra

Direccin Y del nivel k

Divisin de la direccin

Traduccin de la direccin

Fundamentos de los Computadores II (Sistemas Operativos)

29

Jerarqua de memoria (VIII)


5.4. Proximidad
Proximidad referencial: un programa en ejecucin slo usa en cada momento una pequea parte de toda la informacin que maneja. Las referencias usadas muestran adems ciertas relaciones.
Se denomina traza a la lista ordenada, en el tiempo, de las direcciones de memoria direccionadas. La traza R est compuesta tanto por direcciones de instrucciones como por instrucciones de datos Re = re (1), re (2), re (3), ....., re (j) re (i): i-sima direccin ejecucin del programa e

Sean u y v dos direcciones: d(u,v)=|u-v|, por lo que


d(re(j),re(k))=|re(j)-re(k)|
Fundamentos de los Computadores II (Sistemas Operativos) 30

Jerarqua de memoria (IX)


Proximidad espacial: dadas dos referencia re(j) y re(i) prximas en el tiempo (i-j es pequeo), existe alta probabilidad de que su distancia d(re(i),re(j)) sea muy pequea Proximidad secuencial: ya que muchos trozos de programas y estructuras de datos se recorren de forma secuencial, existe alta probabilidad de que la referencia siguiente a re(j) coincida con la siguiente direccin de memoria Proximidad temporal: los programas suelen referenciar direcciones empleadas en un pasado prximo. Es decir, existe alta probabilidad de que la prxima referencia a re(j+1) est entre las n referencias previas: re(j-n+1),re(j-n+2),...,re(j-1),re(j)

Fundamentos de los Computadores II (Sistemas Operativos)

31

Jerarqua de memoria (X)

Tiempo

Fundamentos de los Computadores II (Sistemas Operativos)

32

6. Memoria virtual
6.1. Introduccin 6.2. La tabla de pginas

Memoria virtual (I)


6.1. Introduccin
Los SSOO antiguos dividen la memoria en trozos y asignan uno a cada programa en ejecucin. El espacio asignado a cada programa consiste en una zona contigua de MP. Problema: asignacin dinmica de espacio y crecimiento de los trozos asignados. Solucin: reserva en exceso.

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.

Fundamentos de los Computadores II (Sistemas Operativos)

34

Memoria virtual (II)


Exige gestin automtica de los niveles de la jerarqua de memoria involucrados: la gestin corre de parte del SO apoyado en el HW, pero no de los programas Aspectos principales: a) Todas las direcciones estn referidas al espacio virtual (direcciones virtuales) b) El mapa virtual asociado a un programa en ejecucin est soportado por espacio en disco (zona de intercambio o swap) y espacio en MP c) Aunque se utilicen direcciones virtuales, para que puedan usarse los datos han de residir en MP. Si no estn en MP se requiere trasvase de informacin d) Los espacios virtual y fsico se dividen en pginas: pginas virtuales (espacio virtual) y pginas de intercambio (residente en disco)
Fundamentos de los Computadores II (Sistemas Operativos) 35

Memoria virtual (III)


e) Marco de pgina: espacios en que se divide la MP, para albergar a cualquier pgina virtual. (Marco === hueco para alojar una pgina, cualquier pgina) f) MMU(Memory Management Unit): traduce las direcciones virtuales a direcciones fsicas. Es decir, traduce el nmero de pgina virtual a nmero de marco de pgina. Esta traduccin ha de ser muy rpida, por lo que se hace va hardware g) En cada instante slo residen en MP un pequeo nmero de pginas. La traduccin directa no siempre es posible (los datos buscados no estn en ninguna de las pginas residentes en MP). En este caso la MMU genera una excepcin de fallo de pgina (que ser atendida por el SO) h) Se denomina paginacin al proceso de migracin necesario para atender los fallos de pgina i) El SO asigna el espacio virtual a cada programa en ejecucin. Este espacio puede estar en una nica zona o en varias (segmentos)

Fundamentos de los Computadores II (Sistemas Operativos)

36

Memoria virtual (IV)


j) Los programas no conocen a priori sus necesidades de memoria, por lo que el SO debe ser capaz de aumentar o reducir el espacio asignado, segn evolucionen sus necesidades

Mapa de memoria virtual (direcciones generadas por el procesador) Memoria principal (RAM + ROM) Procesador
Direccin virtual Direccin fsica Fallo pgina

MMU

Memoria Secundaria (Intercambio)

Fundamentos de los Computadores II (Sistemas Operativos)

37

Memoria virtual (V)

Memoria virtual

Programa A

Memoria virtual

Segmento 0

Segmento 1 Segmento 2 Sistema operativo Sistema operativo

Programa A

Fundamentos de los Computadores II (Sistemas Operativos)

38

Memoria virtual (VI)


MAPA VIRTUAL (RESIDENTE EN DISCO)
0 2p-1 2p 2 2p -1 2 2p 3 2p-1 3 2p

Proyeccin de pgina virtual a memoria fsica

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

Memoria virtual (VII)


n bits Traductor m bits
n-1 Direccin pgina p p-1 0

Direccin en el nivel k+1

Direccin en el nivel k
n-1 Direccin pgina p p-1 0 Direccin X virtual

Traductor m-1 Direcc. pgina p p-1 0 Direccin Y real

Pgina

Divisin de la direccin

Traduccin de la direccin

Traduccin realizada por la MMU


Fundamentos de los Computadores II (Sistemas Operativos) 40

Memoria virtual (VIII)


6.2. Tabla de pginas
Estructura que contiene informacin sobre dnde residen las pginas de un programa en ejecucin. Esta tabla permite saber si una pgina est o no en MP, y de estarlo, el marco en que se ubica
SI/NO 0 1 2 3 4 5 m 1 1 0 1 0 1 6738 Memoria virtual N Marco 2364 34 Programa A

567

Tabla de pginas de un nivel Fundamentos de los Computadores II (Sistemas Operativos) 41

Memoria virtual (IX)

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.

Fundamentos de los Computadores II (Sistemas Operativos)

42

Memoria virtual (X)

Direccin Virtual N Pgina Byte 000.......00000000000000000101 01111001110


5 974

0 1 2 3 4 5 m

SI/NO N Marco 1 2364 1 34 0 1 567 0 1 6738

Direccin Fsica Byte N Marco 000...01101001010010 01111001110


6738 974

Fundamentos de los Computadores II (Sistemas Operativos)

43

Memoria virtual (XI)

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.

Fundamentos de los Computadores II (Sistemas Operativos)

44

Memoria virtual (XII)

En este caso, la direccin virtual se divide en tres partes:

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

Memoria virtual (XIII)


Pgina virtual 1er nivel 2 nivel Byte

Direccin virtual

Subtabla de pginas

N de ndice (Segmento)

Tamao Subtabla de pginas Tamao Marco de Pgina Segmento S

Tamao

Memoria virtual

Tabla de pginas de dos niveles

Esquema de tabla de pginas con dos niveles


Fundamentos de los Computadores II (Sistemas Operativos) 46

Programa A

Subtabla de ndices (segmentos)

Segmento 0

Memoria virtual (XIV)


Pgina virtual
Byte 00.......0000101 00.......000000000000000000000011 01111001110

Direccin virtual

Tabla de pginas Tabla de ndices (segmentos)

Tamao=9 Tamao=7 Tabla de pginas


N Marco Byte 00...100101000100100 01111001110

Tamao=5

Direccin Fsica

Ejemplo de traduccin con tablas de dos niveles


Fundamentos de los Computadores II (Sistemas Operativos) 47

Memoria virtual (XV)


00.......010101 00.......000000000000000000000011 01111001110

21-3-974

Pgina virtual Byte


00.......010101 00.......000000000000000000000011 01111001110

Direccin virtual

Tabla de pginas Tabla de ndices (segmentos) TRAP rw 476AC2 Tamao=7 Tamao=9

Tabla de pginas

Intento de acceso incorrecto


Fundamentos de los Computadores II (Sistemas Operativos)

r- 4A24 Tamao=5

48

Memoria virtual (XVI)


SO: encargado de asignar la memoria y construir la tabla de pginas MMU: encargada de realizar las traducciones

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

Memoria virtual (XVII)


Si hay varios programas activos, cada uno de ellos poseer su propia tabla de pginas. La MMU usar la tabla de pginas del programa en ejecucin. Para ello el procesador tiene un registro identificador de espacio de direcciones (RIED). Este registro contiene la direccin en que est almacenada la tabla de segmentos del programa.

Fundamentos de los Computadores II (Sistemas Operativos)

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.

Fundamentos de los Computadores II (Sistemas Operativos)

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)

Fundamentos de los Computadores II (Sistemas Operativos)

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.

Fundamentos de los Computadores II (Sistemas Operativos)

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

Fundamentos de los Computadores II (Sistemas Operativos)

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

Espera dato Procesador Controlador Controlador

Transferencia dato Procesador Procesador Controlador

Fin operacin Procesador Procesador Procesador

Fundamentos de los Computadores II (Sistemas Operativos)

58

Entrada/Salida (VIII) 7.3. E/S y memoria virtual


El programa que solicita la operacin de E/S especifica una variable que determina un bfer de memoria sobre el que se hace la operacin (de lectura, en este caso). Para que el controlador (DMA) pueda completar la operacin dicho bfer debe residir en MP. El SO debe garantizar que el bfer donde se hace E/S est en MP. Es decir, los marcos afectados no pueden ser objeto de paginacin. En otro caso, la operacin de E/S supondra un coste adicional, una vez dispuestos los datos (adems, el coste de esta operacin no puede realizarse sin la aportacin del procesador).

Fundamentos de los Computadores II (Sistemas Operativos)

59

8. Proteccin
8.1. Mecanismos de proteccin del procesador 8.2. Mecanismos de proteccin de memoria

Proteccin (I) 8.1. Mecanismos de proteccin del procesador


Proteccin basada en los niveles de ejecucin. Objetivo bsico: los perifricos. Por ello, todas las operaciones de E/S se hacen en modo ncleo.

Interrupcin Ncleo Usuario Cambiar a modo usuario

Fundamentos de los Computadores II (Sistemas Operativos)

61

Proteccin (II) 8.2. Mecanismos de proteccin memoria


Objetivo: evitar que unos programas usen direcciones de memoria que no le han sido asignadas.. En sistemas con memoria virtual hay dos mecanismos bsicos: a) Limitar el mapa de memoria accesible en nivel de usuario. La MMU genera una excepcin de violacin de memoria en el caso en que en nivel de usuario se intente usar una direccin no permitida. Suele ser usual dotar al procesador de un registro RIED (registro de identificacin de espacio de direccionamiento), que permite que cada programa en ejecucin disponga de su propio espacio virtual y no pueda acceder a los espacios de memoria de otros procesos. (Ver transparencia siguiente)

Fundamentos de los Computadores II (Sistemas Operativos)

62

Proteccin (III)

RIED

Mapa Virtual de Usuario A Mapa Virtual del S.O.

Fundamentos de los Computadores II (Sistemas Operativos)

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

Tabla de pginas Una tabla de pginas por proceso


Tamao

Fundamentos de los Computadores II (Sistemas Operativos)

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

Fundamentos de los Computadores II (Sistemas Operativos)

Registro base

Regin asignada al proceso A

Registros valla

65

9. Multiprocesador y multicomputador
9.1. Multiprocesador 9.2. Multicomputador

Fundamentos de los Computadores II (Sistemas Operativos)

66

Multiprocesador y multicomputador (I) 9.1. Multiprocesador


Multiprocesador: mquina formada por un conjunto de procesadores que comparten el acceso a una MP comn. Ventaja: sencillez en el acceso a datos comunes, por parte de diversos programas

Inconveniente: limitado nmero de procesadores que se pueden aadir, para no incurrir en la saturacin del ancho de banda de la memoria comn

Fundamentos de los Computadores II (Sistemas Operativos)

67

Multiprocesador y multicomputador (II)

Procesador 1

Procesador 2

Procesador n

Red de conexin

E/S

Memoria principal

Fundamentos de los Computadores II (Sistemas Operativos)

68

Multiprocesador y multicomputador (III) 9.2. Multicomputador


Multicomputador: mquina compuesta de varios nodos, cada uno de ellos formado por procesador, MP y en algn caso dispositivos de E/S. Los programas en ejecucin ya no pueden compartir los datos en MP. Sin embargo, no hay limitacin en cuanto al nmero de nodos que podran interconectarse.

Fundamentos de los Computadores II (Sistemas Operativos)

69

Multiprocesador y multicomputador (IV)

Memoria principal Procesador

Memoria principal Procesador

Memoria principal Procesador

Red de conexin de
paso de mensajes

Fundamentos de los Computadores II (Sistemas Operativos)

70

Potrebbero piacerti anche