Administración de Memoria Memoria Virtual

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

GESTION DE MEMORIA.
III - Gestión de memoria
Administración de memoria
Administración de Memoria
Administración de Memoria Virtual
Administración Memoria
Sistemas Operativos Gestión de Memoria.
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Introducción a los Sistemas Operativos Memoria Virtual
Implementación de archivos
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
ADMINISTRACIÓN DE MEMORIA
Arquitectura de Conjunto de Instrucciones (ISA)
El propósito del almacenamiento es guardar datos que la computadora no esté usando. El almacenamiento tiene tres ventajas sobre la memoria: Hay más espacio.
Robiro A. Asuaje L.23/08/20141 Organización de la Memoria SISTEMAS OPERATIVOS. Universidad Centro-Occidental “ Lisandro Alvarado ” Decanato de Ciencias.
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Direcciones físicas y direcciones virtuales (lógicas)
Paginación-Segmentación Fundamentos Translación de Direcciones Tabla de páginas Segmentación Emely Arráiz Ene-Mar 08.
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Tema 10: Gestión de Memoria
Administración de memoria
Gestor de memoria.
PAGINACIÓN Y SEGMENTACIÓN
El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones que le indiquen cómo utilizar los recursos.
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
Gestión de Memoria.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Gestión de Memoria.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Unidad 2 – Gestión de Procesos
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
3.2.1 Administración de almacenamiento
Gestión de memoria Rina Arauz.
Elementos y tipos de sistemas operativos
Arquitectura de Computadores I
Memoria Virtual Msc. Rina Arauz.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
Arquitectura de Computadores Clase 21 Memoria Virtual IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Estructura del sistema operativo
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Sistemas de archivos. Sistemas de archivos 2 Objetivo del SdA  Ocultar al usuario los detalles relativos al almacenamiento de información en dispositivos.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Administración de Memoria Memoria Virtual Cecilia Hernández 2007-1

Administración de Memoria Objetivos de la Administración de Memoria Proveer una abstracción simple de programación Proveer aislamiento entre procesos Asignar memoria (limitada) a procesos que la requieren maximizando el rendimiento, productividad y minimizando sobrecarga (overhead) Mecanismos Memoria física versus virtual Administración de tablas de páginas y segmentación Algoritmos de reemplazamiento de páginas

Memoria Virtual Abstracción básica que proporciona SO para la administración de memoria 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 disponible físicamente Posible porque muchos programas no necesitan todo el código o datos al mismo tiempo Por ejemplo, datos en una rama condicional 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 cont La implementación de Memoria virtual requiere apoyo del hardware MMUs, TLBs, tablas de páginas

Historia Sistemas Batch Sistemas Multiprogramados Programas usaban memoria física directamente OS cargaba trabajo, lo ejecutaba y lo descargaba Sistemas Multiprogramados Múltiples procesos coexistían en memoria al mismo tiempo Procesos usaban CPU y dispositivos I/O simultáneamente 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 Swap in : de disco a memoria Swap out : de memoria a disco

Direcciones Virtuales Para facilitar el manejo de memoria de múltiples procesos, procesos manejan memoria virtual Direcciones virtuales son independientes de las direcciones de memoria física (donde realmente código y datos están) SO determina ubicación de memoria física Las instrucciones con las cuales trabaja la CPU usan direcciones virtuales punteros, argumentos de load/store, PC, etc Traducción de direcciones virtuales a físicas se realiza por hardware con ayuda del SO

Direcciones Virtuales cont El conjunto de direcciones virtuales que un proceso puede direccionar corresponde a su espacio de direccionamiento Existen muchos mecanismos para la traducción de direcciones virtuales a físicas Particiones fijas Particiones variables Paginación (técnica moderna) Segmentación (técnica moderna) Paginación y segmentación

Traducción con Particiones Fijas 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 tamaños Hardware requerido: registro base y registro límite 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 a ejecutar Como se asegura la protección? Si (dirección física > base + limite) entonces error Ventajas 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) Fragmentación externa Caso en que dos particiones disponibles pero ambas muy pequeñas para contener un proceso mas grande Tamaño de la partición (cuál debería ser?)

Particiones fijas Registro base Registro límite Partición 0 2K 6K 8K 12K Registro base Registro límite Partición 0 2K (tamaño P2) Base de P2: 6K Partición 1 Si Partición 2 + offset < dirección virtual viene de CPU No Partición 3 Error de direccionamiento Memoria física

Traducción con Particiones Variables Memoria física es dividida en particiones variables Tamaño de particiones varía dinámicamente no preestablecidas como en caso de particiones fijas Requerimientos Hardware: registros base y límite Dirección física = dirección virtual + registro base Registro límite se usa para protección if (dirección física < registro limite) then dirección física = dirección virtual + registro base Else Error de direccionamiento Registro base : contiene valor de la dirección física menor posible Registro límite : contiene mayor rango de direcciones virtuales

Traducción con Particiones Variables Registro base Registro límite Partición 0 Tamaño de P2 Partición 1 Si Partición 2 + offset < dirección virtual viene de CPU No Partición 3 Error de direccionamiento Memoria física

Traducción con Particiones Variables cont Ventajas No hay fragmentación interna ( si sabemos cuanto necesita proceso) Asignar partición solo lo suficiente para contener proceso Problemas Fragmentación externa a medida que procesos de distinto tamaño entran y salen van quedando porciones de memoria sin posibilidades de ser reutilizada

Qué hacer con fragmentación? Swap out : Sacar programa de memoria recargar programas alrededor poniedolos cercanos y generando huecos No muy eficiente partición 0 partición 0 partición 1 partición 1 partición 2 partición 2 partición 3 partición 4 partición 3 partición 4

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

Visión del usuario Procesos ven memoria como un espacio contiguo de 0 a M En realidad la memoria física esta desparramada Cada página virtual se mapea a una página real (marco de página) que esta en cualquier parte en memoria física Mapeo es invisible al programa Protección esta dada porque un programa no puede referenciar memoria que esta fuera de su espacio de direccionamiento virtual Si dos procesos tienen la misma dirección virtual su mapeo a memoria física es distinta para cada proceso

Paginación Traduciendo direcciones virtuales Una dirección virtual tiene dos partes: Número de página virtual y offset 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

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)

Ilustración Paginación dirección virtual npv offset Marco Pag 0 Marco Pag 1 Marco Pág 2 Marco Pag 3 nmp offset Marco Pag 4 . dirección física nmp npv: Num. página virtual nmp: Num. marco página Marco Pag N

Ejemplo de Paginación Páginas de 4KB (4096 bytes, 212 bytes) Asumir direcciones de 32 bits Páginas de 4KB (4096 bytes, 212 bytes) Número de páginas virtuales de 20 bits, offset es de 12 bits (220 posibles páginas virtuales) Traducir la dirección virtual 0x13325328 (representación Hexa) Número Página Virtual : 0x13325, offset 0x328 Asumir que en tabla de páginas, entrada direccionada por 0x13325 es 0x03876 (Número de Marco de Página) 0x13325 se mapea a 0x03876 Dirección de memoria física : 0x03876328

Entradas de Tablas de Páginas (PTE) Estructura de cada entrada en la tabla de páginas Usualmente mas que solo el número de marco de página 1 1 1 2 20 V R M Prot Marco de pagina V : Bit válido. indica si página es válida R : Bit de Referencia se setea cuando página ha sido leída o escrito M : Dirty bit, es seteado cuando la página ha sido escrita Prot : Bits de protección de Lectura, Escritura, Ejecució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

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

Desventajas de Paginación cont Direccionamiento virtual de 32 bits, tamaño página de 4KB, entonces Se necesitan 220 entradas = 1.048.576 Entradas Si se tiene 4 bytes/Entrada, entonces se necesitan 4MB por tabla de páginas En general SO tiene tablas de páginas separadas por proceso Con 25 procesos en el sistema, entonces 100MB en tablas de páginas Solución a este gran uso de memoria solo para tablas de páginas Paginar las tablas de páginas

Segmentación Paginación Segmentación Vista de espacio de direccionamiento como arreglo de bytes (lineal) Divide espacio en páginas de igual tamaño (ejemplo 4KB) 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 Facilita compartición y reutilización 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 Tabla de segmentos Memoria física limit base segment 0 Num.segmento offset segment 1 Dir virtual segment 2 SI <? + segment 3 segment 4 Error de protección base offset

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 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]

Linux Un segmento de código para kernel, un segmento para datos Un segmento de código para usurio, un segmento para datos de usuario N segmentos de estado para N tareas (almacena estado para cambio de contexto) Una “tabla de segmentos de descriptores local” Todos los segmentos son paginados http://www.ibm.com/developerworks/linux/library/l-memmod/