La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003.

Presentaciones similares


Presentación del tema: "Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003."— Transcripción de la presentación:

1 Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

2 Fundamentos de los Computadores II 1 (Sistemas Operativos) Capítulo 1 Conceptos arquitectónicos

3 Fundamentos de los Computadores II 2 (Sistemas Operativos) Contenido 1.Estructura y funcionamiento del ordenador 2.Modelos de programación 3.Interrupciones 4.Reloj 5.Jerarquía de memoria 6.Memoria virtual 7.Entrada/Salida 8.Protección 9.Multiprocesador y multicomputadora

4 Fundamentos de los Computadores II 3 (Sistemas Operativos) 1. Estructura y funcionamiento del ordenador

5 Fundamentos de los Computadores II 4 (Sistemas Operativos) Estructura general a alto nivel Estructura y funcionamiento del ordenador (I)

6 Fundamentos de los Computadores II 5 (Sistemas Operativos) Estructura y funcionamiento del ordenador (II) Monoprocesador MultiprocesadorArquitectura von Neumann Multicomputador

7 Fundamentos de los Computadores II 6 (Sistemas Operativos) Estructura y funcionamiento del ordenador (III) Funciones de la Unidad de control: lectura instrucciones máquina interpretación de las instrucciones lectura datos de memoria ejecución instrucciones almacenamiento de resultados Registros asociados a la Unidad de control: contador de programa (PC: program counter): dirección de la siguiente instrucción a ejecutar puntero de pila (SP: stack pointer) registro de instrucción (IR: instruction register):instrucción a ejecutar registro de estado (SR: status register): información producida en la ejecución de las instrucciones más recientes (bits de estado aritmético, bits de interrupción, nivel de ejecución, etc.....)

8 Fundamentos de los Computadores II 7 (Sistemas Operativos) Estructura y funcionamiento del ordenador (IV) RECORDAR: Procesador: unidad central de proceso, unidad aritmética + unidad de control Sistemas operativos: relacionados con el funcionamiento interno, y no con los componentes físicos. Arquitectura: componentes físicos del ordenador y sus relaciones Ya que el funcionamiento interno depende de los componentes disponibles, ambos enfoques son interdependientes

9 Fundamentos de los Computadores II 8 (Sistemas Operativos) 2. Modelos de programación

10 Fundamentos de los Computadores II 9 (Sistemas Operativos) El modelo de programación, a bajo nivel, se basa en: 1.Elementos de almacenamiento disponibles en la ejecución de las instrucciones máquina: registros generales contador de programa puntero de la pila registro de estado memoria principal mapa de E/S Modelos de programación (I)

11 Fundamentos de los Computadores II 10 (Sistemas Operativos) Modelos de programación (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 máquina. Consta de una secuencia sencilla que se repite a altísima velocidad; se compone de las siguientes tareas (repetidas en un bucle infinito): a)Lectura de la instrucción apuntada por CP b)Incremento del CP c)Ejecución de la instrucción secuencia lineal: ejecuta instrucciones consecutivas bucle infinito

12 Fundamentos de los Computadores II 11 (Sistemas Operativos) 4.Niveles de ejecución: generalmente los SSOO disponen de varios niveles de ejecución: nivel usuario: algunos recursos no están disponibles, para evitar que algún programa de algún usuario pueda interferir en la ejecución de otros programas o hacer uso de recursos que no le pertenecen (archivos, por ejemplo) nivel de núcleo: no hay restricciones Modelos de programación (III)

13 Fundamentos de los Computadores II 12 (Sistemas Operativos) Modelos de programación (IV)

14 Fundamentos de los Computadores II 13 (Sistemas Operativos) Modelos de programación (V)

15 Fundamentos de los Computadores II 14 (Sistemas Operativos) Modelos de programación (VI) Repercusiones: a)Este modo de funcionamiento se produce siempre que haya un programa cargado en memoria y el PC apunte a su primera instrucción 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 básicos de ruptura de secuencia son: instrucciones máquina de salto o bifurcación interrupciones externas o internas (es la CPU quien modifica el PC) instrucción TRAP Importancia de instrucciones y bifurcaciones para el SO: permiten cambiar el modo de ejecución.

16 Fundamentos de los Computadores II 15 (Sistemas Operativos) 3. Interrupciones

17 Fundamentos de los Computadores II 16 (Sistemas Operativos) Una interrupción se solicita activando una señal que llega a la unidad de control. El elemento que necesita ser atendido y genera la señal se denomina agente generador. Ante la solicitud (si esta interrupción está habilitada) se realiza un ciclo de aceptación de interrupción por parte de la UC. Este ciclo se produce al terminar la ejecución de la instrucción en curso, y consiste en: Salva algunos registros del procesador (CP y registro de estado) Eleva el nivel de ejecución del procesador (nivel de núcleo) Salta al SO, cargando un nuevo valor en CP El SO dispone de rutinas de tratamiento de las interrupciones Interrupciones (I)

18 Fundamentos de los Computadores II 17 (Sistemas Operativos) Interrupciones (II) Mecanismo usual para determinar la dirección de salto: 1.El agente que interrumpe suministra un vector, que identifica la dirección del programa que desea que le atienda (programa de tratamiento de la interrupción) 2.La UC toma dicha dirección y la carga en CP, con lo que comienza a ejecutarse el programa de tratamiento Agente que interrumpe Unidad de control Vector Solicitud de Interrupción Tabla Interr. Rutina Trat. Interrupción S.O. Memoria

19 Fundamentos de los Computadores II 18 (Sistemas Operativos) Interrupciones (III) Causas de generación de interrupciones: 1.Excepciones de programas por problemas de ejecución (desbordamiento, operaciones aritméticas 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 instrucción RETI (instrucción para retorno de interrupción). Esta instrucción restituye los registros de estado y CP, para volver al punto de ejecución donde se generó la interrupción Hay diferentes señales que solicitan interrupciones, con diferentes prioridades. Algunas de las señales se pueden inhibir explícitamente (por lo que no serán atendidas)

20 Fundamentos de los Computadores II 19 (Sistemas Operativos) 4. Reloj

21 Fundamentos de los Computadores II 20 (Sistemas Operativos) Tres visiones del reloj –Oscilador que gobierna las fases de las instrucciones de máquina: 1000 MHZ (frecuencia) –Interrupción periódica. La señal de oscilador se divide para generar interrupciones cada cierto periodo de tiempo. Objetivo: conseguir que el SO pase a ejecutar de forma sistemática cada cierto intervalo de tiempo, evitando así que algún 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 batería –SO Reloj (I)

22 Fundamentos de los Computadores II 21 (Sistemas Operativos) Reloj (II) Esquema general con las tres visiones del reloj

23 Fundamentos de los Computadores II 22 (Sistemas Operativos) 5. Jerarquía de memoria 5.1. Introducción 5.2. Migración de la información 5.3. Direccionamiento 5.4. Proximidad

24 Fundamentos de los Computadores II 23 (Sistemas Operativos) Jerarquía de memoria (I) Objetivo: conseguir tiempos de acceso aceptables a costes razonables Elementos de información replicados en varios niveles de la jerarquía. Cuando los datos van a ser usados se promueven a niveles más rápidos (hacia arriba). Cuando se modifica o crea información en niveles rápidos 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 tomarán los valores correctos Traducción de direcciones: las copias de la misma información, en niveles distintos, tendrán direcciones diferentes. Necesidad de traducir 5.1. Introducción

25 Fundamentos de los Computadores II 24 (Sistemas Operativos) + Rapidez -Coste + Capacidad Jerarquía de memoria (II)

26 Fundamentos de los Computadores II 25 (Sistemas Operativos) Jerarquía de memoria (III) 5.2. Migración Objetivo: que la información esté en el nivel adecuado cuando se necesite Migración de la información realizada de forma: –Automática: se realiza de forma transparente al programa. Se produce en las memorias caché y en la memoria virtual –Por demanda explícita: el programa solicita explícitamente el movimiento de la información. Por ejemplo, un editor de textos cuando solicita partes del documento a medida que se va visualizando

27 Fundamentos de los Computadores II 26 (Sistemas Operativos) El mecanismo de migración se basa en los siguientes aspectos: tamaño de bloques transferidos: cantidad de información movida entre niveles. Disminuye a medida que nos acercamos a la cúspide política de extracción: qué información sube al nivel k desde el nivel k+1 y cuándo. Solución más común: por demanda. Se promueva aquella información solicitada por el programa y cuando se referencia. Se aprovecha la proximidad espacial, por lo que no sólo se promueve el dato solicitado, sino también las direcciones cercanas (bloque, línea, página,....) política de reemplazo: el nivel k tiene menor tamaño que el nivel k+1, por lo que estará lleno cuando se quiera llevar información a él, y habrá que extraer datos ya presentes Jerarquía de memoria (IV)

28 Fundamentos de los Computadores II 27 (Sistemas Operativos) Jerarquía de memoria (V) política de ubicación: dónde se coloca la nueva información. Hay situaciones en que se puede optar por ubicarla en diferentes niveles

29 Fundamentos de los Computadores II 28 (Sistemas Operativos) Jerarquía de memoria (VI) 5.3. Direccionamiento El programa en ejecución genera la dirección X relativa al dato A. Esta dirección 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 dirección Y en el nivel K. Se trata de un problema no trivial, ya que puede haber notables diferencias de tamaño entre niveles: k+1 (2GB, n=31) k (8M, m=23)

30 Fundamentos de los Computadores II 29 (Sistemas Operativos) Jerarquía de memoria (VII) Para simplificar la traducción y aprovechar la proximidad espacial, se dividen los mapas de direcciones en porciones de tamaño fijo (2 p ). Estos bloques constituyen la unidad mínima de información transferida entre niveles. Al tener la unidad de información este tamaño, la dirección puede descomponerse en dos partes: m-p bits: identifican el bloque p bits: identifican el byte dentro del bloque Dirección porción Dirección X de nivel k+1 Dirección Y del nivel k Traductor Direcc. porción n-1 0 0 p p-1 m-1 Dirección porción División de la direcciónTraducción de la dirección Porción n-1 0p p-1 palabra

31 Fundamentos de los Computadores II 30 (Sistemas Operativos) Jerarquía de memoria (VIII) 5.4. Proximidad Proximidad referencial: un programa en ejecución sólo usa en cada momento una pequeña parte de toda la información que maneja. Las referencias usadas muestran además 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 R e = r e (1), r e (2), r e (3),....., r e (j) r e (i): i-ésima dirección ejecución del programa e Sean u y v dos direcciones: d(u,v)=|u-v|, por lo que d(r e (j),r e (k))=|r e (j)-r e (k)|

32 Fundamentos de los Computadores II 31 (Sistemas Operativos) Jerarquía de memoria (IX) -Proximidad espacial: dadas dos referencia r e (j) y r e (i) próximas en el tiempo (i-j es pequeño), existe alta probabilidad de que su distancia d(r e (i),r e (j)) sea muy pequeña -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 r e (j) coincida con la siguiente dirección de memoria -Proximidad temporal: los programas suelen referenciar direcciones empleadas en un pasado próximo. Es decir, existe alta probabilidad de que la próxima referencia a r e (j+1) esté entre las n referencias previas: r e (j-n+1),r e (j-n+2),...,r e (j-1),r e (j)

33 Fundamentos de los Computadores II 32 (Sistemas Operativos) Tiempo Jerarquía de memoria (X) Dirección

34 6. Memoria virtual 6.1. Introducción 6.2. La tabla de páginas

35 Fundamentos de los Computadores II 34 (Sistemas Operativos) Los SSOO antiguos dividen la memoria en trozos y asignan uno a cada programa en ejecución. El espacio asignado a cada programa consiste en una zona contigua de MP. Problema: asignación dinámica de espacio y crecimiento de los trozos asignados. Solución: reserva en exceso. Memoria virtual: hacer que el usuario vea una gran memoria principal, aunque parte de ella resida físicamente en disco (memoria de respaldo). Involucra diferentes niveles de la jerarquía 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. Memoria virtual (I) 6.1. Introducción

36 Fundamentos de los Computadores II 35 (Sistemas Operativos) Memoria virtual (II) Exige gestión automática de los niveles de la jerarquía de memoria involucrados: la gestión corre de parte del SO apoyado en el HW, pero no de los programas Aspectos principales: a)Todas las direcciones están referidas al espacio virtual (direcciones virtuales) b)El mapa virtual asociado a un programa en ejecución 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 están en MP se requiere trasvase de información d)Los espacios virtual y físico se dividen en páginas: páginas virtuales (espacio virtual) y páginas de intercambio (residente en disco)

37 Fundamentos de los Computadores II 36 (Sistemas Operativos) Memoria virtual (III) e)Marco de página: espacios en que se divide la MP, para albergar a cualquier página virtual. (Marco === hueco para alojar una página, cualquier página) f)MMU(Memory Management Unit): traduce las direcciones virtuales a direcciones físicas. Es decir, traduce el número de página virtual a número de marco de página. Esta traducción ha de ser muy rápida, por lo que se hace vía hardware g)En cada instante sólo residen en MP un pequeño número de páginas. La traducción directa no siempre es posible (los datos buscados no están en ninguna de las páginas residentes en MP). En este caso la MMU genera una excepción de fallo de página (que será atendida por el SO) h)Se denomina paginación al proceso de migración necesario para atender los fallos de página i)El SO asigna el espacio virtual a cada programa en ejecución. Este espacio puede estar en una única zona o en varias (segmentos)

38 Fundamentos de los Computadores II 37 (Sistemas Operativos) 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, según evolucionen sus necesidades

39 Fundamentos de los Computadores II 38 (Sistemas Operativos) Memoria virtual Programa A Segmento 0 Segmento 1 Segmento 2 Sistema operativo Memoria virtual Programa A Sistema operativo Memoria virtual (V)

40 Fundamentos de los Computadores II 39 (Sistemas Operativos) Sólo algunas páginas en MP. Si no está la página deseada: excepción (fallo de página, generado por MMU) Memoria virtual (VI)

41 Fundamentos de los Computadores II 40 (Sistemas Operativos) Dirección en el nivel k+1 Dirección en el nivel k Traductor n bits m bits Dirección página Dirección X virtual Dirección Y real Traductor Direcc. página n-1 0 0 p p-1 m-1 Dirección página División de la direcciónTraducción de la dirección Página n-1 0p p-1 Traducción realizada por la MMU Memoria virtual (VII)

42 Fundamentos de los Computadores II 41 (Sistemas Operativos) 2364 Nº Marco 34 0 0 0 1 1 1 1 1 2 3 4 5 m 567 6738 SI/NO Memoria virtual Programa A Tabla de páginas de un nivel 6.2. Tabla de páginas Estructura que contiene información sobre dónde residen las páginas de un programa en ejecución. Esta tabla permite saber si una página está o no en MP, y de estarlo, el marco en que se ubica Memoria virtual (VIII)

43 Fundamentos de los Computadores II 42 (Sistemas Operativos) Memoria virtual (IX) La tabla de páginas de cada programa ha de tener el tamaño suficiente como para que pueda ejecutar Solución más sencilla: tabla de páginas 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 número de página virtual se utiliza como índice para entrar en la tabla, y de ahí se obtiene el marco de página en que reside en MP. Un ejemplo de traducción con este esquema se muestra en la transparencia siguiente.

44 Fundamentos de los Computadores II 43 (Sistemas Operativos) Memoria virtual (X)

45 Fundamentos de los Computadores II 44 (Sistemas Operativos) 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 ampliación del espacio asignado a un proceso sólo puede realizarse si el espacio contiguo al que ya ocupa está libre. De esta forma, la única alternativa posible es reservar más espacio virtual del inicialmente necesario, de forma que se asegure la disponibilidad de espacio libre. Usando esta solución habrá grandes huecos de memoria virtual sin usar, pero que sin embargo habrá que gestionar mediante las tablas correspondientes. Por esta razón se emplean esquemas con tablas de páginas 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.

46 Fundamentos de los Computadores II 45 (Sistemas Operativos) Memoria virtual (XII) En este caso, la dirección virtual se divide en tres partes: -segmento de memoria donde está la información a acceder -con esta información se entra en la tabla de segmentos, para acceder a la tabla de páginas del segmento -el resto de la dirección permite identificar la palabra buscada Cada tabla contiene información sobre su tamaño, 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 tamaño). La tabla de páginas no tiene espacios referidos a páginas que no están en uso. En algunos sistemas se puede llegar a más niveles de indirección (4).

47 Fundamentos de los Computadores II 46 (Sistemas Operativos) Memoria virtual (XIII) Esquema de tabla de páginas con dos niveles

48 Fundamentos de los Computadores II 47 (Sistemas Operativos) Memoria virtual (XIV) Ejemplo de traducción con tablas de dos niveles

49 Fundamentos de los Computadores II 48 (Sistemas Operativos) Memoria virtual (XV) Intento de acceso incorrecto

50 Fundamentos de los Computadores II 49 (Sistemas Operativos) Memoria virtual (XVI) SO: encargado de asignar la memoria y construir la tabla de páginas MMU: encargada de realizar las traducciones Al dividir las tareas, se gana en rapidez, esencial para que tenga sentido este sistema de gestión de memoria La tabla de páginas 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 indirección haya. Solución: la MMU suele contar con una memoria de acceso muy rápido, que permite completar la traducción en el menor tiempo posible. Se trata de una memoria asociativa (TLB: translation lookaside buffer), donde se almacenan los pares dirección virtual – dirección física más recientemente usados. La MMU se encarga de controlar las páginas modificadas, para asegurar la coherencia de la información

51 Fundamentos de los Computadores II 50 (Sistemas Operativos) Memoria virtual (XVII) Si hay varios programas activos, cada uno de ellos poseerá su propia tabla de páginas. La MMU usará la tabla de páginas del programa en ejecución. Para ello el procesador tiene un registro identificador de espacio de direcciones (RIED). Este registro contiene la dirección en que está almacenada la tabla de segmentos del programa.

52 7. Entrada/Salida 7.1. Introducción 7.2. E/S y concurrencia 7.3. E/S y memoria virtual

53 Fundamentos de los Computadores II 52 (Sistemas Operativos) 7.1. Introducción El objetivo de los mecanismos de E/S es permitir el intercambio de información entre los periféricos y la memoria o los registros del procesador. Respecto al punto de vista de los SSOO los aspectos más relevantes del la E/S aluden a: concurrencia de E/S y operación del procesador impacto en el uso de la memoria virtual El esquema general de un periférico 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. Entrada/Salida (I)

54 Fundamentos de los Computadores II 53 (Sistemas Operativos) Registro de datos: en él carga el controlador los datos leídos, y de él se extraen los datos para su escritura en el periférico. 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 ejecución de la última operación de E/S. Registro de control: indica al controlador las operaciones a realizar. Entrada/Salida (II)

55 Fundamentos de los Computadores II 54 (Sistemas Operativos) Entrada/Salida (III) 7.2. E/S y concurrencia Los periféricos son sensiblemente más lentos que el procesador. Por ejemplo, durante el tiempo de acceso a disco de un equipo moderno podrían realizarse varios millones de operaciones máquina. De ahí la necesidad de aprovechar el tiempo de finalización de las operaciones de E/S, de forma que el procesador continúe ejecutando operaciones útiles y no únicamente un bucle de espera. Modos básicos de realizar operaciones de E/S: E/S programada E/S por interrupciones E/S por DMA (direct memory access)

56 Fundamentos de los Computadores II 55 (Sistemas Operativos) Entrada/Salida (IV) E/S programada: la operación se realiza mediante la ejecución de un programa. No hay concurrencia. Los otros dos modos si presentan diferente nivel de concurrencia Fases de una operación de E/S: a)envío de orden al periférico: en esta fase se escribe la orden en el registro de control del controlador del periférico. El controlador es un dispositivo electrónico, 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 periférico. En el caso en que la E/S se haga por programa, durante esta fase se estaría repitiendo el bucle mostrado en la figura siguiente (para una operación de lectura). De esta forma, hasta estar disponible el primer dato el bucle podría repetirse cerca del millón de veces, y entre dato y dato, varias decenas de veces.

57 Fundamentos de los Computadores II 56 (Sistemas Operativos) Entrada/Salida (V) Espera activa n = 0 while n < m (número 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

58 Fundamentos de los Computadores II 57 (Sistemas Operativos) 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 envía la orden de operación de E/S y se desentiende de la misma (continua ejecutando otras operaciones). Cuando el controlador ha finalizado la operación genera una interrupción. La rutina de tratamiento de la interrupción realiza la lectura del dato y se almacena en MP (suponiendo que se trata de una operación de lectura). Por tanto, el programa que espera el evento de finalización de la operación de E/S no está ejecutándose. Es la interrupción quien despierta al programa que solicitó la operación de E/S. E/S por DMA: el controlador se encarga directamente de transferir los datos entre el periférico y la memoria, sin requerir la intervención del procesador. Finalizada la operación de E/S se genera una interrupción, de forma que el programa que solicitó la operación de E/S sepa que ésta ya concluyó.

59 Fundamentos de los Computadores II 58 (Sistemas Operativos) Entrada/Salida (VII) c) Finalización: el programa puede continuar con su ejecución normal. Envío de ordenEspera dato Transferencia dato Fin operación E/S programada Procesador E/S por interrupciones ProcesadorControladorProcesador E/S por DMAProcesadorControlador Procesador

60 Fundamentos de los Computadores II 59 (Sistemas Operativos) Entrada/Salida (VIII) 7.3. E/S y memoria virtual El programa que solicita la operación de E/S especifica una variable que determina un búfer de memoria sobre el que se hace la operación (de lectura, en este caso). Para que el controlador (DMA) pueda completar la operación dicho búfer debe residir en MP. El SO debe garantizar que el búfer donde se hace E/S esté en MP. Es decir, los marcos afectados no pueden ser objeto de paginación. En otro caso, la operación de E/S supondría un coste adicional, una vez dispuestos los datos (además, el coste de esta operación no puede realizarse sin la aportación del procesador).

61 8. Protección 8.1. Mecanismos de protección del procesador 8.2. Mecanismos de protección de memoria

62 Fundamentos de los Computadores II 61 (Sistemas Operativos) Protección (I) 8.1. Mecanismos de protección del procesador Protección basada en los niveles de ejecución. Objetivo básico: los periféricos. Por ello, todas las operaciones de E/S se hacen en modo núcleo. Núcleo Usuario Interrupción Cambiar a modo usuario

63 Fundamentos de los Computadores II 62 (Sistemas Operativos) Protección (II) 8.2. Mecanismos de protección memoria Objetivo: evitar que unos programas usen direcciones de memoria que no le han sido asignadas.. En sistemas con memoria virtual hay dos mecanismos básicos: a)Limitar el mapa de memoria accesible en nivel de usuario. La MMU genera una excepción de violación de memoria en el caso en que en nivel de usuario se intente usar una dirección no permitida. Suele ser usual dotar al procesador de un registro RIED (registro de identificación de espacio de direccionamiento), que permite que cada programa en ejecución disponga de su propio espacio virtual y no pueda acceder a los espacios de memoria de otros procesos. (Ver transparencia siguiente)

64 Fundamentos de los Computadores II 63 (Sistemas Operativos) Protección (III)

65 Fundamentos de los Computadores II 64 (Sistemas Operativos) Protección (IV) Mecanismo basado en la tabla de páginas. La tabla de páginas asociada a cada programa se selecciona mediante el RIED. La MMU comprueba además que no se sobrepase el límite de ninguna de las tablas usadas. Si se sobrepasa, excepción de violación de MP.

66 Fundamentos de los Computadores II 65 (Sistemas Operativos) Protección (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 límite superior. En caso de producirse esta situación se genera una excepción de violación de memoria. Memoria principal Registros valla Región asignada al proceso A R e g i s t r o b a s e R e g i s t r o l í m i t e

67 Fundamentos de los Computadores II 66 (Sistemas Operativos) 9. Multiprocesador y multicomputador 9.1. Multiprocesador 9.2. Multicomputador

68 Fundamentos de los Computadores II 67 (Sistemas Operativos) Multiprocesador y multicomputador (I) 9.1. Multiprocesador Multiprocesador: máquina formada por un conjunto de procesadores que comparten el acceso a una MP común. Ventaja: sencillez en el acceso a datos comunes, por parte de diversos programas Inconveniente: limitado número de procesadores que se pueden añadir, para no incurrir en la saturación del ancho de banda de la memoria común

69 Fundamentos de los Computadores II 68 (Sistemas Operativos) Procesador 1 Red de conexión E/S Procesador 2 n Memoria principal Multiprocesador y multicomputador (II)

70 Fundamentos de los Computadores II 69 (Sistemas Operativos) Multiprocesador y multicomputador (III) 9.2. Multicomputador Multicomputador: máquina compuesta de varios nodos, cada uno de ellos formado por procesador, MP y en algún caso dispositivos de E/S. Los programas en ejecución ya no pueden compartir los datos en MP. Sin embargo, no hay limitación en cuanto al número de nodos que podrían interconectarse.

71 Fundamentos de los Computadores II 70 (Sistemas Operativos) Procesador Memoria principal Red de conexión de paso de mensajes Procesador Memoria principal Memoria principal Multiprocesador y multicomputador (IV)


Descargar ppt "Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003."

Presentaciones similares


Anuncios Google