Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Memoria virtual
Soporte del SO y HW
Políticas y Algoritmos
Sistema de Ficheros 2
Memoria virtual
Sistema de Ficheros 3
Espacio de direcciones lógico
SO
Común a todos los procesos
Accesible cuando se ejecuta
dentro del sistema Sistema Operativo
Sistema de Ficheros 4
Espacio de direcciones lógico (II)
Constantes, Código
Solo lectura Constantes
Tamaño fijo
Código
Heap
Mmap
Datos dinámicos globales
Tamaño cambia durante la vida del proceso Pila 232/64 bytes
malloc / free
Heap (datos)
Pila
Datos privados a cada thread
Tamaño cambia durante la vida del proceso
Implícitamente
Sistema Operativo
Mmap
Objetos ( p.ej. ficheros ) accesibles desde el
espacio lógico
Sistema de Ficheros 5
MMU
@1234
@abcd
MMU
@dcba
@1234
@abcd
Sistema de Ficheros 6
Swap
Sistema de Ficheros 7
Modelos de memoria
Uniprogramado/Multiprogramado
Nº de programas en memoria a la vez: 1 / Más de 1
Residente/No residente
Información ha de estar en memoria toda la ejecución
Inmóvil/ Móvil
La traducción de @ lógica a física es siempre la misma
Contigua/No contigua
Direcciones @ lógicas contiguas son @ físicas contiguas
Entero/No entero
El programa ha de estar completamente en memoria física para
ejecutarse
Sistema de Ficheros 8
Modelos de memoria (II)
Memoria virtual
Multiprogramado, no residente, móvil, no contiguo, no entero
Paginación
Segmentación
Paginación segmentada, segmentación paginada, ...
SO
entero
SO sencillo
Uso ineficiente de la memoria
no entero, partes residentes
SO más complejo
Código y datos esenciales ( gestión de memoria, RSI, ... ) siempre residentes
Sistema de Ficheros 9
Paginación
Sistema de Ficheros 10
Fallo de página
Sistema de Ficheros 11
Responsabilidades del HW i del SO
Hardware
Traducción de @ lógicas a @ físicas
Detección de problemas
fallo de páginas
acceso inválido
falta de privilegios
SO
Resolución de problemas
Gestión del espacio libre/ocupado
Sistema de Ficheros 12
Gestión del espacio libre
Mapa de bits
Sencillo
Dificil encontrar huecos
Lista de libres
Organizada por zonas libres y ocupadas
Fácil encontrar huecos
Sistema de Ficheros 13
Gestión del espacio ocupado
Tabla de páginas
1 por proceso
En memoria residente
Forma parte del contexto de un proceso
Cada entrada contiene al menos:
Nº página física
bit de validez
bit de presencia
protecciones
Otros: bit de modificación (dirty bit), bit de referencia
La usa el HW
para hacer las traducciones
detectar problemas
Sistema de Ficheros 14
Tabla de paginas (II)
Sistema de Ficheros 15
Translation Lookaside Buffer
bit de validez
Sistema de Ficheros 16
Region Map
Sistema de Ficheros 17
Políticas de gestión de memoria
Política de colocación
First fit, best fit, worst fit, buddy system, ...
Política de busqueda
Cuando se trae un página a memoria principal
Política de reemplazo
Cuando se elimina una página de memoria principal
Sistema de Ficheros 18
Política de búsqueda
Bajo demanda
Cuando se pide y no está en memoria principal se va a buscar
Prepaginación
Cuando se carga el programa se cargan varias páginas
Objetivo: reducir el tiempo de arranque
Prefetching
Cuando se trae una página traer además páginas contiguas
Objetivo: obtener beneficios de la localidad espacial
Sistema de Ficheros 19
Políticas de reemplazo
Sistema de Ficheros 20
Políticas de reemplazo (II)
Más políticas
NRU ( Non Recently Used )
Se basa en los bits de modificado y referencia
R,M > R,M > R,M > R,M
En caso de empate: FIFO
Simple, Bastante eficiente
Segunda oportunidad
Mejora sobre FIFO
Si el bit R esta a 1 se coloca al final de la cola en lugar de elegir la página
Envejecimiento
Cada página tiene un número de n bits que determina su valor
se escoge la página con número más bajo
En cada tick de reloj: valor = (valor de R << n) + ( valor actual >> 1 )
Algoritmo muy eficiente, se aproxima a LRU
Sistema de Ficheros 21
Llamadas a Sistema
Obtener memoria
Marcar página(s) como válida(s)
(Reservar página(s) en el área de swap )
Marcar página(s) como ocupada(s) ( bitmap / lista )
Nuevo region map si es necesario
Liberar memoria
Marcar página(s) como inválida(s)
(Liberar espacio en el área de swap )
Eliminar/Dividir/Reducir el region map de la página
(Invalidar entrada(s) de la TLB)
Marcar página(s) como libre(s)
Sistema de Ficheros 22
Trashing
Sistema de Ficheros 23
RSI memoria
Sistema de Ficheros 24
Diagrama de tratamiento de páginas
No
Sí
Esta la página en Sí
Actualizar TLB
memoria principal?
No
Lanzar petición
Escoger nuevo Página transferida
Atender fallo de página de E/S
proceso del disco
(page in)
Hay memoria No
Elegir víctima page out
principal libre?
Sí
Relanzar instrucción
Sistema de Ficheros 25
Pageout daemon
Proceso de sistema
Se ejecuta cuando el sistema no está ocupado
Limpia las páginas modificadas sincronizándolas con el swap
Reduce el tiempo de swap posteriormente ya que las páginas están “limpias”
Puede sincronizar varias páginas contiguas reduciendo el tiempo total de
transferencia
Mantener el número de páginas libres en el sistema a un cierto
número
No liberarlas del todo hasta que haga falta realmente
Sistema de Ficheros 26