La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 2. Introducción a los Sistemas Operativos

Presentaciones similares


Presentación del tema: "Tema 2. Introducción a los Sistemas Operativos"— Transcripción de la presentación:

1 Tema 2. Introducción a los Sistemas Operativos
06/10/10 06/10/10 Contenidos Objetivos 2.1 Componentes de un Sistema Operativo (SO) multiprogramado. 2.1.1 Sistemas multiprogramados y de tiempo compartido. 2.1.2 Concepto de proceso. 2.1.3 Modelo de cinco estados de los procesos. 2.2 Descripción y control de procesos. 2.2.1 Bloque de control de proceso (PCB). 2.2.2 Control de procesos. 2.3 Hebras (hilos) 2.4 Gestión básica de memoria. 2.4.1 Paginación 2.4.2 Segmentación Conocer los elementos necesarios para implementar la multiprogramación en un sistema operativo (SO). Conocer el concepto de proceso y el modelo de cinco estados de los procesos. Conocer el uso que realiza el SO del apoyo hardware e integrarlo en el modelo de cinco estados. Conocer el concepto de hebra (hilo), su modelo de cinco estados y su utilidad. Conocer la gestión básica de memoria que realiza el SO. Bibliografía básica [Stal05] W. Stallings, Sistemas Operativos, Aspectos Internos y Principios de Diseño (5ª Edición). Pearson Education, 2005 [Carr07] J. Carretero, F. García, P. de Miguel, F. Pérez, Sistemas Operativos (2ª Edición), McGraw-Hill, 2007 1 3-Nov-2010

2 Gestión del procesador
Técnicas de gestión del procesador: Monoprogramación Multiprogramación

3 Monoprogramación Corresponde con los primeros SO.
o En ellos se ubicaba un programa en memoria principal, además del sistema operativo, y hasta que no finaliza ese programa no empieza a ejecutarse otro. o Las funciones que realiza un SO monoprogramación son: • Siempre que un programa realiza una operación de E/S hace una llamada al sistema para que éste genere la instrucciones máquina concretas de la E/S. • Cuando finaliza una operación de E/S, el periférico correspondiente genera una interrupción que provoca la llamada al SO y continúa con la ejecución del programa. • Cuando acaba la ejecución del programa, el ordenador queda listo para aceptar uno nuevo.

4 Multiprogramación o El SO multiprogramación carga en memoria principal varios programas y el distribuidor asigna el procesador a los procesos preparados. o Se aprovechan: o Los tiempos muertos del procesador o Los tiempos de acceso a periféricos o El espacio de memoria principal no ocupado por procesos o por el SO. o La ejecución se realiza de forma solapada en el tiempo (concurrentemente) de modo que parece que los procesos se ejecutan simultáneamente. o En un intervalo de tiempo determinado se ejecutan alternativamente a trozos varios procesos ubicados en la memoria principal.

5 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 2.1.1 Concepto de multiprogramación [Stall05] (pp. 58—67) El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. Monoprogramación o monoejecución. Sistema de explotación en el que sólo se ejecuta un programa a la vez y no se ejecuta otro hasta que se termine con el anterior. Este tipo de ejecución prácticamente no existe más, reemplazado por la multiprogramación. 5

6 2.1 Componentes de un SO multiprogramado
2.1.1 Concepto de multiprogramación (Ejemplo) Trabajo 1 Trabajo 2 Trabajo 3 Tipo de trabajo Computación pesada Gran cantidad de E/S Duración 5 minutos 15 minutos 10 minutos Memoria requerida 50 MB 100 MB 75 MB ¿Necesita disco? NO SI ¿Necesita terminal? ¿Necesita impresora? Trabajo1 utiliza mucho la CPU, Trabajo2 y Trabajo3 utilizan mucho los periféricos de E/S. 6

7 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 Ejemplo de multiprogramación El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 7

8 2.1 Componentes de un SO multiprogramado
06/10/10 Ejemplo de multiprogramación Monoprogramación Multiprogramación Uso del procesador 20% 40% Uso de memoria 33% 67% Uso de disco Uso de impresora Tiempo transcurrido 30 minutos 15 minutos Productividad 6 trabajos/hora 12 trabajos/hora Tiempo de respuesta medio 18 minutos 10 minutos 8

9 Un programa en ejecución.
2.1 Componentes de un SO multiprogramado 06/10/10 06/10/10 2.1.2 Concepto de proceso [Stal05] (pp ] Un programa en ejecución. Una instancia de un programa ejecutándose en un ordenador La entidad que se puede asignar o ejecutar en un procesador. Una unidad de actividad caracterizada por un solo flujo de ejecución, un estado actual y un conjunto de recursos del sistema asociados. Un proceso está formado por: Un programa ejecutable. Datos que necesita el SO para ejecutar el programa. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 9

10 Bloque de Control de Proceso (PCB, Process Control Block)
[Stall05] (pp ) El Bloque de control del proceso PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el PCB correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso. Cuando el proceso termina, su PCB es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él.

11 Identificador de proceso, (PID, del inglés Process IDentificator)
2.1 Componentes de un SO multiprogramado 06/10/10 06/10/10 El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos Identificador Estado Prioridad Contador de programa Punteros de memoria Datos de contexto Información de estado de E/S Información de auditoría La información almacenada en un PCB incluye típicamente algunos o todos los campos siguientes: Identificador de proceso, (PID, del inglés Process IDentificator) Contexto de ejecución: Registros del procesador Memoria donde reside el programa Información relacionada con recursos del sistema Estado. En que situación se encuentra el proceso en cada momento (modelo de estados) Más información El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 11

12 2.1 Componentes de un SO multiprogramado
Implementación de Procesos Típica [Stal05] (Fig. 2.8) Esta implementación permite ver al proceso como una estructura de datos. El estado completo del proceso en un instante dado se almacena en su contexto. Esta estructura permite el desarrollo de técnicas potentes que aseguren la coordinación y la cooperación entre los procesos. 12

13 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 Concepto de traza de ejecución Una traza de ejecución es un listado de la secuencia de intrucciones de programa que realiza el procesador para un proceso Desde el punto de vista del procesador se entremezclan las trazas de ejecución de los procesos y las trazas del código del sistema operativo ¿Como consecuencia de qué situaciones se entremezclan las trazas de los procesos y las trazas del SO? Ejemplo El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 13

14 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 Concepto de traza de ejecución El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 14

15 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 Concepto de traza de ejecución El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 15

16 Son solicitudes al SO de petición de servicio.
06/10/10 Llamadas al Sistema Es la forma en la que se comunican los programas de usuario con el SO en tiempo de ejecución. Son solicitudes al SO de petición de servicio. Ejemplos de llamadas al sistema: Solicitudes de E/S. Gestión de procesos. Gestión de memoria. Se implementan a través de una trampa o “interrupción software”. ¿Cómo puede un programa de aplicación ejecutándose en modo usuario utilizar rutinas que están en modo supervisor? El mecanismo que se nos proporciona son las llamadas al sistema, las cuales nos van a permitir realizar una transferencia de modo (usuario a kernel) Generalmente están disponibles como instrucciones en lenguaje ensamblador. Esto supone que el usuario debe introducir la información que necesita cada servicio en los lugares adecuados (registros, pila,...) Algunos sistemas permiten emitir llamadas al sistema desde lenguajes de alto nivel, en cuyo caso se tendrá una biblioteca de funciones (que se semejan a las funciones predefinidas) que contendrá la traducción a ensamblador de la llamada al sistema. Una interrupción software ocupa una entrada en el vector de interrupciones. 16

17 Biblioteca Programa de usuario main() . . . open(fd, …) open() ...
06/10/10 Llamadas al Sistema Biblioteca Programa de usuario main() . . . open(fd, …) open() ... int 0x80 . . . 2 1 Modo usuario 7 Trampa Sistema Operativo Modo Kernel 6 3 4 sys_open() { ... } system_call: ... sys_open() ret_from_sys_call(): iret 5 El mecanismo para iniciar una llamada al sistema depende del SO: Instrucción en ensamblador (int 12 (abrir un archivo) o trap 12) Llamada a una función (biblioteca) Existen llamadas al sistema para: - control de procesos - manipulación de archivos y disco - mantenimiento de la información - comunicaciones, etc. Rutina de servicio de la llamada Manejador de llamadas al sistema 17

18 Para ello hace uso de cinco estados: Ejecutándose
2.1 Componentes de un SO multiprogramado 06/10/10 06/10/10 2.1.3 Modelo de cinco estados de los procesos El modelo de cinco estados trata de representar las actividades que el SO lleva a cabo sobre los procesos: Creación Terminación Multiprogramación Para ello hace uso de cinco estados: Ejecutándose Preparado (listo para ejecutarse) Bloqueado Nuevo Finalizado El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 18

19 Finalizado Nuevo Preparado Ejecutándose Bloqueado Desasignación de CPU
2.1 Componentes de un SO multiprogramado 06/10/10 06/10/10 2.1.3 Modelo de cinco estados de los procesos Finalizado Nuevo Preparado Ejecutándose Bloqueado Desasignación de CPU Espera por E/S o suceso Fin de E/S o suceso Admitido Planificación El proceso terminó El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 19

20 2.1 Componentes de un SO multiprogramado
06/10/10 06/10/10 Transiciones entre estados Nuevo → Preparado. El PCB está creado y el programa está disponible en memoria. Ejecutándose → Finalizado. El proceso finaliza normalmente o es abortado por el SO a causa de un error no recuperable. Preparado→ Ejecutándose. El SO (planificador CPU) selecciona un proceso para que se ejecute en el procesador. Ejecutándose → Bloqueado. El proceso solicita algo al SO por lo que debe esperar. Ejecutándose → Preparado. Un proceso ha alcanzado el máximo tiempo de ejecución ininterrumpida. Bloqueado → Preparado. Se produce el evento por el cual el SO bloqueó al proceso. Preparado (o Bloqueado) → Finalizado. Terminación de un proceso por parte de otro. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 20

21 Ejercicio Dado un proceso que está en modo “ejecutándose” y pretende acceder a una dirección de memoria fuera del área asignada, lo cual sería un error en la ejecución, ¿a qué modo pasaría dicho proceso? Razone la respuesta. (a) Bloqueado. (b) No cambia de modo. (c) Finalizado. (d) Preparado. Sea un proceso que cambia de Ejecutándose a Bloqueado, ¿puede este cambio provocar un cambio de estado en otros procesos? Si es así, ¿en qué casos? e) Idem para el cambio de estado Bloqueado a Ejecutable.

22 Identificadores: Del proceso, del padre del proceso, del usuario, …
2.2 Descripción y control de procesos 06/10/10 06/10/10 Descripción de procesos: PCB Identificadores: Del proceso, del padre del proceso, del usuario, … Contexto de registros del procesador: PC, PSW, SP, … Información para control del proceso: Estado del proceso. (modelo de estados) Parámetros de planificación Evento que mantiene al proceso bloqueado Cómo acceder a la memoria que aloja el programa asociado al proceso Recursos utilizados por el proceso El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 22

23 Asignar identificador único al proceso Asignar un nuevo PCB
2.2 Descripción y control de procesos 06/10/10 06/10/10 Creación de un proceso: Inicialización de PCB Asignar identificador único al proceso Asignar un nuevo PCB Asignar memoria para el programa asociado Inicializar PCB: PC: Dirección inicial de comienzo del programa SP: Dirección de la pila de sistema Memoria donde reside el programa El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. El resto de campos se inicializan a valores por omisión 23

24 Un subconjunto de los registros del procesador
2.2 Descripción y control de procesos 06/10/10 06/10/10 Control de procesos: modos de ejecución del procesador Modo usuario. El programa (de usuario) que se ejecuta en este modo sólo se tiene acceso a: Un subconjunto de los registros del procesador Un subconjunto del repertorio de instrucciones máquina Un área de la memoria Modo núcleo (kernel). El programa (SO) que se ejecuta en este modo tiene acceso a todos los recursos de la máquina El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 24

25 2.2 Descripción y control de procesos
06/10/10 06/10/10 ¿Cómo utiliza el SO el modo de ejecución? El modo de ejecución (incluido en PSW) cambia a modo kernel, automáticamente por hardware, cuando se produce: Una interrupción Una excepción Una llamada al sistema Seguidamente se ejecuta la rutina del SO correspondiente al evento producido Finalmente, cuando termina la rutina, el hardware restaura automáticamente el modo de ejecución a modo usuario El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 25

26 Ejercicio Diga cuales de las siguientes operaciones pueden realizarse únicamente en modo supervisor, o modo kernel: a) Consultar la hora del sistema. b) Cambiar la fecha del sistema. c) Generar una interrupción software. d) Generar una interrupción. e) Modificar la dirección de un vector de la tabla de vectores de interrupción. f) Deshabilitar las interrupciones.

27 2.2 Descripción y control de procesos
06/10/10 06/10/10 Control de procesos: cambio de contexto (cambio de proceso) Un proceso en estado “Ejecutándose” cambia a otro estado y un proceso en estado “Preparado” pasa a estado “Ejecutándose” ¿Cuándo puede realizarse? Cuando el SO pueda ejecutarse y decida llevarlo a cabo. Luego solamente como resultado de: Una interrupción Una excepción Una llamada al sistema El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 27

28 2.2 Descripción y control de procesos
06/10/10 06/10/10 Pasos en un cambio de contexto Salvar los registros del procesador en el PCB del proceso que actualmente está en estado “Ejecutándose” Actualizar el campo estado del proceso al nuevo estado al que pasa e insertar el PCB en la cola correspondiente Seleccionar un nuevo proceso del conjunto de los que se encuentran en estado “Preparado” (Scheduler o Planificador de CPU) Actualizar el estado del proceso seleccionado a “Ejecutándose” y sacarlo de la cola de listos Cargar los registros del procesador con la información de los registros almacenada en el PCB del proceso seleccionado El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 28

29 2.2 Descripción y control de procesos
06/10/10 06/10/10 Control de procesos: cambio de modo Se ejecuta una rutina del SO en el contexto del proceso que se encuentra en estado “Ejecutándose” ¿Cuándo puede realizarse? Siempre que el SO pueda ejecutarse, luego solamente como resultado de: Una interrupción Una excepción Una llamada al sistema El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 29

30 2.2 Descripción y control de procesos
06/10/10 06/10/10 Pasos en un cambio de modo El hardware automáticamente salva como mínimo el PC y PSW y cambia a modo kernel. Determinar automáticamente la rutina del SO que debe ejecutarse y cargar el PC con su dirección de comienzo. Ejecutar la rutina. Posiblemente la rutina comience salvando el resto de registros del procesador y termine restaurando en el procesador la información de registros previamente salvada. Volver de la rutina del SO. El hardware automáticamente restaura en el procesador la información del PC y PSW previamente salvada. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 30

31 2.3 Hebras (hilos) 06/10/10 06/10/10 2.3 Concepto de Hebra El concepto de proceso (tarea) tiene dos características diferenciadas que permiten al SO: Controlar la asignación de los recursos necesarios para la ejecución de programas. La ejecución del programa asociado al proceso de forma intercalada con otros programas. El concepto de proceso (tarea) y hebras asociadas se basa en separar estas dos características: La tarea se encarga de soportar todos los recursos necesarios (incluida la memoria). Cada una de las hebras permite la ejecución del programa de forma “independiente” del resto de hebras. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 31

32 2.3 Hebras (hilos) Concepto de Hebra
06/10/10 06/10/10 Concepto de Hebra El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 32

33 Preparado (listo para ejecutarse) Bloqueado Nuevo Finalizado
2.3 Hebras (hilos) 06/10/10 06/10/10 Modelo de cinco estados para hebras Las hebras debido a su característica de ejecución de programas presentan cinco estados análogos al modelo de estados para procesos: Ejecutándose Preparado (listo para ejecutarse) Bloqueado Nuevo Finalizado Finalizado Nuevo Preparado Ejecutándose Bloqueado Desasignación de CPU Espera por E/S o suceso Fin de E/S o suceso Admitido Planificación El proceso terminó El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 33

34 2.3 Hebras (hilos) Ventajas de las hebras
06/10/10 06/10/10 Ventajas de las hebras El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 34

35 Menor tiempo de finalización de una hebra que de un proceso.
2.3 Hebras (hilos) 06/10/10 06/10/10 Ventajas de las hebras Menor tiempo de creación de una hebra en un proceso ya creado que la creación de un nuevo proceso. Menor tiempo de finalización de una hebra que de un proceso. Menor tiempo de cambio de contexto (hebra) entre hebras pertenecientes al mismo proceso. Facilitan la comunicación entre hebras pertenecientes al mismo proceso. Permiten aprovechar las técnicas de programación concurrente y el multiprocesamiento simétrico. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 35

36 2.4 Gestión básica de memoria
06/10/10 06/10/10 2.4 Carga absoluta y reubicación [Stall05] (pp ) Carga absoluta. Asignar direcciones físicas (direcciones de memoria principal) al programa en tiempo de compilación. El programa no es reubicable. La carga absoluta necesita al módulo de carga ocupe siempre la misma posición en la memoria principal. Reubicación. Capacidad de cargar y ejecutar un programa en un lugar arbitrario de la memoria. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 36

37 2.4 Gestión básica de memoria
06/10/10 06/10/10 Carga absoluta Reubicación Programa Fuente Compilador (y Encuadernador) S.O. Memoria Principal X N Programa Ejecutable direcciones absolutas Cargador Programa Fuente Compilador (y Encuadernador) S.O. Memoria Principal Y Y+M Programa Ejecutable M direcciones lógicas o relativas Cargador O Hardware El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 37

38 con direcciones lógicas
2.4 Gestión básica de memoria 06/10/10 06/10/10 Reubicación estática El compilador genera direcciones lógicas (relativas) de 0 a M. La decisión de dónde ubicar el programa en memoria principal se realiza en tiempo de carga. El cargador añade la dirección base de carga a todas las referencias relativas a memoria del programa. Los programas no pueden ser movidos una vez iniciados MOVE A, 100 M Programa ejecutable con direcciones lógicas Memoria Principal 1000 M MOVE A, 1100 El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 38

39 + El compilador genera direcciones lógicas (relativas) de 0 a M.
2.4 Gestión básica de memoria 06/10/10 06/10/10 Reubicación dinámica El compilador genera direcciones lógicas (relativas) de 0 a M. La traducción de direcciones lógicas a físicas se realiza en tiempo de ejecución luego el programa está cargado con referencias relativas. Los programas pueden moverse en tiempo de ejecución Memoria Principal b b + M MOVE A, 100 CPU Dirección Lógica + Física Hardware R.Base El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. Requiere apoyo hardware. 39

40 2.4 Gestión básica de memoria
06/10/10 06/10/10 Espacios para las direcciones de memoria Espacio de direcciones lógico. Conjunto de direcciones lógicas (o relativas) que utiliza un programa ejecutable. Espacio de direcciones físico. Conjunto de direcciones físicas (memoria principal) correspondientes a las direcciones lógicas del programa en un instante dado. Mapa de memoria de un ordenador. Todo el espacio de memoria direccionable por el ordenador. Normalmente depende del tamaño del bus de direcciones. Mapa de memoria de un proceso. Estructura de datos (que reside en memoria) que indica el tamaño total del espacio de direcciones lógico y la correspondencia entre las direcciones lógicas y las físicas. El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 40

41 2.4 Gestión básica de memoria
06/10/10 06/10/10 Ejemplo de mapa de memoria de un proceso El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 41

42 2.4 Gestión básica de memoria
06/10/10 06/10/10 Problema de la fragmentación de memoria SO 148 k 896 k 576 k Proceso 1 320 k 352 k Proceso 2 224 k 128 k 268 k Proceso 3 84 k 64 k Proceso 4 96 k 230 k Proceso 5 90 k El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. 42

43 2.4 Gestión básica de memoria
06/10/10 06/10/10 Solución a la fragmentación de memoria [Stall05] (pp ) Trocear el espacio lógico en unidades más pequeñas: páginas (elementos de longitud fija), o segmentos (elementos de longitud variable). Los trozos no tienen por qué ubicarse consecutivamente en el espacio físico. Los esquemas de organización del espacio lógico de direcciones y de traducción de una dirección del espacio lógico al espacio físico que comentaremos son: Paginación Segmentación El problema que solventa la multiprogramación surge por la diferencia de velocidad entre los dispositivos de E/S y la CPU. 43

44 El espacio de direcciones físicas de un proceso puede ser no contiguo
2.4 Gestión básica de memoria 06/10/10 2.4.1 Paginación El espacio de direcciones físicas de un proceso puede ser no contiguo La memoria física se divide en bloques de tamaño fijo, denominados marcos de página. El tamaño es potencia de dos, de 0.5 a 8 Kb El espacio lógico de un proceso se divide conceptualmente en bloques del mismo tamaño, denominados páginas Los marcos de página contendrán páginas de los procesos - El tamaño del marco viene dado por el hardware. 44 2 2

45 2.4 Gestión básica de memoria
06/10/10 2.4.1 Paginación Las direcciones lógicas, que son las que genera la CPU se dividen en número de página (p) y desplazamiento dentro de la página (d) Las direcciones físicas se dividen en número de marco (m, dirección base del marco donde está almacenada la página) y desplazamiento (d) p d m d desplazamiento: identificación única de cada byte en una página o marco de página 45

46 2.4 Gestión básica de memoria
06/10/10 2.4.1 Paginación Cuando la CPU genere una dirección lógica será necesario traducirla a la dirección física correspondiente, la tabla de páginas mantiene información necesaria para realizar dicha traducción. Existe una tabla de páginas por proceso Tabla de marcos de página, usada por el S.O. y contiene información sobre cada marco de página La TP representa el contenido de un MV particular. En un registro de la CPU se guarda la dirección de comienzo de la TP del proceso actual. Su valor forma parte del PCB. 46

47 Contenido de la tabla de páginas
2.4 Gestión básica de memoria 06/10/10 Contenido de la tabla de páginas Una entrada por cada página del proceso: Número de marco (dirección base del marco) en el que está almacenada la página si está en MP Modo de acceso autorizado a la página (bits de protección) Cuando se ejecuta un proceso debe estar en memoria. El bit de presencia es 1 si la página es válida y está cargada en MP y es 0 si la página no está en MP o es una página inválida para el proceso, es decir, no pertenece a su espacio de direcciones. Protección: leer, modificar, escribir La TP está ordenada o indexada por número de página del espacio de direcciones virtual del proceso. 47 2 2

48 Esquema de traducción 2.4 Gestión básica de memoria m Dirección real
06/10/10 Esquema de traducción DESPLAZAMIENTO N. pagina Dirección virtual m rw N. de marco protección TABLA DE PAGINAS RBTP m DESPLAZAMIENTO Dirección real RBTP- registro base de la tabla de paginas (PTBR): Información de memoria que se almacena en el PCB y se carga en un registro cuando el proceso está activo. Antes de acceder mediante en N. Página a la tabla de páginas se comprueba que el valor está dentro de los límites de la tabla (registro de longitud de la tabla de páginas) Existe una tabla de ubicación en disco por proceso. 48 7

49 Implementación de la Tabla de Páginas
2.4 Gestión básica de memoria 06/10/10 Implementación de la Tabla de Páginas La tabla de páginas se mantiene en memoria principal El registro base de la tabla de páginas (RBTP) apunta a la tabla de páginas (suele almacenarse en el PCB del proceso) En este esquema cada acceso a una instrucción o dato requiere dos accesos a memoria, uno a la tabla de páginas y otro a memoria. Un problema de la paginación es que se duplica el tiempo de acceso a memoria y por tanto, se reduce a la mitad el rendimiento del sistema 49 6

50 Búfer de Traducción Adelantada (TLB)
2.4 Gestión básica de memoria 06/10/10 Búfer de Traducción Adelantada (TLB) El problema de los dos accesos a memoria se resuelve con una caché hardware de consulta rápida denominada búfer de traducción adelantada o TLB (Translation Look-aside Buffer) El TLB se implementa como un conjunto de registros asociativos que permiten una búsqueda en paralelo De esta forma, para traducir una dirección: Si existe ya en el registro asociativo, obtenemos el marco Si no, la buscamos en la tabla de páginas y se actualiza el TLB con esta nueva entrada - Cada registro asociativo contiene: Clave, valor - El número de registros es variable de 8 a solo puede contener algunas entradas de la T.P. Si al actualizar el TLB, éste está lleno el S.O. decide que registro se sustituye por le nuevo. La idea es mantener en la TLB las entradas de la TP usadas recientemente más junto con el número de página virtual (ya que no están todas las páginas de la TP) Cada cambio de contexto supone un desalojo del TLB actual, para cargar el TLB del nuevo proceso. 50 7

51 Esquema de traducción con TLB
2.4 Gestión básica de memoria 06/10/10 Esquema de traducción con TLB CPU Memoria Física Tabla de páginas m p d TLB Nº página Nº marco Acierto Fallo Como la consulta de los registros asociativos se hace en paralelo, ganamos en tiempo. Al realizar un cambio de contexto, se limpia el contenido de la TLB (basta poner el bit p = 0 en todas las entradas de la TLB). El % de aciertos suele ser algo para valores que van desde 16 a 512 registros asociativos (depende del número de registros asociativos). 51 8

52 Ejercicio Sitúese en un sistema paginado, en donde la memoria real tiene un tamaño de 16 Mbytes, una dirección lógica ocupa 32 bits, de los cuales los 22 de la izquierda constituyen el número de página, y los 10 de la derecha el desplazamiento dentro de la página. Según lo anterior, a) ¿Qué tamaño tiene cada página? b) ¿En cuántos marcos de página se divide la memoria física? c) ¿Qué tamaño deberá tener el campo Número de Marco de la Tabla de Páginas?

53 Ejercicio Suponga que la tabla de páginas para el proceso actual se parece a la de la figura. Todos los números son decimales, la numeración comienza en todos los casos desde cero, y todas las direcciones de memoria son direcciones en bytes. El tamaño de página es de 1024 bytes. ¿Qué direcciones físicas corresponderán con cada una de las siguientes direcciones lógicas del proceso? a) b) 2121 c) 5400

54 Ejercicio Suponga que un proceso emite una dirección lógica igual a 2453 y que se utiliza la técnica de paginación, con páginas de 1024 palabras Indique el par de valores (número de página, desplazamiento) que corresponde a dicha dirección. ¿Es posible que dicha dirección lógica se traduzca en la dirección física 9322? Razónelo.

55 S1 S1 S2 S4 S3 S3 S4 S1 Espacio de usuario Memoria física
2.4 Gestión básica de memoria 06/10/10 2.4.2 Segmentación Esquema de organización de memoria que soporta mejor la visión de memoria del usuario: un programa es una colección de unidades lógicas -segmentos-, p. ej. procedimientos, funciones, pila, tabla de símbolos, matrices, etc. S1 S1 S2 S4 S3 S3 La segmentación es un esquema de gestión de memoria que apoya la visión que tiene el usuario de la memoria. A diferencia de la paginación la segmentación no es transparente al usuario, la división del programa en segmentos ha de realizarla el programador y en su defecto el compilador al generar código objeto. Características de los segmentos: Tamaño variable Definidos por el usuario Formados en tiempo de traducción Individualmente reubicables (comienzan en la dirección 0), cada segmento es un especio de direcciones independiente. Se realiza una asignación dinámica de memoria principal usando cualquiera de los algoritmos vistos para particiones variables: primer, mejor y peor ajuste. S4 S1 Espacio de usuario Memoria física 55

56 Una dirección lógica es una tupla:
2.4 Gestión básica de memoria 06/10/10 Tabla de Segmentos Una dirección lógica es una tupla: <número_de_segmento, desplazamiento> La Tabla de Segmentos aplica direcciones bidimensionales definidas por el usuario en direcciones físicas de una dimensión. Cada entrada de la tabla tiene los siguientes elementos (aparte de presencia, modificación y protección): base - dirección física donde reside el inicio del segmento en memoria. tamaño - longitud del segmento. 56

57 Implementación de la Tabla de Segmentos
2.4 Gestión básica de memoria 06/10/10 Implementación de la Tabla de Segmentos La tabla de segmentos se mantiene en memoria principal. El Registro Base de la Tabla de Segmentos (RBTS) apunta a la tabla de segmentos (suele almacenarse en el PCB del proceso) El Registro Longitud de la Tabla de Segmentos (STLR) indica el número de segmentos del proceso; el nº de segmento s, generado en una dirección lógica, es legal si s < STLR (suele almacenarse en el PCB del proceso) 57 6

58 d > t 2.4 Gestión básica de memoria Esquema de traducción si S’ + d
06/10/10 Esquema de traducción d N. Segmento Dirección virtual si no d > t Excepción acceso indebido RBTS S’ t D. base tamaño protección. TABLA DE SEGMENTOS rw si no ¿Acceso autorizado? Excepción violación de privilegios d - desplazamiento RBTS- registro base de la tabla de segmentos (STBR) Información de memoria que se almacena en el PCB Se carga en un registro cuando el proceso está activo. Antes de acceder mediante en N. Segmento a la tabla de segmentos se comprueba que el valor está dentro de los límites de la tabla (registro de longitud de la tabla de segmentos) S’ + d Dirección real 58 7

59 Ejercicio Considere la siguiente tabla de segmentos:
¿Qué direcciones físicas corresponden a las direcciones lógicas (nº_segmento, desplazamiento) siguientes? Si no puede traducir alguna dirección lógica a física, explique el por qué. a) 0, 430 b) 1, 10 c) 3, 400 4, 112 2, 150


Descargar ppt "Tema 2. Introducción a los Sistemas Operativos"

Presentaciones similares


Anuncios Google