Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mdulo 8
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur
Intercambio (Swapping)
Alocacin Contigua Paginado Estructura de la Tabla de Pginas Segmentacin Ejemplo: Pentium de Intel
JRA 2009
Objetivos
Proveer con descripcin detallada distintas formas
JRA 2009
Base
El programa debe ser trado del disco a la memoria y ubicado dentro de un proceso para ser corrido. La memoria principal y los registros son las nicas unidades de almacenaje accedidas directamente por la CPU. El acceso a los registros se hace en un pulso de reloj de CPU o menos. La memoria principal puede tomar muchos ciclos. El Cach se ubica entre la memoria principal y los registros de CPU. Para asegurar una correcta operacin se requiere cierta proteccin de memoria.
JRA 2009
Gestin de la memoria
Subdividir la memoria para acomodar mltiples procesos Es necesario asignar la memoria para asegurar una
JRA 2009
El programador no sabe en qu parte de la memoria principal se situar el programa cuando se ejecute Mientras el programa se est ejecutando, ste puede llevarse al disco y traerse de nuevo a la memoria principal en un rea diferente (reubicado) Deben traducirse las referencias de memoria encontradas en el cdigo del programa en direcciones de memoria fsicas
JRA 2009
Programa
Instrucciones de salto
Datos
Referencia de datos
Pila
JRA 2009
Los procesos no deberan ser capaces de referenciar sin permiso posiciones de memoria principal de otro proceso
Es imposible comprobar las direcciones absolutas en el tiempo de compilacin Deben comprobarse en el tiempo de ejecucin Es el procesador (hardware), en lugar del sistema operativo, el que debe satisfacer el requisito de proteccin de memoria. El sistema operativo no puede anticipar todas las referencias de memoria que un programa har
JRA 2009
Permite a varios procesos acceder a la misma porcin de memoria principal Es mejor permitir que cada proceso pueda acceder a la misma copia del programa en lugar de tener su propia copia separada
JRA 2009
Los programas estn escritos en mdulos Los mdulos se pueden escribir y compilar independientemente Se pueden proporcionar diferentes grados de proteccin a los mdulos (slo lectura, slo ejecucin) Se pueden compartir mdulos entre los procesos
JRA 2009
La memoria principal disponible para un programa ms sus datos podra ser insuficiente
La
JRA 2009
es conocida a priori, puede ser generado cdigo absoluto; debe recompilar si la direccin de comienzo cambia. Tiempo de Carga: Debe generar cdigo reubicable si la locacin de memoria no es conocida en tiempo de compilacin. Tiempo de Ejecucin: El mapeo es retrasado hasta el momento de corrida, el proceso puede ser movido durante su ejecucin de un segmento de memoria a otro. Necesita soporte de hardware para el mapeo de las direcciones (p.e., registros base - lmite).
JRA 2009 Sistemas Operativos Administracin de Memoria
Carga Dinmica
Las rutinas no son cargadas hasta que son llamadas. Mejor utilizacin del espacio de memoria; las rutinas no
JRA 2009
Enlace Dinmico
El enlace es pospuesto hasta el tiempo de ejecucin. Se usan pequeos pedazos de cdigo, stub, para
rutina y la ejecuta.
El sistema operativo necesita verificar si la rutina est
JRA 2009
Mapeo de Direcciones
tiempo carga
Mdulo Carga Imagen Ejecutable
Compilador
Linker
Cargador
Libreras Objeto
Libreras Sistema
Libreras Dinmicas
JRA 2009
Direccin Lgicas generadas por la CPU; tambin llamadas direcciones virtuales. Direccin Fsica direccin vista por la unidad de memoria.
tiempo de compilacin y en los esquemas de mapeo de direcciones en tiempo de carga; las direcciones lgicas (virtuales) y fsicas difieren en el esquema de mapeo de direcciones en tiempo de ejecucin.
JRA 2009 Sistemas Operativos Administracin de Memoria
locacin es agregado a cada direccin generada por el proceso del usuario en el momento que es presentada a la memoria.
Los programas de usuario ven direcciones lgicas,
JRA 2009
registro relocacin
12000
+
13352
direccin fsica
unidad de memoria
JRA 2009
Intercambio (Swapping)
Un proceso puede ser intercambiado (swapped) temporaria-
mente fuera de la memoria a un almacenamiento de respaldo (backing store), y luego ser vuelto a la misma para continuar su ejecucin.
Backing store espacio en disco lo suficientemente grande
para acomodar copias de todas las imgenes de memoria de todos los usuarios, debe proveer acceso directo a todas estas imgenes de memoria. Roll out, roll in variante del intercambio usado en algoritmos de planificacin basados en prioridades; procesos con baja prioridad son intercambiados con procesos de alta prioridad que pueden ser cargados y ejecutados. La mayor parte del tiempo de intercambio es tiempo de transferencia y es directamente proporcional a la cantidad de memoria intercambiada.
JRA 2009 Sistemas Operativos Administracin de Memoria
swap in
JRA 2009
10
Alocacin Contigua
La memoria principal se divide, usualmente en dos
particiones: Parte residente del sistema operativo, generalmente en memoria baja con el vector de interrupciones. Los procesos de usuario se mantienen en la parte alta de la memoria. Alocacin en particin simple Se usa un esquema de registro de relocacin para proteger los procesos de usuario uno de otro, y cambio en el cdigo y datos del SO. El registro de relocacin contiene el valor de la direccin fsica mas pequea; el registro lmite contiene el rango de las direcciones lgicas cada direccin lgica debe ser menor que el registro lmite.
JRA 2009 Sistemas Operativos Administracin de Memoria
Sistema
base
Proceso Usuario 1
lmite
Proceso Usuario 2
JRA 2009
11
Agujero bloque de memoria disponible; hay agujeros de variados tamaos esparcidos por la memoria. Cuando un proceso llega, es alocado en memoria en un agujero suficientemente grande para alojarlo. El SO mantiene informacin sobre: a) particiones alojadas b) particiones libre (agujero)
SO
proceso 5 proceso 8 proceso 2 proceso 2 proceso 2
SO SO SO SO SO SO
proceso 5
proceso 5 proceso 9
JRA 2009
grande. Prximo lugar: Aloca en el prximo lugar luego de haber usado el primero. Mejor lugar: Aloca en el agujero mas chico que lo puede alojar; debe buscar en la lista completa, salvo que sea ordenada por tamao. Produce el agujero restante mas chico. Peor lugar: Aloca el agujero mas grande; debe buscar en la lista completa. Produce el agujero restante mas grande.
El primer lugar y el mejor lugar son mejores que el peor lugar en trminos de velocidad y utilizacin del almacenamiento.
JRA 2009 Sistemas Operativos Administracin de Memoria
12
Primer-ajuste
(a) Antes
(b) Despus
bloque de tamao 2U
Si un requerimiento de tamao s tal que 2U-1 < s <= 2U,
El proceso continua hasta que es generado el bloque mas pequeo mayor o igual que s.
JRA 2009
13
JRA 2009
JRA 2009
14
Fragmentacin
Fragmentacin Externa existe espacio de memoria para
satisfacer una demanda, pero no es contiguo. Fragmentacin Interna la memoria ocupada puede ser ligeramentemas grande que la demandada; esta diferencia de tamao es memoria interna de la particin, pero no es usada. Se reduce la fragmentacin externa por compactacin Mueva el contenido de memoria de modo de dejar toda la memoria libre en un solo bloque.
La compactacin es posible solo si la relocacin es dinmica, y es hecha en tiempo de ejecucin. Problema de E/S Dejar el job en memoria mientras est involucrado en una E/S. Hacer E/S solo en los buffers del SO.
JRA 2009 Sistemas Operativos Administracin de Memoria
Fragmentacin (Cont.)
P1
P2
P3
JRA 2009
15
Fragmentacin (Cont.)
P1 P4
P5
P3
JRA 2009
Fragmentacin (Cont.)
P1
P5
P3
Fragmentacin Externa
P6
JRA 2009
16
Paginado
El espacio de direcciones puede no ser contiguo; el
JRA 2009
proceso es alojado en la memoria fsica donde haya lugar. Se divide a la memoria fsica en bloques de tamao fijo llamados cuadros ( el tamao es potencia de 2, entre 512 bytes y 8192 bytes). Se divide a la memoria lgica en bloques de tamao similar llamados pginas. Se guarda informacin de todos los cuadros libres. Para correr un programa de n pginas, se necesita encontrar n cuadros libres y cargar el programa. Se establece una tabla de pginas para traducir las direcciones lgicas a fsicas. Fragmentacin interna.
Sistemas Operativos Administracin de Memoria
Nmero de pgina (p) usado como un ndice en la tabla de pginas la cual contiene la direccin base de cada pgina en la memoria fsica. Desplazamiento en la pgina (d) combinado con la direccin base para definir direccin fsica de memoria que es enviada a la unidad de memoria.
num pagina desplazamiento p m-n d n
JRA 2009
17
Hardware de Paginado
direccin lgica
direccin fsica
tabla de pginas
memoria lgica
JRA 2009
memoria fsica
JRA 2009
18
Ejemplo de Paginado
memoria fsica Memoria de memory 32 bytesand y pginas 4bytes 32-byte 4-byte de pages
JRA 2009 Sistemas Operativos Administracin de Memoria
Cuadros Libres
19
la tabla de pginas.
El registro de longitud de la tabla de pginas (PRLR)
indica el tamao de la tabla de pginas. En este esquema cada acceso a instruccin/dato requiere dos accesos a memoria. Uno para la tabla de pginas y otro para el instruccin/dato. El problema del doble acceso puede ser resuelto por el uso de un cache hardware especial de adelantamiento llamado registro asociativo o translation look-aside buffers (TLBs)
JRA 2009
Registro Asociativo
Registro Asociativo bsqueda paralela
pgina # cuadro #
Si p es un registro asociativo, tome el cuadro # . Sino tome el cuadro # desde la tabla de pginas en memoria.
JRA 2009
20
JRA 2009
microsegundo
Relacin de acierto porcentaje de veces que la
pgina es encontrada en los registros asociativos; est relacionado con el nmero de registros asociativos.
Relacin de acierto =
Tiempo Efectivo de Acceso (TEA)
21
Proteccin de Memoria
La proteccin de memoria se implementa asociando
la tabla de pginas:
vlido indica que la pgina asociada est en el espacio de direcciones lgicas del proceso, por lo tanto es una pgina legal.
invlido indica que la pgina no est en el espacio de direcciones lgicas del proceso.
JRA 2009
JRA 2009
22
en la tabla de pginas. Esta tabla de pginas contiene una cadena de elementos pasados por hash a la misma locacin.
Los nmeros de pginas virtuales son
comparados con lo que existe en estas cadenas. Si se encuentra se extrae el correpondiente cuadro fsico.
JRA 2009
JRA 2009
23
almacenada en la locacin real de memoria, con informacin del proceso que es dueo de esa pgina.
Decrementa la memoria necesaria para almacenar cada
tabla de pginas, pero incrementa el tiempo necesario para buscar en la tabla cuando ocurre una referencia a una pgina.
Se usa una tabla hash para limitar la bsqueda a una
JRA 2009
JRA 2009
24
Pginas Compartidas
Cdigo compartido
Una copia de cdigo de lectura solamente (reentrante) compartido entre procesos (p.e., editores de texto, compiladores, sistemas de ventanas).
El cdigo compartido debe aparecer en la misma locacin en el espacio de direcciones de todos los procesos. Cdigo privado y datos Cada proceso guarda una copia separada de cdigo y datos. Las pginas del cdigo privado y datos puede aparecer en cualquier lugar del espacio de direcciones lgico.
JRA 2009 Sistemas Operativos Administracin de Memoria
JRA 2009
25
Segmentacin
Esquema de administracin de memoria que soporta la
segmento es una unidad lgica como: programa principal, procedimiento, funcin, variables locales, variables globales, bloque comn, stack, tabla de smbolos, arreglos
JRA 2009 Sistemas Operativos Administracin de Memoria
1 1 2 3 4 3 2 4
Espacio de usuario
JRA 2009
26
Arquitectura de Segmentacin
Direccin lgica consistente de dupla:
< nmero-segmento, offset>, Tabla de Segmentos mapean direccines fsicas en dos dimensiones; cada entrada en la tabla tiene:
base contiene la direccin fsica inicial donde el segmento reside en memoria. lmite especifica la longitud del segmento. registro base de la tabla de segmentos (STBR) apunta a la locacin de la tabla de segmentos en memoria. Registro de longitud de la tabla de segmentos (STLR) indica el nmero de segmentos usados por el programa; el nmero de segmento s es legal si s < STLR.
Compartir
segmentos compartidos
Igual nmero de segmento Primer lugar/mejor lugar fragmentacin externa
Alocacin.
JRA 2009
27
segmentos se asocia:
siguiente diagrama
JRA 2009
Hardware de Segmentacin
JRA 2009
28
Ejemplo de Segmentacin
JRA 2009
Segmentos Compartidos
JRA 2009
29
JRA 2009
Fin
Mdulo 8
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur
30