Administración de recursos:
Procesador, memoria y E/S
Sistemas operativos
Sistemas Batch
• Programas usaban memoria física directamente
• OS cargaba trabajo, lo ejecutaba y lo descargaba
Sistemas Multiprogramados
• Múltiples procesos coexisten en memoria al mismo tiempo
Historia • Procesos usan CPU y dispositivos I/O simultáneamente
• Variados Requerimientos de administración de memoria
• Protección, restringiendo espacios de direccionamiento
para evitar daños entre ellos
• Traducción rápida, acceso a la memoria debe ser rápida
• Cambio de contexto, debe ser rápido, (protección y
traducción)
• Swapping
• Salvar el estado de programa completo (incluyendo
memoria) a disco para permitir la ejecución de otros
• Objetivos de la Administración de Memoria
• Proveer una abstracción simple de programación
(estructura de datos o virtual)
• Proveer aislamiento entre procesos
• Asignar memoria a procesos que la requieren,
maximizando el rendimiento, productividad y
Administración minimizando sobrecarga del Sistema (overhead)
de Memoria • Mecanismos
• Memoria física versus virtual
• Administración de tablas de páginas y
segmentación
• Algoritmos de reemplazamiento de páginas (LRU
:least Recently used)
• ¿Qué es?: Es la Abstracción básica que proporciona el SO para la
administración de memoria
• La Memoria virtual habilita la ejecución de procesos sin estar
contenidos completamente en memoria física
• Consecuencia inmediata: un proceso puede requerir más
memoria de la que esté disponible físicamente
Memoria • Muchos programas no necesitan todo el código o datos al
mismo tiempo
Virtual • Por ejemplo, datos en una rama condicional de un
programa que nunca son accesados
• SO puede asignar memoria física durante tiempo de
ejecución (cuando sea requerido)
• Memoria Virtual aisla procesos
• Cada proceso tiene su propio espacio de
direccionamiento
Memoria
virtual
• La implementación de Memoria virtual requiere
apoyo del hardware
Memoria • MMUs (unidad de manejo de memoria)
Virtual • TLBs, (translation lookaside buffer)
• tablas de páginas
Memoria
Virtual
• Estas sirven para facilitar el manejo de memoria de
múltiples procesos (los procesos manejan memoria
virtual).
• Direcciones lógicas son independientes de las
direcciones de memoria física (donde realmente
Direcciones código y datos están)
• SO determina ubicación de memoria física
Lógicas • Las instrucciones con las cuales trabaja la CPU usan
direcciones lógicas (virtuales)
• punteros, argumentos de load/store, PC, etc
• Traducción de direcciones lógicas a físicas se realiza
por hardware con ayuda del SO (MMU)
MMU
Registros Base y Límite
• Un par de registros base
y límite definen el
espacio de direcciones
lógicas
Administración de Memoria
• El conjunto de direcciones virtuales que un
proceso puede direccionar corresponde a su
espacio de direccionamiento
• Existen muchos mecanismos para la
Direcciones traducción de direcciones virtuales a físicas
Virtuales • Particiones fijas
• Particiones variables
• Paginación (técnica moderna)
• Segmentación (técnica moderna)
• Paginación y segmentación
Qué son las particiones?
Son cada division presente en una
Particiones sola unidad física de
almacenamiento de datos.
Proteje tareas, ya que ninguna
puede ingresar dentro de sus
fronteras.
Traducción con
Particiones Fijas
• Consiste en divider la
memoria libre en varios
partes de igual tamaño o de
diferentes tamaños.
• Memoria física se divide en particiones fijas
• Todas las particiones son de tamaño fijo y nunca
cambian
• Pero pueden haber particiones de diferentes
Traducción tamaños
• Requerimiento registro base y registro límite
con • dirección física = dirección virtual + registro base
• Registro base es cargado por el SO después de
cambio de contexto, y entonces un proceso se va
Particiones a ejecutar
• Ventajas
Fijas • Sencillo, cambio de contexto rápido
• Desventajas
• Fragmentación interna
• Partición mas grande de lo necesario (sobra
memoria que no puede utilizar otro proceso)
• Memoria física es dividida en particiones variables
Traducción • Tamaño de particiones varía dinámicamente
no preestablecidas como en caso de
particiones fijas
con • Requerimientos : registros base y límite
• Dirección física = dirección virtual + registro
Particiones base
• Registro límite se usa para protección
Variables
• Ventajas
• No hay fragmentación interna ( si sabemos
Traducción cuanto necesita proceso)
• Se asigna partición solo lo suficiente para
con contener proceso
• Problemas
Particiones • Fragmentación externa
• a medida que procesos de distinto
Variables tamaño entran y salen van quedando
porciones de memoria sin
posibilidades de ser reutilizada
¿Qué hacer con fragmentación?
partición 0 partición 0
partición 1 partición 1
• Swap out : Sacar partición 2
programa de memoria partición 2 partición 3
• recargar programas partición 3 partición 4
alrededor poniedolos
cercanos y generando
partición 4
huecos
• No muy eficiente
Paginación (Técnica actual)
• Para solucionar el problema de fragmentación externa dada con
particiones variables. Usar particiones fijas en memoria virtual y
física
Memoria Virtual
Página 0 Memoria Física
Página 1 Marco pág. 0
Marco pág. 1
Marco pág. N
Página N
• ¿Qué es?
• Es la Partición de la memoria en pequeños
pedazos del mismo tamaño (chunks) y división
de cada proceso en trozos del mismo tamaño
• Los trozos (chunks) de un proceso se llaman
páginas y los de la memoria se llaman
Paginación marcos de página (frames)
• El sistema operativo mantiene una tabla de
página para cada proceso – contiene la
ubicación del marco de página (frame) de
cada página del proceso – la dirección de
memoria consiste en un número de página y
un desplazamiento (offset) dentro de la
página
Antes de la paginación,
La principal ventaja de los sistemas debían
paginación sobre la poner programas en
segmentación de almacenamiento de
memoria es que permite forma contigua, lo que
al espacio de dirección causaba varios
física de un proceso ser problemas de
no contiguo. almacenamiento y
fragmentación.
Paginación
• Traduciendo direcciones virtuales
• Una dirección virtual tiene dos partes:
• Número de página virtual y offset (número de posiciones de memoria sumadas)
• Número de página virtual es un índice en tabla de páginas
• Entrada en tabla de página contiene número de marco de página
• Dirección física se traduce a:
• Número Marco de página:offset (número desplazamiento)
Tablas de Páginas
• Manejadas por el SO
• Mapea Número de Pagina Virtual a Número de Marco de Página
• Número de Página Virtual es índice en la tabla
• Existe una Entrada en la Tabla de Páginas por página en el espacio de
direccionamiento virtual
• Normalmente denominada como PTE (Page Table Entry)
Paginación
P=número de página
d=offset de página
f=marco
Offset
Tabla de página, Memoria Esquema Hardware de
física y lógica Paginación
Ventajas de la Paginación
• Fácil para asignar memoria física
• Memoria física se administra usando una lista de marcos de páginas libres
• Para asignar un marco de página, se saca de la lista
• Fragmentación externa no es un problema
• Cómo ?
• Fácil quitarle páginas a programas
• Páginas son del mismo tamaño
• Uso de bit válido para saber que páginas ha perdido el proceso
• Tamaño de páginas definido como múltiplos de tamaños de bloques de disco
• La principal ventaja de paginación sobre la segmentación de memoria es que
permite al espacio de dirección física de un proceso ser no contiguo.
Desventajas de Paginación
• Expone Fragmentación interna
• Proceso no puede usar memoria de marco de página que le sobra a otro proceso
• Referencia a memoria en 2 pasos
• Tabla de página y luego Memoria
• Solución, usar hardware como cache para acelerar referencias : Translation
Lookaside buffer (TLBs)
• Memoria requerida para mantener tablas de páginas puede ser grande
• Necesita una entrada en tabla de página por número de página virtual
Segmentación
• Paginación
• Vista de espacio de direccionamiento como arreglo de bytes (lineal)
• Usa tabla de página para mapear páginas virtuales a páginas físicas
• Terminología
• Página : página virtual
• Marco : página física
• Segmentación
• Dividir el espacio de direccionamiento en unidades lógicas
• Stack, código, heap, datos, procedimientos
• Una dirección virtual es [número segmento, offset]
Cuál es la idea?
• Más lógico
• Cada segmento asociado con contenido lógico
• Facilita compartición y reutilización
• Un segmento es una unidad que se puede compartir
• Extensión de la idea de particiones variables
• Un proceso utiliza un segmento (partición variable)
• Con segmentación un proceso tiene asociado un conjunto de segmentos
Soporte Hardware
• Tabla de segmentos
• Múltiple pares de registros base/límite uno por segmento
• Segmentos identificados por número de segmento
• Identificador se usa como índice a tabla de segmentos
• Dirección virtual [num. segmento, offset]
• Dirección física se obtiene sumando dirección base de segmento + offset
Ilustración Segmentación
Ejemplo de Segmentación, representación en la Organización del HW para segmentación
tabla de segmentos, y en la memoria física -
Ventajas y Desventajas
• Compartir: Más fácil y natural
• Problemas con fragmentación
• asignación de memoria contigua
• cuales deben ser los tamaños de los fragmentos para los diversos tipos de
requerimientos en el sistema?
• Qué hacer?
Combinar Segmentación con Paginación
(segmentación paginada)
Quienes
• Arquitectura x86 soporta los dos mecanismos
Usar segmentos para manejar unidades lógicas
• Segmentos de diversos tamaños en base a páginas
• Usar páginas para particionar segmentos
• Cada segmento tiene propia tabla de páginas ( en lugar de una tabla de
páginas por proceso de usuario)
• Luego asignación de memoria se simplifica a paginación
• Dirección virtual [num segmento, num página, offset]