Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Memoria Virtual Capitulo 8
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
Entradas a la tabla de paginas
14
Esquema de dos niveles en direccionamiento de 32 bits
15
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
16
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
17
Translation Lookaside Buffer
Contiene entradas a la tabla de paginas que fueron recientemente utilizadas Funciona en forma similar a una memoria cache
18
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
19
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
22
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
23
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.
25
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
26
Ejemplo de longitud de paginas
27
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
28
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
29
Entradas en la tabla de segmentos
30
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
31
Paginación y Segmentación combinados
33
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
34
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
35
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
36
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
37
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.
38
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
39
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
42
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
43
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
44
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
45
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
46
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
47
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
48
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
49
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
50
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
51
Estructura de datos
52
Estructura de Datos
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.