Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para.

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

III - Gestión de memoria
Administración de memoria
Capítulo 8 Memoria virtual.
Planificación de Monoprocesadores
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Algoritmos de Remplazamiento de Paginas
Introducción a los Sistemas Operativos Memoria Virtual
UNIDAD 2. ADMINISTRACION DE PROCESOS Y DEL PROCESADOR
Modelo de procesos de dos estados
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Teoría de Sistemas Operativos
Administración del Procesador
Direcciones físicas y direcciones virtuales (lógicas)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración de memoria
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Simulador didáctico de jerarquías de memoria
PAGINACIÓN Y SEGMENTACIÓN
UNIDAD 3 Conceptos de Sistemas Operativos.
Administración de Memoria Memoria Virtual
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Contenido Estructura del computador Ejecución de instrucciones
Planificación y Gestión de procesos
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Tema VII Memoria Virtual.
Tema 6. Administración de memoria
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Memoria virtual.
Gestión de Memoria.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Tema 10: Gestión de Memoria
Gestión de Memoria.
UNIDAD 3 C ONCEPTOS DE S ISTEMAS O PERATIVOS. El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Unidad 2 – Gestión de Procesos
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
INTERRUPCIONES – ABRAZO MORTAL
3.2.1 Administración de almacenamiento
Memoria Virtual Msc. Rina Arauz.
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
1. ? M.P. ¿Su gran restricción? Exigir que un Pi esté entero en M.P. para poder ejecutarse AUn Pi más grande que la M.P. no podrá ejecutarse BSi {Procesos.
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos Remplazo de Página Asignación de Marcos Hiperpaginación Ejemplos.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Arquitectura de Computadores
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Transcripción de la presentación:

Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para continuar su ejecución El espacio de direcciones lógicas puede ser mayor que el espacio de direcciones físicas Permite compartir espacios de direcciones entre procesos Permite una creación de procesos más eficiente La memoria virtual suele implementarse usando: Paginación por demanda Segmentación por demanda

Memoria Virtual Mayor que la Memoria Física 

Espacio de Direcciones Virtuales

Paginación por Demanda Trae una página a memoria sólo cuando hace falta La E/S se reduce Se requiere menos memoria La respuesta es más rápida Puede haber más procesos en memoria Se necesita una página  la página es referenciada referencia inválida  aborta no está en memoria  se trae a memoria “Intercambiador” perezoso – nunca trae una página a memoria salvo si es necesario El intercambiador que trabaja con páginas es un paginador

Bit de Validez En cada entrada de la tabla de páginas hay un bit de validez (v  en memoria, i  no en memoria o acceso ilegal) Al comienzo el bit de validez es inicializado a i en todas las entradas Ejemplo de tabla de páginas: Durante la traducción de direcciones, si el bit de validez de la entrada de la tabla de páginas es i  fallo de página v v v v i i i …. # MarcoBit de validez Tabla de páginas

Tabla de Páginas cuando hay Páginas Ausentes

Fallo de Página La primera referencia a una página producirá una excepción capturada por el SO: fallo de página 1. El SO mira en la tabla de páginas para decidir qué hacer: Referencia inválida  aborta No está en memoria  continúa 2. Obtiene un marco libre 3. Carga la página en el marco 4. Resetea las tablas 5. Establece el bit de validez a v 6. Reinicia la instrucción que causó el fallo de página

Fallo de Página Instrucciones problemáticas para el reinicio de instrucción Instrucciones de cadenas Auto incremento/decremento Soluciones Comprobar antes de ejecutar la instrucción que no va a producirse un fallo de página Almacenar los valores antiguos en registros temporales Guardar el estado del microcódigo del procesador

Pasos del Manejo de un Fallo de Páginas

Rendimiento de la Paginación por Demanda Tasa de fallo de páginas 0  p  1 si p = 0, no hay fallo de páginas si p = 1, cada referencia produce un fallo Tiempo de acceso efectivo (EAT) EAT = (1 – p) x acceso a memoria + p (sobrecarga por fallo de página + escribir página + traer página + sobrecarga de reinicio )

Ejemplo de Paginación por Demanda Tiempo de acceso a memoria = 200 ns Promedio del tiempo de servicio de un fallo de páginas = 8 ms EAT = (1 – p) x p x = p x Si uno de cada accesos causa un fallo de páginas EAT = 8,2 μs El tiempo de ejecución se reduce en un factor de 41!!

Qué Pasa Si No Hay Marco Libre? Reemplazo de páginas – encuentra una página en memoria que no se esté usando y la retira se usa un algoritmo de reemplazo objetivo – minimizar el fallo de páginas La misma página podría ser traída a memoria varias veces

Reemplazo de Páginas Previene la sobreasignación de memoria modificando la rutina de fallo de páginas para incluir el reemplazo de páginas Se usa el bit de modificado (suciedad) para reducir la sobrecarga por transferencias de páginas – sólo las páginas modificadas se escriben a disco El reemplazo de páginas completa la separación entre la memoria lógica y la memoria física – se puede proporcionar una gran cantidad de memoria virtual sobre una menor memoria física

Necesidad de Reemplazo de Páginas

Reemplazo de Páginas Básico 1. Encontrar la ubicación de la página deseada en disco 2. Encontrar un marco libre: - Si hay un marco libre, usarlo - Si no hay un marco libre, usar un algoritmo de reemplazo para escoger el marco víctima 3. Traer la página deseada al (nuevo) marco libre; actualizar las tablas de páginas y de marcos 4. Continuar con la ejecución del proceso

Reemplazo de Páginas

Algoritmos de Reemplazo de Páginas El objetivo es una tasa de fallos de página lo más baja posible Los algoritmos se evalúan ejecutándolos sobre una cadena de referencias a memoria y calculando el número de fallos de página producidos con esa cadena En todos nuestros ejemplos, la cadena de referencias será 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Fallo de Páginas Frente a Número de Marcos

Algoritmo First-In-First-Out (FIFO) Cadena de referencias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 marcos (3 páginas en memoria por proceso) 4 marcos Anomalía de Belady: más marcos  más fallos de página fallos de página fallos de páginas 4 43

Reemplazo de Páginas FIFO

Anomalía de Belady

Algoritmo Óptimo Reemplaza la página que será usada más tarde Ejemplo con 4 marcos 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 En general, no conocemos los accesos futuros a memoria Este algoritmo se usa para estudiar el rendimiento de otros fallos de página 4 5

Reemplazo de Páginas Óptimo

Algoritmo (LRU, Least Recently Used) Cadena de referencias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Implementación con contador Cada entrada de página tiene un contador; cada vez que la página es referenciada se copia la hora en el contador Cuando una página necesita ser cambiada, se miran los contadores para determinar cuál se cambia

Reemplazo de Páginas LRU

Algoritmo LRU Implementación con pila – se mantiene una pila de números de página: Cuando una página es referenciada: Se mueve a la cabeza de la pila En el reemplazo se escoge la página de la cola de la pila

Algoritmos de Aproximación al LRU Bit de referencia Con cada página se asocia un bit, inicialmente puesto a 0 Cuando se referencia una página el bit se pone a 1 Se reemplaza la página con el bit a 0 (si hay alguna) Esto no permite conocer el orden de uso Algoritmo de segunda oportunidad Necesitamos un bit de referencia También se denomina algoritmo de reloj Si la página a reemplazar (de acuerdo al orden del reloj) tiene el bit de referencia a 1: Se pone el bit a 0 Se deja la página en memoria Trata de reemplazar la siguiente página siguiendo el orden del reloj

Algoritmo de Segunda Oportunidad (de Reloj)

Algoritmos de Conteo Se necesita un contador con el número de referencias que se han hecho a cada página Algoritmo LFU: reemplaza la página con el valor más bajo en el contador Algoritmo MFU: reemplaza la página con el valor más alto en el contador Se basa en el argumento de que la página con el número más pequeño en el contador acaba de ser traída y aún no se usa

Asignación de Marcos Cada proceso necesita un número mínimo de páginas; ese número depende de la máquina Ejemplo: IBM 370 – se pueden necesitar hasta 6 páginas para una instrucción SS MOVE: La instrucción ocupa 6 bytes, podría requerir 2 páginas 2 páginas para la cadena origen 2 páginas para el destino Esquemas principales de asignación Asignación fija Asignación por prioridad

Asignación Fija Asignación equitativa – Por ejemplo, si hay 100 marcos y 5 procesos, se le da a cada proceso 20 marcos Asignación proporcional – Asigna marcos de acuerdo al tamaño del proceso

Asignación por Prioridad Usa un esquema de asignación proporcional basado en las prioridades en lugar del tamaño Si el proceso P i produce un fallo de páginas, Escoge para reemplazar uno de sus marcos Escoge para reemplazar un marco de un proceso con menor prioridad

Asignación Local y Global Reemplazo global – se escoge para reemplazar un marco de cualquier proceso; un proceso puede tomar un marco de otro Reemplazo local – se escoge para reemplazar un marco del proceso que necesita la página

Hiperpaginación Si un proceso no tiene suficientes páginas, la tasa de fallos de página es muy alta. Esto lleva a: Uso bajo de CPU El SO piensa que necesita aumentar el grado de multiprogramación Otro proceso se añade al sistema Hiperpaginación  un proceso está ocupado trayendo y retirando páginas de memoria

Hiperpaginación

Paginación por Demanda e Hiperpaginación Por qué funciona la paginación por demanda? Modelo de localidad Los procesos migran de una localidad a otra Las localidades pueden solaparse Por qué ocurre la hiperpaginación?  tamaño de la localidad > tamaño de la memoria

Patrón de Referencias a Memoria

Modelo de Conjunto de Trabajo   ventana del conjunto de trabajo  un número fijo de referencias a páginas Ejemplo: instrucciones WSS i (conjunto de trabajo del proceso P i ) = número total de páginas referenciadas en la ventana más reciente  (cambia con el tiempo) Si  es demasiado pequeño no abarcará toda la localidad Si  es demasiado grande abarcará varias localidades Si  =   abarcará el programa entero D =  WSS i  total de marcos requeridos Si D > m  Hiperpaginación Política si D > m, se suspende un proceso

Modelo de Conjunto de Trabajo

Siguiendo la Pista al Conjunto de Trabajo Se aproxima con un temporizador y un bit de referencia Ejemplo:  = El temporizador interrumpe cada 5000 unidades de tiempo Se mantienen en memoria 2 bits por página Cuando el temporizador interrumpe copia el bit de referencia y lo pone a 0 Si uno de los bits en memoria es 1  la página está en el conjunto de trabajo Mejora: 10 bits e interrumpir cada 1000 unidades de tiempo

Frecuencia de Fallos de Página Es otra forma de evitar la hiperpaginación Se busca conseguir una tasa de fallos de página aceptable Si la tasa actual es demasiado baja, el proceso pierde un marco Si la tasa actual es demasiado alta, el proceso gana un marco

Prepaginación Se usa para reducir el gran número de fallos de página que ocurre al comienzo de un proceso Consiste en traer a memoria todas o algunas de las páginas que necesitará un proceso antes de que las referencie La páginas prepaginadas pueden no ser utilizadas, hay gasto de memoria y E/S Asumimos que s páginas son prepaginadas y una fracción α de esas páginas son usadas Es el coste de los s * α fallos de página ahorrados > o < que el coste de prepaginar s * (1- α) páginas innecesarias? Si α es cercano a cero  la prepaginación no interesa

Tamaño de las Páginas Para la selección del tamaño de página hay que tener en cuenta: La fragmentación interna El tamaño de la tabla de páginas La sobrecarga de E/S La localidad

Estructura del Programa int data[128][128]; Cada fila se almacena en una página Programa 1 for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i][j] = 0; 128 x 128 = 16,384 fallos de página Programa 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i][j] = 0; 128 fallos de página

Interbloqueo de E/S Interbloqueo de E/S – A veces las páginas deben bloquearse en memoria Las páginas que se están usando para copiar un fichero de un dispositivo deben bloquearse para que no sean escogidas por un algoritmo de reemplazo de páginas

Windows XP Usa paginación por demanda con agrupamiento (clustering). El clustering trae a memoria páginas adyacentes a la página que falló A los procesos se les asigna un conjunto de trabajo mínimo y máximo El conjunto de trabajo mínimo es el mínimo número de páginas del proceso que van a estar con seguridad en memoria A un proceso se le pueden asignar páginas hasta que llegue a su conjunto de trabajo máximo Cuando la cantidad de memoria libre en el sistema cae por debajo de un umbral, se hace un recorte automático del conjunto de trabajo para restaurar la cantidad de memoria libre El recorte del conjunto de trabajo retira páginas de los procesos que tienen un número de páginas mayor que el mínimo

Solaris Mantiene una lista de marcos libres para asignar a los procesos que fallan Lotsfree – umbral (cantidad de memoria libre) para comenzar la paginación Desfree – umbral para incrementar la paginación Minfree – umbral para comenzar el intercambio La paginación la realiza el proceso pageout Pageout escanea las páginas usando una variante del algoritmo de reloj (algoritmo de reloj modificado) Scanrate es la tasa a la que las páginas son escaneadas. Este valor va entre slowscan y fastscan Pageout se llama más frecuentemente dependiendo de la cantidad de memoria libre

Escaneador de Páginas de Solaris 2