Está en la página 1de 26

Gestión de memoria

Sistemas Operativos (SO)


Facultat d'Informàtica de Barcelona
Universitat Politècnica de Catalunya
Contenido

Memoria virtual
Soporte del SO y HW
Políticas y Algoritmos

Sistema de Ficheros 2
Memoria virtual

Memoria Memoria Área


lógica MMU física de
swap

Espacio de direcciones Total de memoria disponible Almacenamiento de


usado por los procesos en el sistema memoria lógica que no
(232/64 direcciones) cabe en memoria física

Sistema de Ficheros 3
Espacio de direcciones lógico

Cada proceso tiene su


Constantes
espacio de direcciones
Código
Se divide en dos
Mmap
Usuario
Específico en cada proceso Pila 232/64 bytes

Diferentes tipos de regiones Heap (datos)

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

MMU (Memory Management Unit)


Unidad encargada de traducir las @ lógicas a @ físicas

@1234

@abcd

MMU

@dcba
@1234

@abcd

Espacio de memoria física


Espacio de memoria ( Total de memoria disponible )
lógica
(1 por proceso)

Sistema de Ficheros 6
Swap

Zona de almacenamiento secundario para las memoria


lógica
estático:
toda información que este en memoria física también está en el swap
dinámico:
solo aquellos datos que no están en memoria física están en el 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

Dividir el espacio de memoria lógico y físico en


bloques de igual tamaño.
Cada bloque es una página
Unidad mínima de asignación y de trabajo
4Kb – 1Mb
tamaño de estructuras
fragmentación interna
No de páginas movilidad
tiempo de fallo de página
localidad
Simplifica la gestión del SO
Reduce el tamaño de las estructuras

Sistema de Ficheros 10
Fallo de página

Se produce cuando se intenta acceder a una página


que no esta en memoria física
Al hacer obtener una instrucción
Al leer los operandos add @x, @y, @z
Al escribir los resultados
Soluciones
interrumpir la ejecución, salvar el estado, solucionar , restaurar
estado, continuar
eliminar instrucción, solucionar, reejecutar

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)

Espacio de memoria de 32 bits


Páginas de 4KB  220 páginas x 32 bits/entrada 4MB
Tablas de páginas multinivel
El primer nivel tiene menos entradas y cada una engloba más memoria
Apunta a una nueva tabla de página más detallada
Reduce la porción de tabla de páginas que ha de estar residente

Espacio de memoria de 64 bits


Páginas de 4KB 252 páginas x 32 bits/entrada 4 PB!!!
Tablas de páginas invertidas
Solo existen entradas para aquellas páginas validas
Tabla de hash con tantas entradas como páginas físicas

Sistema de Ficheros 15
Translation Lookaside Buffer

Dispositivo hardware que


almacena las entradas de @ lógica

la tabla de páginas usadas página lógica offset


TLB
más recientemente b. validez página lógica página física bits, prots

cache totalmente asociativa de


pequeño tamaño
entradas gestionadas por el
SO
página física offset
se ha de invalidar al cambiar
de proceso @ física

bit de validez

Sistema de Ficheros 16
Region Map

Estructura que agrupa varias páginas de


características similares
Guarda información común a todas las páginas
Cada entrada contiene al menos:
@ inicio
@ final
protecciones
zona del swap donde esta la región
...

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

Cuando todas las páginas de memoria están ocupadas


y necesitamos una
escoger una víctima
paginarla ( page out ) si se ha modificado
traer la página del swap ( page in )/ crear una nueva página
Diferentes políticas
FIFO
Fácil de implementar
No tiene en cuenta la localidad temporal
LRU ( Least Recently Used )
Excelente algoritmo
Difícil de implementar

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

Situación anómala del sistema


El sistema está más tiempo atendiendo fallos de página que
haciendo trabajo útil
Detección
Contador de Nº de fallos de página por segundo
Si > que un cierto valor  trashing
Solución
Invocar el planificación a medio plazo
Disminuir el grado de multiprogramación temporalmente
Swapear (swap out) procesos enteros
Cuando se normalice la situación
Traer los procesos swapeados ( swap in )

Sistema de Ficheros 23
RSI memoria

Motivos que generan una interrupción y respuesta del


SO
Violación de protecciones
avisar al proceso ( SIGSEGV )
Página no presente
fallo de página  page in
Página no válida
Si era un acceso a la pila
dar más páginas a la pila
sino
avisar al proceso ( SIGSEGV )

Sistema de Ficheros 24
Diagrama de tratamiento de páginas

lanzar acceso Entrada válida en la Sí


miramos la TLB generar @ física
a memoria TLB para esa página

No

Llamar al SO. Es un acceso No Notificar proceso


Acceder a TP correcto? (signal )

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?

Actualizar TP y TLB Planificar proceso

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

También podría gustarte