Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

Administración de memoria
Administración de Memoria Virtual
Sistemas Operativos Gestión de Memoria.
SISTEMAS OPERATIVOS GESTION DE MEMORIA INTEGRANTES Lizeth Chandi
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Organización de la Memoria.
Introducción a los Sistemas Operativos Memoria Virtual
UNIDAD 2. ADMINISTRACION DE PROCESOS Y DEL PROCESADOR
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
ADMINISTRACIÓN DE MEMORIA
Robiro A. Asuaje L.23/08/20141 Organización de la Memoria SISTEMAS OPERATIVOS. Universidad Centro-Occidental “ Lisandro Alvarado ” Decanato de Ciencias.
Sistemas Operativos: El Libro Azul
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.
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
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.
Administración de Memoria Memoria Virtual
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.
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
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,
Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para.
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.
COMPONENTES DEL SISTEMA OPERATIVO.
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
Administrador de procesos
Gestión de Memoria.
Introducción a los SOs.
Teoría de Sistemas Operativos Administración de Archivos.
Tema 10: Gestión de Memoria
Estructura de los Sistemas Operativos
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
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
El Sistema Operativo es el software básico necesario para el funcionamiento de cualquier ordenador Los Sistemas Operativos están en continua evolución.
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.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
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.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
Transcripción de la presentación:

Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación

Conceptos Un programa debe ser cargado en memoria y asignado a un proceso para ser ejecutado. Cola de entrada – colección de procesos en disco esperando ser cargados en memoria para ser ejecutados. Los programas del usuario pasan por distintos pasos antes de ejecutarse.

Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto; se debe recompilar el código si cambia. Tiempo de carga: el compilador debe generar código reubicable. Tiempo de ejecución: la vinculación es demorada hasta la ejecución. Si el proceso puede ser movido durante su ejecución, se necesita hardware especial (p. ej. registro base y límite).

Etapas de un Programa del Usuario

Espacio de Direcciones Lógicas vs. Espacio de Direcciones Físicas EL concepto de espacio direcciones lógicas que se mapean a un espacio de direcciones físicas separadas es central para la administración de memoria. Dirección lógica – generada por la CPU; también conocida como dirección virtual. Dirección física – dirección utilizada por la unidad de memoria. Las direcciones lógicas y físicas son las mismas en la vinculación de tiempo de compilación y tiempo de carga; difieren en el esquema de tiempo de ejecución.

Unidad de Administración de Memoria( MMU )‏ Dispositivo de hardware que mapea direcciones virtuales a físicas. En la MMU, el valor del registro de re- ubicación es sumado a toda dirección generada por un proceso del usuario antes de ser enviada a memoria. El programa del usuario trabaja con direcciones lógicas; nunca ve las direcciones físicas reales.

Reubicación Dinámica Utilizando un Registro de Reubicación

Carga Dinámica La rutina no es cargada hasta que se invoca Mejor utilización del espacio de memoria; las rutinas que no se usan nunca se cargan. Útil cuando grandes cantidades de código se necesitan para manejar casos que ocurren infrecuentemente. No se requiere soporte especial del SO para implementar.

Enlace Dinámico El enlace se pospone hasta el tiempo de ejecución. Una pequeña pieza de código, stub, se usa para encontrar la rutina de librería apropiada. El stub se reemplaza a si mismo con la dirección de la rutina, y ejecuta la rutina. Los sistemas operativos necesitan verificar si la rutina está en la memoria del proceso. El enlace dinámico es particularmente útil para librerías.

Overlays Necesario cuando el proceso es más grande que la cantidad de memoria asignada a este. Mantiene en memoria las instrucciones y datos que son necesarios en determinado momento. Implementado por el usuario, no se necesita soporte del SO, el diseño de programas con overlays es complejo.

Overlays para un Ensamblador de 2 Pasadas

Swapping Un proceso puede ser sacado temporalmente de memoria a un dispositivo secundario, y luego ser traído a memoria para continuar la ejecución. Dispositivo secundario – discos rápidos suficientemente grandes para guardar las copias de imágenes de memoria de todos los usuarios; debe proveer acceso directo a dichas imágenes. Roll out, roll in – variante de swapping usada para planificadores por prioridad; los procesos de baja prioridad son desalojados de memoria para que procesos de mayor prioridad puedan ejecutar. Versiones modificas de swapping pueden encontrarse en varios sistemas, p. ej., UNIX, Linux, y Windows.

Esquema de Swapping

Asignación Continua La memoria principal generalmente está dividida en 2 particiones: SO residente, generalmente mantenido en memoria baja con el vector de interrupciones. Procesos del usuario mantenidos en memoria alta. Asignación con una sola partición Se utiliza un registro de reubicación para proteger los procesos de usuario entre si, y evitar que se modifique el código del SO. El registro de reubicación contiene el valor de la menor dirección física; el registro límite contiene el rango de direcciones lógicas – cada dirección lógica debe ser menor que el registro límite.

Soporte de Hardware para Registros de Reubicación y Límite

Asignación Continua (Cont.)‏ Asignación con particiones múltiples Hueco – bloque de memoria disponible; huecos de distinto tamaño están desparramados por la memoria. Cuando un proceso llega, se le asigna un hueco lo suficientemente grande para contenerlo. Los SO mantienen información acerca de: a) particiones asignadas b) particiones libres (hueco)‏ OS proceso 5 proceso 8 proceso 2 OS proceso 5 proceso 2 OS proceso 5 proceso 2 OS proceso 5 proceso 9 proceso 2 proceso 9 proceso 10

Problema de Asignación Dinámica Primer-ajuste: asigna el primer hueco que sea lo suficientemente grande. Mejor-ajuste: asigna el menor hueco que es suficientemente grande; debe inspeccionar la lista completa, a no ser que este ordenada por tamaño. Deja el menor espacio libre. Peor-ajuste: asigna el hueco más grande; también debe buscar en la lista. Deja el mayor espacio libre. Como satisfacer un pedido de tamaño n con una lista de huecos libres? Primer-ajuste y mejor-ajuste son mejores que peor-ajuste en términos de velocidad y utilización de espacio.

Fragmentación Fragmentación Externa – existe espacio para satisfacer un pedido pero no continuo. Fragmentación Interna – la memoria asignada es mayor que la pedida; esta diferencia es memoria interna de una partición, pero no usada. Reducción de fragmentación externa por compactación Mueve el contenido de memoria para ubicar toda la memoria libre junta en un gran bloque. La compactación es posible solo si la reubicación es dinámica, y en tiempo de ejecución. Problema de E/S Dejar trabajos en memoria mientras están efectuando E/S. Hacer E/S sólo en buffers del SO.

Compactación

Paginación El espacio de direcciones lógicas de un proceso puede no ser continuo; se le asigna a un proceso memoria física siempre que haya disponible. Divide la memoria física en bloques de tamaño fijo llamados marcos (frames, el tamaño es potencia de 2, entre 512 bytes y 8192 bytes). Divide la memoria lógica en bloques del mismo tamaño llamados páginas. Mantiene referencia de todos los marcos vacíos. Para ejecutar un programa de tamaño de n páginas, se necesita encontrar n marcos libres y cargar el programa. Se inicializa una tabla de páginas para traducir las direcciones lógicas a físicas. Fragmentación interna.

Esquema de Traducción de Direcciones Las direcciones generadas por la CPU se dividen en: Número de página (p) – usado como índice en una tabla de páginas que contiene la dirección base de cada página en la memoria física. Desplazamiento de página (d) – combinado con la dirección base para definir la dirección física enviada a la unidad de memoria.

Arquitectura de Traducción de Direcciones

Ejemplo de Paginación

Marcos Libres Antes de la asignación Después de la asignación

Implementación de la Tabla de Páginas La tabla es mantenida en memoria principal. Page-table base register (PTBR) apunta a la tabla de páginas. Page-table length register (PRLR) indica el tamaño de la tabla de páginas. En este esquema cada acceso a datos/instrucciones requiere 2 accesos a memoria. Uno para la tabla de páginas y otro para el dato/instrucción. El problema puede ser resuelto utilizando un cache de hardware especial de búsqueda rápida llamado memoria asociativa o translation look-aside buffers (TLBs)‏

Memoria Asociativa Memoria asociativa – búsqueda paralela Traducción de direcciones (P, D)‏ Si P está en un registro asociativo, obtiene el número de marco. Si no, obtiene el número de marco de la tabla de memoria principal.

Hardware de Paginación con TLB

Tiempo de Acceso Efectivo Búsqueda Asociativa =  unidades de tiempo Se asume que el tiempo de ciclo de memoria es 1 microsegundo. Tasa de aciertos – % de veces que un número de página se encuentra en registros asociativos; la tasa está asociada al número de registros asociativos. Tasa de acierto =  Tiempo de acceso efectivo (EAT)‏ EAT = (1 +  )  + (2 +  )(1 –  )‏ = 2 +  –  (si  y  EAT=1.25,  EAT=1.12)‏

Protección de Memoria Se implementa protección de memoria asociando un bit de protección a cada marco. Un bit valido-invalido es asociado a cada entrada de la tabla de páginas: “valido” indica que la página asociada está en el espacio lógico de direcciones del proceso, y entonces es una página válida. “invalido” indica que la página no está en el espacio de direcciones del proceso.

Bit de Valido (v) o Invalido (i) Bit en una Tabla de Páginas

Estructura de la Tabla de Páginas Paginación Jerárquica Tablas de Páginas Hasheadas Tablas de Páginas Invertidas

Tablas de Páginas Jerárquicas Separan el espacio de direcciones lógicas en múltiples tablas de páginas. Una técnica simple es una tabla de páginas de 2 niveles.

Ejemplo de Paginación de 2 Niveles Una dirección lógica (en una máquina de 32-bit con páginas de 4K) es dividida: un número de página es de 20 bits. el de desplazamiento es de 12 bits. Dado que la tabla de páginas es paginada, el número de página se divide en: un número de página de 10-bits. un desplazamiento de 10-bits. Entonces, una dirección lógica queda: número de páginadesplazamiento pipi p2p2 d 10 12

Esquema de Tabla de Página de 2 Niveles

Esquema de Traducción de Direcciones Esquema de traducción de direcciones para una arquitectura de 32 bits de paginación de 2 niveles.

Tabla de Páginas Hasheadas Común en espacios de direcciones mayor a 32 bits. El número de página virtual es hasheado en la tabla de páginas. Esta tabla de páginas contiene una lista de elementos hasheados en la misma ubicación. Los números de página virtuales son comparados en esta lista buscando por una que concuerde. Si se encuentra, se extrae el marco físico.

Tabla de Páginas Hasheada

Tabla de Páginas Invertidas Una entrada para cada página real de memoria. Una entrada consiste en la dirección virtual de la página almacenada, con información acerca del proceso que la posee. Minimiza la memoria que se necesita para guardar la tabla de páginas, pero incrementa el tiempo necesario para la búsqueda. Uso de una tabla hash para limitar la búsqueda a una entrada en la tabla de páginas.

Arquitectura de una Tabla de Páginas Invertidas

Páginas Compartidas Código compartido Una copia read-only (reentrante) de código compartido entre procesos (p. ej., editores de texto, compiladores, sistemas de ventanas). El código compartido debe aparecer el la misma ubicación en el espacio de direcciones lógicas de todos los procesos. Código y datos compartidos Cada proceso mantiene una copia separada de código y datos. Las páginas del código y datos privados pueden estar en cualquier lugar del espacio de direcciones lógico.

Ejemplo de Páginas Compartidas

Segmentación Esquema de manejo de memoria que soporta la visión del usuario de la memoria. Un programa es una colección de segmentos. Un segmento es una unidad lógica como: program principal, procedimiento, función, variables locales, variables globales, stack, tabla de símbolos

Vista del Usuario de un Programa

Vista Lógica de la Segmentación espacio de usuarioespacio de memoria física

Arquitectura de Segmentación Las direcciones lógicas son formadas por una tupla:, Tabla de Segmentos – mapea direcciones físicas bi- dimensionales; cada entrada de la tabla tiene: base – contiene la dirección física de comienzo donde residen los segmentos. límite – especifica la longitud del segmento. Segment-table base register (STBR) apunta a la ubicación de la tabla de segmentos en memoria. Segment-table length register (STLR) indica el número de segmentos usados por un programa; el número de segmento s es válido si s < STLR.

Arquitectura de Segmentación (Cont.)‏ Reubicación. dinámica por tabla de segmento Compartimiento. segmentos compratidos mismo número de segmento Ubicación. primer ajuste/mejor ajuste fragmentación externa

Arquitectura de Segmentación (Cont.)‏ Protección. Con cada entrada en la tabla de segmentos se asocia: bit de validación = 0  segmento inválido permisos de lectura/escritura/ejecución Bits de protección asociados con los segmentos; el compartimiento de código sucede a nivel de segmento. Dado que los segmentos tienen distinto tamaño, es un problema de asignación dinámica.

Hardware de Segmentación

Ejemplo de Segmentación

Segmentos Compartidos

Segmentación con Paginación – MULTICS El sistema MULTICS soluciona el problema de fragmentación externa y altos tiempos de búsqueda con paginación de segmentos. La solución difiere de la segmentación pura porque la entrada en la tabla de segmentos no contiene la dirección base del segmento, sino la dirección base de la tabla de páginas para el segmento.

Esquema de Traducción de Direcciones en MULTICS

Segmentación con Paginación – Intel 386 Como se muestra en el siguiente diagrama, el Intel 386 usa segmentación con paginación para el manejo de memoria con con un esquema de paginación de 2 niveles.

Traducción de Direcciones en el Intel 30386