SlideShare una empresa de Scribd logo
Capítulo 9:  Memoria Virtual
Capítulo 9:  Memoria Virtual Introducción Paginación por Demanda Copy-on-Write Reemplazando páginas Alocación de Frames  Thrashing Alocación de Memoria del Kernel Otras Consideraciones Ejemplos
Objetivos Describir los beneficios de un sistema de memoria virtual Explicar los conceptos de paginación bajo demanda, algoritmos para reemplazar páginas, y la alocación de frames de páginas Discutir el principio del modelo del working-set (conjunto-de-trabajo)
Introducción Memoria virtual  – separación de la memoria lógica del usuario, de la memoria física No todo el programa necesita estar en memoria para su ejecución El espacio de direcciones lógicas puede ser mucho más grande que el de direcciones físicas Permite que espacios de direcciones se compartan por varios procesos Hace que la creación de procesos sea más eficiente Puede ser implementada vía: Paginación bajo demanda Segmentación bajo demanda
Ejemplo 
Espacio de Direcciones Virtual
Librería Compartida con Memoria Virtual
Paginación Bajo Demanda Se trae una página a memoria solo cuando se la necesita Necesitamos menos E/S Necesitamos menos memoria  Respuestas más rápidas Más usuarios Si se necesita una página    se la referencia No está en memoria    traerla a memoria Swapping Perezoso  – Nunca traer una página a memoria a menos que se la necesite Al swapper que trabaja con páginas se lo llama  paginador
Ejemplo contiguo
Bit Válido-Inválido v v v v i i i … . Frame # valid-invalid bit page table En memoria NO en memoria Si se referencia a esta página    page fault
Ejemplo
Page Fault La primera referencia a una página generará una trampa al S.O. : page fault S.O. examin decide si: Referencia es ilegal    abortar No está en memoria Obtener un frame vacío Cargar la página (de backing store) al frame Establecer bit de validación =  v Re-iniciar la instrucción que causó el page fault
Ejemplo
Análisis de Rendimiento Tasa de page faults: 0     p     1.0 p  = 0 si no hay page faults  p  = 1 si cada referencia conlleva una falla Effective Access Time (EAT) Tiempo de acceso efectivo EAT = (1 –  p ) x memory access +  p  (page fault overhead + swap page out + swap page in + restart overhead )
Ejemplo Tiempo de acceso a memoria = 200 nanosegundos Tiempo de procesamiento de un page-fault promedio = 8 millisegundos EAT = (1 – p) x 200 + p (8 milliseconds)    = (1 – p)  x 200 + p x 8,000,000  = 200 + p x 7,999,800 Si una de 1000 referencias causa una page fault: EAT = 8.2 milisegundos
Memoria compartida Memoria virtual permite otros beneficios Shared memory Creacion rapida de procesos Archivos mapeados en memoria
Copy-on-Write Copy-on-Write (COW) permite que los procesos padre e hijo inicialmente compartan las mismas páginas en memoria Si alguno de los procesos modifica una página compartida, recién en ese momento se copia la página COW permite una creación eficiente de procesos pues las instrucciones no se cargan en memoria principal nuevamente Páginas libres se obtienen de un pool de páginas
Ejemplo Proceso1 modifica la página C Copia de C
¿ Y si no hay frames libres? Hacer swaping del proceso completo. Reemplazar una página Swap out Políticas Rendimiento: debe resultar en el mínimo número de page faults La misma página puede ser cargada en memoria múltiples veces.
Reemplazando Páginas Usar un  modify (dirty) bit   para reducir la sobrecarga de las transferencias de páginas Solamente las páginas modificadas se escriben en disco Permite que una memoria virtual grande se pueda usar a pesar de tener una memoria física más pequeña
Ejemplo
Reemplazando Páginas: Básico Localizar la página deseada en disco Encontrar un frame libre: Si hay uno libre, usarlo Si no hay un frame libre, usar algoritmo para escojer a una  víctima Traer la página deseada al (nuevo) frame Actualizar las tablas de páginas y frames Re-iniciar el proceso
Reemplazando Páginas
Algoritmos para Reemplazar Páginas Meta: conseguir la tasa de page-faults más baja Evaluar el algoritmo al ejecutarlo en un string particular de referncias de memoria (string de referencia) y calculando el # de page faults que ocurren En todos nuestros ejemplos, el string será:  1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Algoritmo FIFO String de referencias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 páginas pueden estar en memoria en un momento dado por proceso) 4 frames Anomalía de Belady: más frames    (a veces) más page faults 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 4 4 3
Ejemplo
Algoritmo  Ó ptimo Reemplazar una página que no será utilizada por el mayor periodo de tiempo Ejemplo con 4 frames:   1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 ¿ Cómo sabemos esto? Usado como referencia para medir rendimiento de algoritmos 1 2 3 4 6 page faults 4 5
Ejemplo
Algoritmo Least Recently Used (LRU) String de referencia:  1, 2, 3, 4, 1, 2,  5 , 1, 2,  3 ,  4 ,  5 Implementación con un contador Cada entrada de página tiene un contador; cada vez que una página es referenciada, copiar la lectura del reloj en el contador Cuando una página debe ser cambiada, usar el contador para seleccionar una 5 2 4 3 1 2 3 4 1 2 5 4 1 2 5 3 1 2 4 3
Ejemplo
Algoritmo LRU (cont.) Implementación con una pila Mantener una pila de los #s de páginas en una estructura de datos doblemente enlazada Cuando una página es referenciada: Moverla al tope de la pila Requiere 6 cambios de punteros No es necesario buscar en la estructura de datos Se remueve la pagina que esta al fondo de la pila
Ejemplo
Algoritmos de Aproximación LRU Algunos HW dan soporte parcial a LRU Bit de referencia Con cada página asociar un bit, incialmente = 0 Cuando una página se referencia, setear el bit en 1 Reemplazar una página cuyo bit sea 0 (si una existe) Bits adicionales? Segunda oportunidad Usa bit de referencia Reemplazar en sentido del rejol Si página a ser reemplazada tiene bit = 1, entonces: hacer bit = 0 dejar la página en memoria reemplazar la siguiente página, siguiendo las mismas reglas
Algoritmo de Segunda Oportunidad (reloj)
Algoritmos de Conteo Mantener un contador con el # de referencias que se han hecho a cada página Algoritmo LFU Reemplaza la página con el menor contador Algoritmo MFU (most freq. used) Basado en el argumento de que la página con el menor contador probablemente se acaba de cargar, y va a seguir siendo utilizada
Otras Decisiones ¿ Cuántos frames asignar a cada proceso? Un número igual por proceso Dependiendo de la prioridad del proceso Cuando se va a reemplazar una página,  ¿escogemos una del propio proceso o de otro proceso? Alocación global Alocación local
Thrashing Si a un proceso no se le asignan “suficientes” frames, la tasa de page faults es muy alta Baja utilización del CPU S.O. piensa que debe aumentar el grado de multi-programación Se agrega otro proceso al sistema Thrashing     un proceso está ocupado haciendo swap in y swap out de páginas
Thrashing (cont.) Modelo de working-set puede ser utilizado por S.O. para determinar si hay thrashing.
Localidad patrones de referencia a memoria
Modelo Working-set
Esquema de Frecuencias de Page-Faults Establecer una tasa de page-faults “aceptable” Si la tasa actual es muy baja, al proceso se le quita un frame Si la tasa actual es muy alta, al proceso se le otorga un frame
Asignando Memoria al Kernel Tratada de manera diferente que la memoria de usuario Frecuentemente asignadas de un pool de memoria libre Kernel solicita estructuras de memoria de tamaños variables En ocasiones, la memoria necesita ser contigua
Alocacion: Buddy System
Alocacion: Slab
Otros Aspectos: Prepaginación Pre-paginación Busca reducir el número de page faults que ocurren cuando un proceso se carga inicialmente Se puede prepaginar todas o algunas de las páginas que el proceso necesite, antes de que se referencien Pero, si las páginas pre-paginadas no se usan, hay desperdicio de E/S y memoria
Otros Aspectos Definir el tamaño de la página Muy grande: fragmentación Muy pequeña: Muchos page faults Tamaño del TLB Idealmente, capaz de contener el working set del proceso Estructura del programa (sgt. página)
Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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; Programa 2  for (i = 0; i < 128; i++)   for (j = 0; j < 128; j++)   data[i,j] = 0;
Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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 page faults  Programa 2  for (i = 0; i < 128; i++)   for (j = 0; j < 128; j++)   data[i,j] = 0;
Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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 page faults  Programa 2  for (i = 0; i < 128; i++)   for (j = 0; j < 128; j++)   data[i,j] = 0; 128 page faults
 
Ejemplos de Sistemas Operativos Windows XP Solaris
Windows XP Uses demand paging with  clustering . Clustering brings in pages surrounding the faulting page. Processes are assigned  working set minimum  and  working set maximum Working set minimum is the minimum number of pages the process is guaranteed to have in memory A process may be assigned as many pages up to its working set maximum When the amount of free memory in the system falls below a threshold,  automatic working set trimming  is performed to restore the amount of free memory Working set trimming removes pages from processes that have pages in excess of their working set minimum
Solaris  Maintains a list of free pages to assign faulting processes Lotsfree  – threshold parameter (amount of free memory) to begin paging Desfree  – threshold parameter to increasing paging Minfree  – threshold parameter to being swapping Paging is performed by  pageout  process Pageout scans pages using modified clock algorithm Scanrate  is the rate at which pages are scanned. This ranges from  slowscan  to  fastscan Pageout is called more frequently depending upon the amount of free memory available
Fin del Capítulo 9

Más contenido relacionado

PPTX
Memoria Virtual
 
PPTX
Memoria virtual
PPTX
Sistemas operativos memoria virtual
PPTX
memoria virtual
PPTX
Memoria virtual
PPTX
Memoria virtual
PPT
Paginación, Segmentación y Fragmentación
PPT
Capitulo 8 Memoria Principal
Memoria Virtual
 
Memoria virtual
Sistemas operativos memoria virtual
memoria virtual
Memoria virtual
Memoria virtual
Paginación, Segmentación y Fragmentación
Capitulo 8 Memoria Principal

La actualidad más candente (20)

PPTX
Memoria virtual - Exposicion
PPTX
La Memoria Virtual en Windows
PPTX
Sistemas operativos memoria virtual
PPTX
Trabajo memoria virtual.
PPTX
presentacion Memoria virtual
PPTX
Paginación y Segmentación
PPT
Gestión de memoria virtual
PPTX
PAGINACION Y SEGMENTACION DE MEMORIA
PPTX
Segmentación Memoria Virtual
PPTX
Fernando rincon s.o memoria virtual
PPTX
Paginación y segmentación
PPTX
Paginacion
PPTX
Memoria virtual(Braulio E.Ramirez)
PPTX
Memoria virtual y paginacion
DOCX
Administración de memoria virtual.
PPT
Capitulo3
PPTX
Memoria virtual
PPTX
Administración de Memoria - Sistemas Operativos
PPT
Administracion de Memoria
Memoria virtual - Exposicion
La Memoria Virtual en Windows
Sistemas operativos memoria virtual
Trabajo memoria virtual.
presentacion Memoria virtual
Paginación y Segmentación
Gestión de memoria virtual
PAGINACION Y SEGMENTACION DE MEMORIA
Segmentación Memoria Virtual
Fernando rincon s.o memoria virtual
Paginación y segmentación
Paginacion
Memoria virtual(Braulio E.Ramirez)
Memoria virtual y paginacion
Administración de memoria virtual.
Capitulo3
Memoria virtual
Administración de Memoria - Sistemas Operativos
Administracion de Memoria
Publicidad

Similar a Capitulo 9 Memoria Virtual (20)

PPT
Pag Demanda Reemplazamiento
PPT
Memvirtual
PPT
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
PDF
MEMORIA VIRTUAL - SISTEMAS OPERATIVOS
PPT
Memoria virtual
PPTX
memoria_virtual
PPTX
Sistema operativo.ppt
PPT
memoria virtual clase sistemas operativos
PPTX
Memoria virtual
ODT
Resumen Unidades 16/17/18 So Tanembau
PDF
Finalfinal
PPTX
memoria_virtual
PPT
memoria virtual xD
PPT
MeMoRiA ViRtUaL
PPTX
Sistemas operativos memoria virtual
PPT
Memoria virtual
PPT
Memoria virtual
PDF
Trabajo practico - Sistemas Operativos (358) - UNA
PPTX
Primer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Pag Demanda Reemplazamiento
Memvirtual
SISTEMAS OPERATIVOS ( II Bimestre Abril Agosto 2011)
MEMORIA VIRTUAL - SISTEMAS OPERATIVOS
Memoria virtual
memoria_virtual
Sistema operativo.ppt
memoria virtual clase sistemas operativos
Memoria virtual
Resumen Unidades 16/17/18 So Tanembau
Finalfinal
memoria_virtual
memoria virtual xD
MeMoRiA ViRtUaL
Sistemas operativos memoria virtual
Memoria virtual
Memoria virtual
Trabajo practico - Sistemas Operativos (358) - UNA
Primer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Publicidad

Último (20)

PPT
Que son las redes de computadores y sus partes
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
taller de informática - LEY DE OHM
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Diapositiva proyecto de vida, materia catedra
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Presentación de Redes de Datos modelo osi
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Que son las redes de computadores y sus partes
REDES INFORMATICAS REDES INFORMATICAS.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Influencia-del-uso-de-redes-sociales.pdf
taller de informática - LEY DE OHM
historia_web de la creacion de un navegador_presentacion.pptx
CyberOps Associate - Cisco Networking Academy
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Diapositiva proyecto de vida, materia catedra
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Maste clas de estructura metálica y arquitectura
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Sesion 1 de microsoft power point - Clase 1
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Presentación de Redes de Datos modelo osi
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad

Capitulo 9 Memoria Virtual

  • 1. Capítulo 9: Memoria Virtual
  • 2. Capítulo 9: Memoria Virtual Introducción Paginación por Demanda Copy-on-Write Reemplazando páginas Alocación de Frames Thrashing Alocación de Memoria del Kernel Otras Consideraciones Ejemplos
  • 3. Objetivos Describir los beneficios de un sistema de memoria virtual Explicar los conceptos de paginación bajo demanda, algoritmos para reemplazar páginas, y la alocación de frames de páginas Discutir el principio del modelo del working-set (conjunto-de-trabajo)
  • 4. Introducción Memoria virtual – separación de la memoria lógica del usuario, de la memoria física No todo el programa necesita estar en memoria para su ejecución El espacio de direcciones lógicas puede ser mucho más grande que el de direcciones físicas Permite que espacios de direcciones se compartan por varios procesos Hace que la creación de procesos sea más eficiente Puede ser implementada vía: Paginación bajo demanda Segmentación bajo demanda
  • 7. Librería Compartida con Memoria Virtual
  • 8. Paginación Bajo Demanda Se trae una página a memoria solo cuando se la necesita Necesitamos menos E/S Necesitamos menos memoria Respuestas más rápidas Más usuarios Si se necesita una página  se la referencia No está en memoria  traerla a memoria Swapping Perezoso – Nunca traer una página a memoria a menos que se la necesite Al swapper que trabaja con páginas se lo llama paginador
  • 10. Bit Válido-Inválido v v v v i i i … . Frame # valid-invalid bit page table En memoria NO en memoria Si se referencia a esta página  page fault
  • 12. Page Fault La primera referencia a una página generará una trampa al S.O. : page fault S.O. examin decide si: Referencia es ilegal  abortar No está en memoria Obtener un frame vacío Cargar la página (de backing store) al frame Establecer bit de validación = v Re-iniciar la instrucción que causó el page fault
  • 14. Análisis de Rendimiento Tasa de page faults: 0  p  1.0 p = 0 si no hay page faults p = 1 si cada referencia conlleva una falla Effective Access Time (EAT) Tiempo de acceso efectivo EAT = (1 – p ) x memory access + p (page fault overhead + swap page out + swap page in + restart overhead )
  • 15. Ejemplo Tiempo de acceso a memoria = 200 nanosegundos Tiempo de procesamiento de un page-fault promedio = 8 millisegundos EAT = (1 – p) x 200 + p (8 milliseconds) = (1 – p) x 200 + p x 8,000,000 = 200 + p x 7,999,800 Si una de 1000 referencias causa una page fault: EAT = 8.2 milisegundos
  • 16. Memoria compartida Memoria virtual permite otros beneficios Shared memory Creacion rapida de procesos Archivos mapeados en memoria
  • 17. Copy-on-Write Copy-on-Write (COW) permite que los procesos padre e hijo inicialmente compartan las mismas páginas en memoria Si alguno de los procesos modifica una página compartida, recién en ese momento se copia la página COW permite una creación eficiente de procesos pues las instrucciones no se cargan en memoria principal nuevamente Páginas libres se obtienen de un pool de páginas
  • 18. Ejemplo Proceso1 modifica la página C Copia de C
  • 19. ¿ Y si no hay frames libres? Hacer swaping del proceso completo. Reemplazar una página Swap out Políticas Rendimiento: debe resultar en el mínimo número de page faults La misma página puede ser cargada en memoria múltiples veces.
  • 20. Reemplazando Páginas Usar un modify (dirty) bit para reducir la sobrecarga de las transferencias de páginas Solamente las páginas modificadas se escriben en disco Permite que una memoria virtual grande se pueda usar a pesar de tener una memoria física más pequeña
  • 22. Reemplazando Páginas: Básico Localizar la página deseada en disco Encontrar un frame libre: Si hay uno libre, usarlo Si no hay un frame libre, usar algoritmo para escojer a una víctima Traer la página deseada al (nuevo) frame Actualizar las tablas de páginas y frames Re-iniciar el proceso
  • 24. Algoritmos para Reemplazar Páginas Meta: conseguir la tasa de page-faults más baja Evaluar el algoritmo al ejecutarlo en un string particular de referncias de memoria (string de referencia) y calculando el # de page faults que ocurren En todos nuestros ejemplos, el string será: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
  • 25. Algoritmo FIFO String de referencias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 páginas pueden estar en memoria en un momento dado por proceso) 4 frames Anomalía de Belady: más frames  (a veces) más page faults 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 4 4 3
  • 27. Algoritmo Ó ptimo Reemplazar una página que no será utilizada por el mayor periodo de tiempo Ejemplo con 4 frames: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 ¿ Cómo sabemos esto? Usado como referencia para medir rendimiento de algoritmos 1 2 3 4 6 page faults 4 5
  • 29. Algoritmo Least Recently Used (LRU) String de referencia: 1, 2, 3, 4, 1, 2, 5 , 1, 2, 3 , 4 , 5 Implementación con un contador Cada entrada de página tiene un contador; cada vez que una página es referenciada, copiar la lectura del reloj en el contador Cuando una página debe ser cambiada, usar el contador para seleccionar una 5 2 4 3 1 2 3 4 1 2 5 4 1 2 5 3 1 2 4 3
  • 31. Algoritmo LRU (cont.) Implementación con una pila Mantener una pila de los #s de páginas en una estructura de datos doblemente enlazada Cuando una página es referenciada: Moverla al tope de la pila Requiere 6 cambios de punteros No es necesario buscar en la estructura de datos Se remueve la pagina que esta al fondo de la pila
  • 33. Algoritmos de Aproximación LRU Algunos HW dan soporte parcial a LRU Bit de referencia Con cada página asociar un bit, incialmente = 0 Cuando una página se referencia, setear el bit en 1 Reemplazar una página cuyo bit sea 0 (si una existe) Bits adicionales? Segunda oportunidad Usa bit de referencia Reemplazar en sentido del rejol Si página a ser reemplazada tiene bit = 1, entonces: hacer bit = 0 dejar la página en memoria reemplazar la siguiente página, siguiendo las mismas reglas
  • 34. Algoritmo de Segunda Oportunidad (reloj)
  • 35. Algoritmos de Conteo Mantener un contador con el # de referencias que se han hecho a cada página Algoritmo LFU Reemplaza la página con el menor contador Algoritmo MFU (most freq. used) Basado en el argumento de que la página con el menor contador probablemente se acaba de cargar, y va a seguir siendo utilizada
  • 36. Otras Decisiones ¿ Cuántos frames asignar a cada proceso? Un número igual por proceso Dependiendo de la prioridad del proceso Cuando se va a reemplazar una página, ¿escogemos una del propio proceso o de otro proceso? Alocación global Alocación local
  • 37. Thrashing Si a un proceso no se le asignan “suficientes” frames, la tasa de page faults es muy alta Baja utilización del CPU S.O. piensa que debe aumentar el grado de multi-programación Se agrega otro proceso al sistema Thrashing  un proceso está ocupado haciendo swap in y swap out de páginas
  • 38. Thrashing (cont.) Modelo de working-set puede ser utilizado por S.O. para determinar si hay thrashing.
  • 39. Localidad patrones de referencia a memoria
  • 41. Esquema de Frecuencias de Page-Faults Establecer una tasa de page-faults “aceptable” Si la tasa actual es muy baja, al proceso se le quita un frame Si la tasa actual es muy alta, al proceso se le otorga un frame
  • 42. Asignando Memoria al Kernel Tratada de manera diferente que la memoria de usuario Frecuentemente asignadas de un pool de memoria libre Kernel solicita estructuras de memoria de tamaños variables En ocasiones, la memoria necesita ser contigua
  • 45. Otros Aspectos: Prepaginación Pre-paginación Busca reducir el número de page faults que ocurren cuando un proceso se carga inicialmente Se puede prepaginar todas o algunas de las páginas que el proceso necesite, antes de que se referencien Pero, si las páginas pre-paginadas no se usan, hay desperdicio de E/S y memoria
  • 46. Otros Aspectos Definir el tamaño de la página Muy grande: fragmentación Muy pequeña: Muchos page faults Tamaño del TLB Idealmente, capaz de contener el working set del proceso Estructura del programa (sgt. página)
  • 47. Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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; Programa 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0;
  • 48. Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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 page faults Programa 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0;
  • 49. Otros Aspectos: Estructura del Programa Estructura del programa int[128,128] data; 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 page faults Programa 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0; 128 page faults
  • 50.  
  • 51. Ejemplos de Sistemas Operativos Windows XP Solaris
  • 52. Windows XP Uses demand paging with clustering . Clustering brings in pages surrounding the faulting page. Processes are assigned working set minimum and working set maximum Working set minimum is the minimum number of pages the process is guaranteed to have in memory A process may be assigned as many pages up to its working set maximum When the amount of free memory in the system falls below a threshold, automatic working set trimming is performed to restore the amount of free memory Working set trimming removes pages from processes that have pages in excess of their working set minimum
  • 53. Solaris Maintains a list of free pages to assign faulting processes Lotsfree – threshold parameter (amount of free memory) to begin paging Desfree – threshold parameter to increasing paging Minfree – threshold parameter to being swapping Paging is performed by pageout process Pageout scans pages using modified clock algorithm Scanrate is the rate at which pages are scanned. This ranges from slowscan to fastscan Pageout is called more frequently depending upon the amount of free memory available