Sistemas Operativos
8 Memoria Principal
Nota
•
El texto guía es: Operating System Concepts, Eight Edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne•
Estas PPT están basadas en las PPT originales que el autor del texto guía mantiene en: http://www.os-book.com/Copyright Note
The slides below are copyright Silberschatz, Galvin and Gagne, 2008. The slides are authorized for personal use, and for use in conjunction with a course for which Operating System Concepts is the prescribed text. Instructors are free to modify the slides to their taste, as long as the modified slides acknowledge the source and the fact that they have been modified. Paper copies of the slides may be sold strictly at the price of reproduction, to students of courses where the book is the prescribed text. Any use that differs from the above, and any for profit sale of the slides (in any form) requires the consent of the copyright owners; contact Avi Silberschatz ([email protected]) to obtain the copyright owners consent.
Temario
1. Antecedentes 2. Swapping 3. Asignación contigua 4. Paginación 5. La Tabla de Página... Temario
6. Segmentación
Objetivos
•
Proporcionar una descripción detallada de las distintas maneras de organizar elhardware de memoria.
•
Discutir distintas técnicas de administración de memoria, incluidas la paginación ysegmentación.
•
Ejemplificar con el Pentium que soporta1 Antecedentes
•
Para poder ser ejecutados, los programas deben ser traídos del disco a la memoria y ubicados dentro de un proceso.•
La memoria principal y los registros de propósito general son los únicosalmacenamientos que la CPU puede accesar directamente.
•
El tiempo de acceso a un registro es un pulso de reloj (o menos).... Antecedentes
•
El acceso a la memoria principal puedetomar varios ciclos de reloj.
•
La memoria caché se ubica entre la memoria principal y la CPU.•
Se requiere protejer la memoria paraRegistros Base y Límite
•
El espacio lógico direccionable por un proceso está definido por el par de registros base y límite.Hadware de protección
CPU ≥ < si no base base+limit si no addressing errorVinculamiento de instrucciones
y datos en memoria
•
La vinculación de direcciones deinstrucciones y datos a memoria, puede ocurrir en tres etapas distintas:
•
En tiempo de compilación: Si la región dememoria se conoce a priori, se puede generar el
llamado código absoluto. Si la región cambia, se debe recompilar.
•
En tiempo de carga: Se debe generar códigorelocalizable si la región de memoria no se conoce en tiempo de compilación.
...Vinculamiento de
instrucciones
•
En tiempo de ejecución: La vinculación se postergahasta el tiempo de ejecución si el proceso puede moverse de un segmento de memoria a otro. Se necesita soporte de hardware para los mapas de direcciones (registros base y límite)
Procesamiento multietapa
de un programa usuario
Espacio de Direcciones
Físico y Lógico
•
El concepto de un espacio lógico, limitado aun espacio físico separado es central para una gestión apropiada de memoria.
•
Direcciones lógicas: son generadas por la CPU. También se denomina espacio virtual de direcciones.•
Direcciones físicas: son las direcciones vistas por la unidad de memoria.... Espacio
•
Las direcciones físicas y lógicas son lasmismas en los esquemas de vinculación de tiempo de compilación y tiempo de carga.
•
Las direcciones físicas y lógicas difieren enel esquema de vinculación en tiempo de ejecución
Memory-Management
Unit (MMU)
•
La MMU es un dispositivo de HW quetransforma direcciones virtuales en direcciones físicas.
•
A cada dirección generada por el proceso usuario se le suma el valor del registro de relocalización.•
Se logra que un programa usuario se relacione siempre sólo con direcciones lógicas.HW para relocalización
Dinámica
Carga Dinámica
•
Una rutina no se carga hasta que esinvocada.
•
Se aprovecha mejor el espacio de memoria. Rutinas no utilizadas nunca se cargan.•
Muy útil cuando grandes cantidades decódigo se necesitan para manejar situaciones que ocurren en forma poco frecuente
... Carga Dinámica
•
No se necesita soporte del SO. SeLigado Dinámico
(Dynamic Linking)
•
Se pospone el ligado hasta tiempo de ejecución.•
Se utiliza una pequeña pieza de código llamada Stub para ubicar la rutina apropiada residente en memoria.•
El SO necesita verificar si la rutina está en el espacio de direcciones del proceso.•
Es muy útil para bibliotecas.•
También se conoce bajo el nombre de “shared libraries” (DLL en Windows)2 Swapping
•
Un proceso puede ser intercambiado desde la memoria principal al disco (backing store), yposteriormente nuevamente ser llevado del disco a la memoria principal. Este proceso se denomina swapping.
•
Memoria de apoyo (Backing store): es un discorápido de tamaño suficiente para almacenar las copias de imágenes de memoria de los procesos usuarios. También debe proporcionar acceso
.. Swapping
•
Roll out, roll in: es una variante de swapping que se utiliza para algoritmos de itineración basados en prioridades. Se sacan de memoria procesos con prioridad baja y se ingresan y ejecutan procesos con prioridad más alta.•
La mayor parte del tiempo de swapping es transferencia. El tiempo de transferencia es proporcional al tamaño de las imágenes de memoria.... Swapping
•
Versiones modificadas de swapping se encuentran en la mayoría de los SO actuales (UNIX, Linux, Windows).•
El sistema mantiene una cola ready de los procesos listos para ser ejecutados cuyas imágenes de memoria están en disco.•
Problema de I/O que genera el Swapping: si el proceso se sacó de memoria, ¿dónde almacenar los bloquestransferidos?. Soluciones:
•
Si hay I/O, dejar el proceso en memoriaVisión esquemática de
Swapping
3 Asignación contigua
•
Usualmente la memoria principal se divideen dos partes:
•
El SO residente, usualmente en la parte baja que comprende el vector de interrupción.•
Procesos usuarios, en la parte alta de la memoria... Asignación contigua
•
Se utilizan registros de relocalización paraproteger a los procesos entre si y proteger el SO.
•
El registro Base apunte a la dirección más baja•
El registro Límite contiene el rango dedirecciones lógicas. Cada espacio lógico al menos debe tener un registro Límite.
Asignación por
múltiples particiones
•
Agujeros: Bloques de memoria disponible. Agujeros de varios tamaños están dispersos por toda la memoria.•
Cuando llega un proceso, se le asigna memoria desde un agujero lo suficientemente grandecomo para contenerlo.
•
El SO mantiene información sobre particiones asignadas y particiones libres (agujeros)Asignación dinámica
OS process 5 process 8 process 2 OS process 5 process 2 OS process 5 process 2 OS process 5 process 9 process 2 process 9 process 10Problema de la
asignación dinámica
•
¿Cómo satisfacer la solicitud de memoria de tamaño n desde la lista de agujeros libres?•
First-fit: Asigna el primer agujero de tamaño suficiente que encuentra.•
Best-fit: Asigna el agujero más pequeño que tiene eltamaño suficiente para contenerlo. Se debe recorrer la lista completa.
•
Worst-fit: asigna el agujero más grande. También debe recorrer la lista completa. Deja el agujero más grande.Discusión
•
First-fit y Best-fit tienen un mejorcomportamiento que worst-fit en términod de velocidad y utilización de memoria.
Fragmentación
•
Fragmentación externa: existe espacio de memoria suficiente para satisfacer unasolicitud, pero el espacio no es contiguo.
•
Fragmentación interna: la memoria asignada es levemente superior a lo solicitado. Ladiferencia que se genera es interna a la partición y no puede ser utilizada.
Compactación
•
La fragmentación externa se puede reducir por compactación.•
Se mueven bloques para dejar juntos los agujeros libres en un solo gran bloque.•
Sólo es posible si la relocalización es dinámica y se realiza en tiempo de ejecución•
Regla del 50%: Aún optimizando, dado Nbloques asignados, se pierden 0.5 N bloques por fragmentación.
4 Paginación
•
El espacio lógico de un proceso puede ser no contiguo. Siempre se asigna memoria física a un proceso cuando hay disponibilidadindependiente donde esté.
•
La memoria física se divide en en bloque detamaño fijo llamados marcos (frames). El tamaño es potencia de dos y varía entre 512B y 8KB.
•
El espacio lógico se divide en bloques de tamaño fijo llamados páginas.... Paginación
•
Es necesario llevar un registro de todos los frames libres.•
Para correr un programa de n páginas, necesitamos encontrar n frames libres y cargar el programa.•
Se inicializa una estructura llamada Tabla de Pagina que ttraslada direcciones lógicas en físicas.•
Se elimina la fragmentación externa, pero se genera fragmentación interna.Conversión de
direcciones
•
Una dirección lógica generada por la CPUse divide en:
•
Número de página (p): se usa para indexar la tabla de página que contiene la dirección base de cada página en memoria física.•
Offset de página (d): junto con la dirección base, define la dirección física de la unidad de memoria.... Conversión
•
El espacio lógico es de 2m y el tamaño de lapágina es 2n
page number page offset
p d
Hardware de
Paginación
Modelos de memoria
física y lógica
Ejemplo de Paginación
Frames libres
Implementación de la
Tabla de Página
•
La Tabla de Página se guarda en memoriaprincipal. Dos estructuras permiten su acceso:
•
Page-table base register (PTBR): apunta a la Tabla de Página.•
Page-table length register (PTLR): indica el tamaño de la Tabla.•
En este esquema cada dirección (dato/ instrucción) requiere dos accesos dememoria. Uno para la T. de P. y otro para el dato/instrucción.
... Implementación
•
El problema de dos accesos se puede resolver usando un hardware especial llamado memoria (caché) asociativa o translation look-asidebuffers (TLBs).
•
Algunos TLB almacenan identificadores en cada una de sus entradas llamados address-spaceidentifiers (ASIDs) que identifican
unívocamente a cada proceso proporcionando protección de su espacio de direcciones.
Memoria Asociativa
•
Permite búsquedas paralelas.•
Convertir (p,d):•
Si p está en un registro asociativo, se obtiene el número de frame.•
En caso contrario se obtiene de la Tabla de Página que está en memoriaHW de Paginación
usando TLB
Tiempo de acceso
efectivo
•
Búsqueda asociativa: ε unidades de tiempo•
Ciclo de memoria: 1 μseg•
Razón de éxito: Porcentaje de veces que la página está en los registros asociativos. Esta razón estárelacionada con el número de registros asociativos. Razón de éxito= α
•
Tiempo de Acceso Efectivo (TAE)T AE = (1 + �)α + (2 + �)(1 − α) = 2 + � − α
Protección de Memoria
•
Es posible proteger la memoriaimplementando un bit de protección a cada frame.
•
Adicionalmente en cada entrada de la Tabla se incorpora un bit Valido-Inválido:•
Válido: indica que la página asociada está en el espacio lógico del proceso y por lo tanto es legal.•
Inválido: la página no está en el espacio lógico del procesoBit Válido (v) e Inválido (i)
en la Tabla de Página
Páginas compartidas
•
Código compartido•
Una copia de código (read-only) (reentrante) compartido entre los procesos.•
El código compartido debe aparecer en alguna localización del espacio lógico de todos los procesos•
Código y datos privados•
Cada proceso mantiene una copia separada de código y datos•
Las paginas de código y datos privados pueden aparecer enEjemplo de Páginas
compartidas
5 Estructura de la Tabla
de Página
•
La mayoría de los sistemas computacionales actuales soportan un gran espacio lógico de direcciones (de 232B a 264B).•
La consecuencia es una Tabla de Página muy grande. No se podría asignar la Tabla de Página en direcciones contiguas de memoria.•
Las técnicas para soportar grandes T. de P.:•
Paginación Jerárquica•
Utilización de HashTablas de Páginas
jerárquicas
•
El espacio lógico se descompone enmúltiples tablas de páginas.
•
Un esquema simple considera sólo dosEsquema con dos
niveles
Ejemplo con dos niveles
•
El espacio lógico de una máquina de 32bcon páginas de 1KB se divide en:
•
Un número de página de 20b•
Un offset de 12b•
Como la T. de P. está paginada, el número depágina es nuevamente dividido en:
•
Un número de página de 10b... Ejemplo
•
Entonces, la dirección lógica tiene lasiguiente estructura:
•
Donde p1 es un índice a la página externa,y p2 es el desplazamiento dentro de la página de la tabla externa.
page number page offset
pi p2 d
Esquema de paginación
de dos y tres niveles
Dos niveles
Hash en Tablas de
Página
•
Para sistemas computacionales conespacios de direcciones de 64b, la
paginación con dos niveles, no resulta apropiado.
•
Tamaño de página= 4kB (212), ¡T. de P. con252 entradas!
... Hash
•
Es un método común cuando el espacio dedirecciones es mayor a 32b
•
Se aplica una función de hash al número de la página virtual. El resultado del hash indexa una tabla que contiene una lista enlazada deelementos.
•
Se busca un calce entre el número de página con entradas de la lista enlazada. Si hay calce, el frame físico se extrae.Esquema de T. de P. con
Hash
Tabla de Página
Invertida
•
Una entrada para cada página real de memoria.•
Cada entrada consiste en: la dirección virtual de la página junto con la información delproceso (pid) al cual pertenece la página.
•
Se disminuye el espacio para almacenar cada T. de P., pero aumenta el tiempo de búsqueda en la tabla.Esquema de Tabla de
Página Invertida
6 Segmentación
•
La Segmentación soporta la visión de la memoria que tienen los procesos usuarios.•
La idea principal es que un programa es un conjunto de segmentos.•
Un segmento es una unidad lógica tal como:main procedure function método objeto variables
locales y globales
Visión lógica de la
segmentación
1 3 2 4 1 4 2 3Arquitectura de
Segmentación
•
La dirección lógica es una 2-tupla:<Nº segmento, offset>
•
Tabla de Segmentos: hace unacorrespondencia de la dirección física de dos dimensiones. Cada entrada tiene:
•
base: dirección inicial del segmento en memoria.... Arquitectura
•
Segment-table base register (STBR): apunta a la ubicación de la tabla de segmento en memoria.•
Segment-table length register (STLR): indica el número de segmentos usados por elprograma.
... Arquitectura
•
Mecanismo de protección: cada entrada de la T. de S. tiene asociado:• bit válido: 0 si el segmento es ilegal • previlegios read, write execute
•
Los bits de protección están asociados alsegmento. También compartir código ocurre a nivel de segmento.
•
Ya que los segmentos son de tamaño variable, la asignación de memoria es un problema deEjemplo de
segmentación
7 Ejemplo: Pentuim
Intel
•
Soporta segmentación y segmentación conpaginación.
•
La CPU genera la dirección lógica. Estadirección se transforma en direcciones
lineales en la MMU.
•
Las direcciones lineales alimentan la unidadde paginación que a su vez genera
Conversión de direcciones lógicas a físicas
•
Segmentación‣
Los segmentos pueden llegar hasta 4GB‣
El número máximo de segmentos es de 16K‣
El espacio lógico se divide en dos partes:-
8K segmentos: privados al proceso (LDT: Local Description Table)-
8K segmentos: compartidos entre todos los procesos GTD: Global Description Tabla)... Conversión
The logical address is a pair <selector, offset>
g p s offset selector - s: número de segmento - g: indica si el segmento es GTD o LTD - p: protección
Segmentación en
Pentium
Paginación en Pentium
Los tamaños de página sólo pueden ser de 4KB o 4MB. Para páginas de 4KB el Pentium paginación en dos
niveles dividiendo el espacio lógico de 32b en:
p2 d
p1
page number page offset
Arquitectura de
Paginación
Linear address
Una entrada en el directorio de
páginas indica que el tamaño de la página es de 4KB o 4MB