You are on page 1of 29

Administracin de la Memoria

Antecedentes Espacio de direcciones Lgico versus


Espacio de direcciones Fsico

Intercambio (Swapping) Asignacin Contigua Paginacin Segmentacin Segmentacin con Paginacin

Antecedentes
Un Programa para ser ejecutado debe de ser cargado en
la memoria como un proceso.

Cola de Entrada coleccin de procesos en el disco que


estn en espera de ser cargados dentro de la memoria para su ejecucin.

Los programas de usuario pasan por varios pasos


(compilacin,.... carga) antes de su ejecucin.

Procesamiento de un Programa de Usuario

Enlace de Instrucciones y Datos


La vinculacin (liga) de direcciones de memoria sucede en cualesquiera de las tres diferentes etapas: Tiempo de Compilacin: Si las localidades de memoria se conocen a priori, puede ser generado cdigo absoluto. Deber precompilarse el cdigo si la direccin de inicio cambia.

Tiempo de Carga: Si las localidades de memoria se


desconocen en el momento de la compilacin. Deber generarse cdigo relocalizable .

Enlace de Instrucciones y Datos (Cont.)


La vinculacin (liga) de direcciones de memoria sucede en cualesquiera de las tres diferentes etapas:

Tiempo de Ejecucin: La Liga se retarda hasta el


tiempo de ejecucin. Si el proceso puede ser movido, durante su ejecucin, de un segmento de memoria a otro; es necesario soporte de hardware (ejemplo: registros base y limite).

Espacio de Direcciones Lgicas vs. Fsicas

El concepto de espacio de direcciones lgicas que esta


ligado a un espacio de direcciones fsicas separadas es central para la apropiada administracin de la memoria.
Direccin Lgica generada por el CPU; tambin conocida como direccin virtual. Direccin Fsica direcciones vistas por la unidad de memoria.

Espacio de Direcciones Lgicas vs. Fsicas (Cont.)

Las direcciones Lgicas y Fsicas son las mismas en el


tiempo de compilacin y en el tiempo de carga.

En los esquemas de vinculacin (liga) de direcciones; la


direccin Lgica (Virtual) y la direccin Fsica difieren en el tiempo de ejecucin .

Unidad de Administracin de Memoria (MMU)

Unidad de Administracin de Memoria(MMU)

Dispositivo de hardware que mapea direcciones


virtuales con direcciones fsicas.

En el esquema del MMU, el valor del registro de


relocalizacin es sumado a cada una de las direcciones generadas por el proceso del usuario al tiempo de ser enviado a la memoria.

El programa de usuario trata con direcciones lgicas;


El jams ve una direccin fsica real.

Carga Dinmica
Las rutinas no son cargadas hasta que son llamadas. Mejor utilizacin del espacio de memoria; las rutinas
que no se usan no son cargadas (se mantienen en disco en formato relocalizable).

til cuando es necesario manejar grandes cantidades de


cdigo para casos que ocurren con poca frecuencia.

No requiere de apoyo del sistema operativo se


implementa a travs del diseo del programa.

Enlace Dinmico
El Enlace se pospone hasta el tiempo de ejecucin. Pequeas piezas de cdigo, stub (mdulos vacos), son
usados para localizar la apropiada biblioteca de rutinas residente en la memoria.

El Stub (fragmento) se reemplaza a si mismo con la


direccin de la rutina, y la ejecuta.

El Sistema Operativo necesita checar si la rutina esta en


la direccin de memoria de los procesos.

Bibliotecas compartidas:cada programa utiliza su


numero de versin para decidir cual copia utilizara

Superposiciones (Overlays)
Mantienen en memoria solo aquellas instrucciones y
datos que son necesarios en cualquier tiempo dado.

Necesarios para procesos que requieren grandes


cantidades de memoria.

Implementado por el usuario, no requiere soporte


especial del sistema operativo, el diseo de la programacin de la estructura de la superposicin es compleja

Ensamblador de dos Pasadas

Intercambio (Swapping)
Un proceso puede ser intercambiado temporalmente
de la memoria-principal a algn almacenamiento de respaldo, posteriormente trada de regreso a la memoria para continuar con su ejecucin.

Almacenamiento de Respaldo Discos rpidos


suficientemente grandes como para acomodar copias de toda la imagen de memoria de todos los usuarios; y proveer acceso directo a estas imgenes de memoria.

Esquema del Swapping


Sistema Operativo Proceso P1

Salida por intercambio

Entrada por intercambio

Proceso P2

Espacio de Usuario
Memoria principal

Almacenamiento auxiliar

Intercambio (Swapping) Cont.


Rodar hacia afuera : Roll out - Rodar hacia adentro :
roll in variante de intercambio( swapping ) usada por algoritmos de coordinacin por prioridad: procesos de baja-prioridad son intercambiados por procesos de alta-prioridad que pueden ser cargados y ejecutados.

Intercambio (Swapping) Cont.


Gran parte del tiempo de intercambio es tiempo de
transferencia; el tiempo total de transferencia es directamente proporcional a la cantidad de memoria intercambiada.

En general el espacio de intercambio se asigna como


una porcin de disco, distinto del sistema de archivos, .

Versiones modificadas de

swapping son encontradas en muchos sistemas, ejemplo: UNIX y Microsoft Windows.

Asignacin Contigua

Memoria-principal usualmente divida en dos particiones: El sistema operativo residente, mantenido en la parte baja de la memoria con un vector de interrupciones. Los procesos de usuario, colocados en la parte alta de la memoria.

Particin fija (esttica)


Esquema de registro de reubicacin usado para proteger los procesos de usuario, uno del otro, y el cambio del cdigo del sistema-operativo y los datos.

El registro limite contiene el intervalo de direcciones lgicas. El registro de rehubicacin contiene el valor de la direccin fsica mas pequea.

Particin-Mltiple
Bloque de huecos de la memoria disponible ; huecos de varios tamaos son esparcidos por la memoria. Cuando un proceso llega, este es colocado en la memoria en un hueco lo suficientemente grande como para acomodarlo. El sistema-operativo mantiene informacin acerca de: a) particiones asignadas b) particiones libres (huecos)

SO proceso 5

SO proceso 5

SO proceso 5 proceso 9

SO proceso 5 proceso 9 proceso 10 proceso 2

Proceso 8

proceso 2

proceso 2

proceso 2

Particin-Mltiple (Cont.)

Almacenamiento Dinmico
Como satisfacer una solicitud de tamao n, a partir de una lista de huecos libres.

Primer-Ajuste: Localizar el primer hueco que es lo suficientemente grande. Mejor-Ajuste: Localizar el hueco mas pequeo que es lo suficientemente grande; deber buscar en la lista completa, a menos de que este ordenada por tamao. Produce el hueco sobrante mas pequeo. Peor-Ajuste: Localiza el hueco mas grande; deber buscar tambin en la lista completa. Produce el hueco sobrante mas grande.

Primer y mejor- ajuste son mejores que peor-ajuste en trminos de rapidez y utilizacin del almacenamiento

Fragmentacin
Fragmentacin Interna la memoria asignada puede
ser ligeramente mayor que la memoria solicitada; esta diferencia en tamao es interna a una particin, pero no esta siendo usada.

Compactacin
Fragmentacin Externa existe espacio total de memoria para
satisfacer una peticin, pero no es contigua. Se reduce la fragmentacin externa por medio de compactacin (recoleccin de basura o desfragmentacin) Se arrastran los contenidos de la memoria para colocar toda la memoria libre junta en un solo bloque. La compactacin es posible solo si la reubicacin es dinmica, y se realiza en el tiempo de ejecucin.

Diferentes Maneras de Compactacin

Problema de E/S Tarea de aldaba (bloqueo) en memoria mientras esta involucrada en la E/S. Ejecuta E/S solo en los buffers del Sistema Operativo.

Paginacin
El espacio de direcciones lgicas y fsicas de un proceso
puede ser no-contiguo.

Divide la memoria fsica en bloques de tamao fijo


llamados marcos ( frames )

Divide la memoria lgica en bloques del mismo tamao


llamados paginas.

El tamao es una potencia de 2, entre 512 y 8192 bytes.


(tamao del sector o bloque del disco).

Elimina la fragmentacin externa solo permanece la


fragmentacin interna.

Paginacin (Cont.)

Mantiene un registro de todos los marcos libres. Ejecutar un programa de n paginas, consiste en
encontrar n marcos libres y cargarlos, despus.

Ajustar una tabla de paginas para traducir


direcciones lgicas en direcciones fsicas.

Ejemplo de paginacin

Nmero de marco

Tabla de paginas Memoria lgica

Elimina la fragmentacin externa Fragmentacin interna


Memoria fsica

Esquema de Traduccin de Direcciones

La direccin generada por el CPU esta dividida en:


Numero de pagina (p) usado como un ndice dentro de la tabla de paginas la cual contiene la direccin base de cada pagina (f ) en la memoria fsica. Compensacin (offset) de pagina (d) combinada con la direccin base (f) define la direccin de memoria fsica que es enviada a la unidad de memoria.

Arquitectura de Traduccin de direcciones

Direccin lgica

Direccin fsica Memoria Fsica

PTBR

Tabla de paginas

Implementacin de la Tabla de Paginas

La tabla de paginas es mantenida en la memoriaprincipal.

Registro Base

de Tabla de Paginas (PTBR) apunta a la tabla de paginas. indica el tamao de la tabla de paginas.

Registro de Longitud de Tabla de Paginas (PRLR)

Implementacin de la Tabla de Paginas

En este esquema cada acceso a

dato/instruccin requiere de dos accesos a memoria. Uno por la tabla de paginas y otro por el dato/instruccin. resuelto por medio del uso de un hardware especial de bsqueda rpida en cache llamado: registros asociativos o buffers de traduccin anticipada (TLBs)

El problema de los dos accesos a memoria puede ser

Registros Asociativos (TLB)

Proteccin de Memoria
La proteccin de memoria se implementa por medio del
bit de proteccin asociado a cada marco.

Un bit valido-invalido se agrega a cada rengln de la


tabla de paginas: valido indica que la pagina asociada se encuentra en el espacio de direcciones lgicas del proceso, y es por lo tanto una pagina legal. invalido indica que la pagina no esta en espacio de direcciones lgicas del proceso.

Esquema de Tabla de Paginas de Dos Niveles

Tabla de pginas ( muy grandes ) exterior

Pgina de la tabla de pginas Tabla de pginas Memoria

Tiempo de Acceso Efectivo


Suponga un ciclo de memoria de 1 microsegundo Bsqueda Asociativa = unidades de tiempo Tasa de aciertos =
Tasa de aciertos porcentaje de veces que un numero de pagina es encontrado en los registros asociativos; la tasa esta relacionada al numero de registros asociativos.

Tiempo de acceso efectivo (EAT)


EAT = (1 + ) + (2 + )(1 ) =2+

Ejemplo de Paginacin de Dos Niveles

Una direccin lgica (en una maquina de 32-bits con un tamao de pagina de 4K ) se divide en: Un numero de pagina de 20 bits. Una compensacin (offset) de pagina de 12 bits. Desde la tabla de paginas , el numero de pagina es a su vez dividido en: Un numero de pagina de 10-bits. Un offset de 10-bits. Por lo tanto, una direccin lgica es como sigue:

# de pagina pi 10 p2 10

offset d 12

donde pi es un ndice dentro de la tabla de paginas exterior, y p2 es el


desplazamiento dentro de la pagina de la tabla de paginas exterior.

Esquema de Traduccin de Direcciones


Esquema de traduccin de direcciones para una arquitectura de paginacin de dos niveles en 32 bits.

Esquema de Traduccin de Direcciones


Esquema de traduccin de direcciones,en 64 bits, para MULTICS en secciones paginadas de 4 niveles

Direccin lgica

Paginacin Multinivel y su Desempeo

Ya que cada nivel es almacenado en memoria en tablas


separadas, convertir una direccin lgica en una fsica puede requerir cuatro accesos a memoria.

A pesar de que el tiempo de acceso memoria es


quintuplicado,el uso de memorias cache permite un desempeo razonable.

Una tasa de aciertos de 98 % en el Cache produce:


tiempo de acceso efectivo = 0.98 x 120 + 0.02 x 520 = 128 nanosegundos. Con solo un 28% de retrazo en el tiempo de acceso a memoria.

Tabla de Paginas Invertida

Por lo regular cada proceso tiene su propia tabla de


pginas, debido a que esta ordenada por direccin virtual puede llegar a contener millones de entradas ( validas no validas) Solucin: Una entrada por cada - frame - pagina real de memoria. Cada anotacin consiste de la direccin virtual de la pagina almacenada en una localidad de la memoria real, con informacin del proceso que pertenece a la pagina.

Arquitectura de Tabla de Paginas Invertida

pid: id-proceso

Direccin lgica

Direccin fsica

Memoria fsica

Bsqueda

Tabla de paginas

Tabla de Paginas Invertida (Cont.)

Decrece la memoria necesaria para almacenar cada


tabla de paginas, pero se incrementa el tiempo necesario para buscar en la tabla, cuando ocurre una referencia de pagina, porque est ordenada por la direccin fsica.

Se usan tablas de dispersin ( hash ) para limitar la


bsqueda a una o el mnimo entrada de la tabla de paginas.

Cada referencia a la memoria virtual requiere cuando


menos de 2 lecturas a la memoria real: la entrada hash y la tabla de paginas

Paginas Compartidas
Cdigo Compartido en Sistemas de Tiempo
Compartido Una copia de cdigo reentrante ( read-only ) se comparte entre procesos (ejemplo, editores de texto, compiladores, sistema windows ). El cdigo compartido deber aparecer en la misma localizacin en el espacio de direcciones lgicas de todos los procesos.

Cdigo y datos Privados


Cada proceso mantiene una copia separada de su cdigo y de sus datos. Las paginas para el cdigo privado y sus datos puede aparecer en cualquier lugar del espacio de direcciones lgicas.

Ejemplo de Paginas Compartidas

Segmentacin

Esquema de Administracin de memoria que soporta la visin de la memoria por el usuario o el programador.
Un programa es una coleccin de segmentos. Un segmento es una unidad lgica como: programa principal, procedimiento, funcin, variables locales, variables globales, bloque comn, stack, tabla de smbolos, arreglos...

Visin Lgica de la Segmentacin

Fragmentacin externa

Elimina la fragmentacin interna

Arquitectura de la Segmentacin

La direccin lgica consiste en un par ordenado: <numero-segmento, offset>, Tabla de Segmentos mapas de direcciones fsicas de dos dimensiones; cada rengln tiene: base contiene la direccin fsica de inicio donde el segmento reside en la memoria. limite especifica la longitud del segmento.

Registro Base de la Tabla de Segmentos(STBR) apunta a las localizaciones en memoria de la tabla de segmentos. Registro de Longitud de la Tabla de Segmentos(STLR) indica el numero de segmentos usados por un programa ; el numero de segmento s es legal si s < STLR.

Arquitectura de la Segmentacin (Cont.)

STBR

Arquitectura de la Segmentacin (Cont.)

Proteccin. En cada rengln en la tabla de


segmentos asociada: BIT de validacin = 0 segmento ilegal Privilegios read/write/execute

Bits de proteccin asociados con los segmentos;


cdigo compartido ocurre a nivel de segmento.

Ya que los segmentos varan en longitud, la


asignacin de memoria es un problema de localizacin dinmica del almacenamiento.

Arquitectura de la Segmentacin (Cont.)

Reubicacin.
dinmica Por tabla de segmentos

Compartimiento.
Segmentos compartidos

Asignacin.
primer ajuste/mejor ajuste Fragmentacin externa

Ejemplo de Segmentos Compartidos

Segmentacin con Paginacin MULTICS

El sistema

MULTICS resolvi los problemas de fragmentacin externa y tiempos de bsqueda largos por medio de la paginacin de segmentos. en que cada rengln de la tabla de segmentos contiene no la direccin base del segmento, sino la direccin base de la tabla de paginas para este segmento.

Esta solucin difiere de la segmentacin pura

Esquema de Traduccin de Direcciones MULTICS


Direccin lgica

Tabla de segmentos

Memoria

Direccin fsica Tabla de pginas para el segmento S

Segmentacin con Paginacin Intel 386

Como se muestra en el siguiente diagrama, el


Intel 386 usa segmentacin con paginacin para la administracin de memoria con un esquema de paginacin de dos niveles.

Traduccin de Direcciones del Intel 80386

Comparacin de Estrategias para la Administracin de Memoria


Asignacin contigua, Paginacin, Segmentacin y la combinacin de paginacin-segmentacin

Soporte de Hardware: Registros ( base y limite ), Tablas de mapeo. Desempeo: Registros asociativos (cache) Fragmentacin: Unidades de asignacin de tamao fijo tienen fragmentacin interna. Unidades de asignacin de tamao variable tienen fragmentacin externa Relocalizacin: La compactacin fue la solucin al problema de la fragmentacin externa Intercambio (Swapping): Permite ejecutar ms procesos de los que caben en la memoria a la vez Compartimiento: Otra forma de aumentar el nivel de multiprogramacin, por medio de la paginacin y la segmentacin. Proteccin: Restricciones (solo lectura, solo ejecucin, lectura-escritura) necesarias cuando se comparte cdigo o datos

You might also like