Memoria Virtual Capitulo 8.

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

III - Gestión de memoria
Administración de Memoria Virtual
Capítulo 8 Memoria virtual.
Introducción a los Sistemas Operativos Memoria Virtual
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Paginación-Segmentación Fundamentos Translación de Direcciones Tabla de páginas Segmentación Emely Arráiz Ene-Mar 08.
Tema 10: Gestión de Memoria
Administración de memoria
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
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 no contigua
Tema VII Memoria Virtual.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
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.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Arquitectura de Computadores I
Memoria Virtual Msc. Rina Arauz.
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.
Memoria virtual. 2/71 Implementación de la Tabla de Páginas La Tabla de Páginas se mantiene en Memoria Principal. El Page-Table Base Register (PTBR) apunta.
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.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
Universidad Central de Venezuela Memoria Virtual.
Memoria, parte 3 Algoritmos de reemplazo de páginas, cuestiones de diseño, segmentación.
Tema II Unidad de memoria. 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5.
ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS. Idea Cuando ocurre una falla de página, el sistema operativo tiene que escoger la página que sacará de la memoria.
Paginamiento / Paging Sistemas Operativos 16 de Septiembre de 2011.
ALGORITMOS DE PLANIFICACIÓN ADRIÁN MINGA BRYAN PIEDRA JEREMY CHAMBA.
Administración de Memoria
Descripcion y control de procesos
Introducción a los Sistemas Operativos
Pipelining Peligros de control.
“Administración de memoria”
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Planificación de uso del procesador
Otros temas sobre cachés
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Tema VII UNED Manuel Fernández Barcell Memoria Virtual
Memoria virtual.
ORGANIZACIÓN Y ADMINISTRACIÓN DE LA MEMORIA VIRTUAL
Memoria virtual.
PROCESOS COMENZAR.
DISPOSITIVOS DE E/S IU Colegio Mayor del Cauca Sistemas operativos Popayán, mayo de 2015.
Algoritmos de reemplazo
3.4 Administración de memoria Virtual Arteaga Amate Juan Carlos Gómez Cruz Alejandro Leyva Portilla José Ángel.
P P AGINACION FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS.
SISTEMAS OPERATIVOS MEMORIA VIRTUAL.
ALGORITMOS DE REMPLAZO DE PAGINA PAULA ROMO RODRIGO ABREGO RANDOL FELIX.
Otros temas sobre cachés
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
Pipelining Peligros de control.
Procesos Lic. Gonzalo Pastor.
Estructura de Sistemas Operativos
ESTRUCTURA DE SISTEMAS OPERATIVOS MOSQUERA HERRERA CLAUDIA ANGELICA ANDROID WINDOWS APPLE LINUX.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

Memoria Virtual Capitulo 8

Estructuras de Hardware y de Control Las referencias a memoria son dinamicamente convertidas en direcciones fisicas en tiempo de ejecucion Un proceso puede ser swappeado de memoria y volver a traerlo hacia regiones diferentes a las originales Un proceso puede dividirse en partes quienes no deberan ocuopar necesariamente, paginas contiguas de memoria No es necesario que todas las paginas de un proceso deban estar presentes en memoria durante la ejecucion del proceso

Ejecucion de un Programa El S.O. Trae a memoria una serie de partes del programa El set residente – es la porcion del proceso que se mantiene en memoria Se genera una interrupcion cuando se requiere tratar una direccion que aun n reside en memoria El S.O. Pone al proceso en estado de bloqueado

Ejecucion de un Programa La porcion del proceso que contiene la direccion solicitada, es traida a memoria El S.O. Emite un requerimiento de E/S de entrada Otro proceso es despachado para ejecutarse, mientras la operacion de E/S al disco se desarrolla Se genera una interrupcion cuando la operacion de E/S se completa lo que causa al S.O. A ubicar al determinado proceso en estado de Ready

Ventajas de la interrupcion del proceso Un mayor numero de procesos pueden mantenerse en memoria Solo se cargan algunos tramos de cada proceso Con tantos procesos en memoria es muy probable encontrar a un proceso en estado ready, en cualquier momento Un proceso puede ser de una longitud mauyor a la capacidad de la memoria principal

Tipos de Memoria Memoria real Memoria virtual Memoria principal Memoria en disco Facilita una efectiva multiprogramacion y releva al usuario de manejar las dificultosas restricciones de la memoria principal

Thrashing Swapear a disco una parte de un proceso justo antes de que dicha parte sea requerida El procesador gasta mucho de su tiempo en swapear porciones de proceso mas que en procesar las instrucciones de dichas partes

Principio de Localizacion Las referencias a instrucciones y datos tienden a regionalizarse, pertenecer a vecinas direcciones Solo un pequeño numero de procesos van a ser necesitados en un breve periodo de tiempo Es posible hacer inteligentes conjeturas sobre las partes de procesos pueden ser requeridas en el futuro Esto sugiere que la memoria virtual trabaje eficientemente

Soportes necesarios para Memoria Virtual El hardware debe poder tratar paginacion y segmentacion El S.O. debe poder manejar los movimientos de paginas y/o segmentos entre las memorias secundaria y principal

Paginación Cada proceso tiene una tabla de paginas propia Cada una de sus entradas contiene el numero de pagina correspondiente a cada frame de memoria principal Con un bit se indica si la pagina esta o no presente en la memoria principal

Modificacion del bit en la tabla de paginas Es necesario otro bit para indicar si la pagina ha sido alterada desde que se cargo en memoria principal Si no hubo cambios, dicha pagina no debe ser grabada al disco para swapearla

Entradas a la tabla de paginas

Esquema de dos niveles en direccionamiento de 32 bits

Tabla de paginas La tabla de paginas completa puede ocupar mucha memoria Las tablas de paginas tambien se guardan en memoria virtual Cuan un proceso se esta ejecutando, parte de su tabla de paginas esta en memoria

Translation Lookaside Buffer(TLB) Cada referencia a memoria virtual puede implicar dos accesos a memoria uno para traer la tabla de paginas otro para traer los datos Para amortiguar este problema hace falta utilizar un cache de alta velocidad para albergar paginas de esta tabla Se le llama TLB - Translation Lookaside Buffer

Translation Lookaside Buffer Contiene entradas a la tabla de paginas que fueron recientemente utilizadas Funciona en forma similar a una memoria cache

Translation Lookaside Buffer Dada una direccion virtual, el procesador examina la TLB Si esta presente (hit), el numero de frame es tomado y se forma la direccion real Si no esta presente (a miss), la pagina es buscada en la lista de paginas en memoria

Translation Lookaside Buffer Primero se chequea si aun existe en memoria Si no esta, ocurre un page fault (fallo de pagina) y ocurre una interrupcion La TLB es actualizada para incluir una entrada para la nueva pagina

Tamaño de la pagina A paginas mas pequeñas, menor fragmentacion interna A paginas mas pequeñas, mas requerimientos de paginas por proceso Cuanto mas paginas por procesos significa tablas de paginas mas largas tablas de paginas mas largas significan porciones mas largas de tabla de paginas en memoria virtual La memoria secundaria es diseñada para transferir eficientemente largos bloques de datos. Por lo que resulta mejor tener paginas de longitud mas larga

Tamaño de Pagina A paginas mas chicas, mauyor numero de paginas pueden ser halladas en memoria Mientras la ejecucion avanza en el tiempo, las paginas en memoria van a contener porciones de procesos cercanos a referencias recientes. Baja falla de pagina. Tamaño de paginas incrementados, causan que paginas contengan direcciones lejanas de cualquier referencia reciente. Page faults incrementados.

Tamaño de pagina Multiples tamaños de pagina proveen flexibilidad para un eficiente uso de TLB Paginas largas pueden ser utilizadas para instrucciones de programas Paginas pequeñas púeden ser utilizadas para programacion multihilo (para los hilos) La mayoria de S.O. Solo contemplan una longitud de paginas unica

Ejemplo de longitud de paginas

Segmentacion Los tamaños son dinamicos, con segmentos de diferente tamaño Simplifica el tratamiento de estructura de datos crecientes Permite alterar a programas y recompilarlos independientemente Utilisimo para compartir y proteger datos entre procesos

Tablas de segmentos Segmentos correspondientes en memoria principal Cada entrada contiene la longitud de cada semento Se requiere un bit para determinar si el segmento esta presente en memoria Otro bit es necesario para determinar si el segmento fue modificado mientras estuvo presente en memoria

Entradas en la tabla de segmentos

Paginación y Segmentación combinados La paginación es transparente para el programador La paginacion elimina fragmentación externa La segmentación es visible para el programador La segmentación permite estructuras de datos crecientes, modularidad y atributos de compartirlos y protegerlos Cada segmento es traído a memoria a paginas de tamaño fijo

Paginación y Segmentación combinados

Política de selección Política de selección Determina cuando una pagina, debe ser traida a memoria La paginación por demanda solo trae una pagina a memoria, cuando se hace referencia a una de sus direcciones Cuando se inicia un programa, se producen muchos fallos de pagina La pre-paginación trae a memoria, mas paginas de las requeridas Es mas eficiente, traer a memoria paginas contiguas en disco

Política de reemplazo Política de reemplazo decide sobre Pagina a ser reemplazada? Aquella que en el futuro tenga la menor probabilidad de ser referenciada Se podria definir políticas de predicción en funcion al comportamiento registrado

Política de reemplazo Bloqueo de frames frame bloqueado, no puede ser reemplazado Kernel del Sistema Operativo Estructuras de control Buffers de E/S Se asocia un bit de bloqueo a cada frame en esas condiciones

Algoritmos Basicos de reemplazo Politica óptima Selecciona para su reemplazo, la pagina para la que su siguiente referencia es la mas larga en el tiempo Imposible obtener conocimiento acerca de futuros eventos

Algoritmos Basicos de reemplazo Least Recently Used (LRU) Reemplaza la página para la cual hace más tiempo que no fue referenciada Por el principio de localización, esta pagina sera la que aparece como menos probable de ser referenciada en el futuro Cada pagina sera marcada con la hora de su ultima referencia. Esto va a requeriri un importante overhead.

Algoritmos Basicos de reemplazo First-in, first-out (FIFO) Trata a las paginas asociadas a un proceso, como un buffer circular Las páginas son reemplazadas en forma de round-robin Es la politica de reemplazo mas sencilla de implementar Se reemplaza la pagina mas antigua en memoria Estas paginas pueden ser requeridas en breve

Algoritmos Basicos de reemplazo Política usando el reloj Usa un bit adicional llamado bit de uso Cuando una pagina es inicialmente cargada en MP, se pone un 0 al bit de uso Cuando la página es referenciada, se pone un 1 Cuando llega el tiempo de reemplazo, se reemplaza el primer frame encontrado con un bit de uso = 0. Durante la busqueda del reemplazo, cada bit de uso en 1 es cambiado a 0

Algoritmos Basicos de reemplazo Buffering de Páginas La página reemplazada es agregada a una de las siguientes listas: Lista de páginas libres que no han sido modificadas Lista de paginas modificadas

Tamaño del set residente Asignacion fija Le da a cada proceso un numero fijo de paginas dentro de cada ejecucion Cuando ocurre un fallo de pagina, una de las paginas de dicho proceso, debe ser reemplazada Asignacion variable El numero de paginas asignadas, varia a lo largo del ciclo de vida del proceso

Asignacion variable, Scope Global Eas la mas facil de implementar Adoptada por varios S.O. El S.O. Guarda una lista de paginas libres Cuando ocurre un fallo de pagina, una pagina se agrega al set residente En caso de no haber un frame libre, se reemplaza un frame de otro proceso

Asignacion variable, Scope Local Cuando un nuevo proceo es agregado, se asignan un numero de frames basados en el tipo de aplicacion, los requerimientos del programa u otro criterio. Cuando ocurre un fallo de pagina, se selecciona una pagina del conjunto de residentes del proceso que sufre la falla Se reconsidera la asignacion periodicamente

Política de limpieza Limpieza por demanda Prelimpieza Una pagina es sacada de memoria cuando es seleccionada para su reemplazo Prelimpieza Las paginas se “swappea” por lotes

Política de limpieza Best approach uses page buffering Replaced pages are placed in two lists Modified and unmodified Pages in the modified list are periodically written out in batches Pages in the unmodified list are either reclaimed if referenced again or lost when its frame is assigned to another page

Carga de control Determina el numero de proceso que residiran en Memoria Pocos procesos en muchas ocasiones, cuando todos los procesos esten bloqueados y se dedique mucho tiempo al swapping Demasiados procesos generaran trashing

Suspensión de Procesos Procesos de baja prioridad Procesos con alguna falla estos no tienen su area de trabajo en m emoria, por lo que estan en estado de blocked de por si Ultimo proceso activado Este proceso pareciera en condiciones de estar presente en memoria principal

Suspension de Procesos Procesos con su set residente de menor tamaño Este proceso requiere un esfuerzo menor para ser recargado Procesos largos Obtiene los frames mas libres Procesos quienes tienen una ejecucion mas prolongada

Estructura de datos

Estructura de Datos