Sei sulla pagina 1di 83

Instituto Politcnico Nacional

Escuela Superior de Cmputo

Unidad III:
Administracin de memoria
Memoria principal

M. en C. Hermes Francisco Montes Casiano


hermes.escom@gmail.com

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Objetivos

Objetivos
1

Proporcionar una descripcin de las diversas formas de


organizar el hardware de memoria.

Analizar diversas tcnicas de gestin de memoria, incluyendo la


paginacin y la segmentacin.

2/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos

Introduccin
Hardware bsico
Reasignacin de direcciones
Espacios de direcciones lgico y fsico
Carga dinmica
Montaje dinmico y bibliotecas compartidas
2 Intercambio
3 Asignacin de memoria contigua
4 Paginacin
3/42

5 Estructura de la tabla de pginas

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Introduccin

La memoria es un componente crucial para la operacin de un


sistema de cmputo.
La memoria est compuesta de una gran matriz de palabras o
bytes, cada una con su propia direccin.
La CPU extrae instrucciones de la memoria de acuerdo con el
contrador de programa de la memoria.
Dichas instrucciones pueden provocar operaciones adicionales
de carga o de almacenamiento en direcciones de memoria
especficas.

4/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Introduccin
La memoria es un componente crucial para la operacin de un
sistema de cmputo.
La memoria est compuesta de una gran matriz de palabras o
bytes, cada una con su propia direccin.
La CPU extrae instrucciones de la memoria de acuerdo con el
contrador de programa de la memoria.

Ciclo de instruccin
1

Extraer una instruccin de la memora.

Decodificar instruccin y extraer operandos.

Ejecutar la instruccin.

Almacenar resultado en la memoria.


4/42

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Introduccin
La memoria es un componente crucial para la operacin de un
sistema de cmputo.
La memoria est compuesta de una gran matriz de palabras o
bytes, cada una con su propia direccin.
La CPU extrae instrucciones de la memoria de acuerdo con el
contrador de programa de la memoria.
Dichas instrucciones pueden provocar operaciones adicionales
de carga o de almacenamiento en direcciones de memoria
especficas.

Instrucciones
La unidad de memoria slo ve el flujo de direcciones de memoria y
no sabe como se generan esas direcciones.
4/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Hardware bsico
La memoria principal y los registros dentro del propio
procesador son las nicas reas de almacenamiento a las que la
CPU puede acceder.
Todas las instrucciones en ejecucin y los datos utilizados por
las instrucciones debern encontrarse en almacenados en uno
de los medios de almacenamiento de acceso directo.
Si los datos no se encuentran en memora, debern llevarse
hasta all antes de que ls CPU pueda operar con ellos.
Puede accederse a los registros integrados en la CPU en nico
ciclo de reloj del procesador.
El acceso a la memoria puede requerir ms de un ciclo de reloj
para poderse completar, el procesador necesitar detenerse.
5/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Harware bsico
Proteccin: registros base y lmite

Se debe garantizar una correcta operacin que proteja el


espacio de direcciones del sistema operativo y dems procesos.
La proteccin debe ser proporcionada por el hardware.
Cada proceso debe tener su espacin de memoria separado.
Proteccn mediante registros:
1
2

Registro base: almacena la direccin fsca legal ms pequea.


Registro lmite: epecfica el tamao del rango.

Figura : Registro base y registro lmite.


6/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Harware bsico
Proteccin: registros base y lmite

Proteccn mediante registros:


1
2

Registro base: almacena la direccin fsca legal ms pequea.


Registro lmite: epecfica el tamao del rango.

La proteccin del espacio de memoria se consigue haciendo


que el CPU compare todas las direcciones con esos registros.
Cualquier intento por parte de un proceso de acceder a la
memoria de otro har que se produzca una interrupcin hacia
el sistema operativo.

Figura : Proteccin hardware de las direcciones.


6/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Harware bsico
Proteccin: registros base y lmite

Se debe garantizar una correcta operacin que proteja el


espacio de direcciones del sistema operativo y dems procesos.
La proteccin debe ser proporcionada por el hardware.
Cada proceso debe tener su espacin de memoria separado.
Proteccn mediante registros:
1
2

Registro base: almacena la direccin fsca legal ms pequea.


Registro lmite: epecfica el tamao del rango.

La proteccin del espacio de memoria se consigue haciendo


que el CPU compare todas las direcciones con esos registros.
Cualquier intento por parte de un proceso de acceder a la
memoria de otro har que se produzca una interrupcin hacia
el sistema operativo.
6/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Harware bsico
Proteccin: registros base y lmite

Los registros base y lmite slo pueden ser cargador por el


sistema operativo.
El sistema operativo tiene acceso no restringido a la memoria
tanto del sistema como de los dems procesos.
Lo anterior permite al sistema operativo cargar programas en
la memoria, volcarlos en caso de error, leer y modificar
parmetros en llamadas al sistema, etc.

6/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones

Los programas residen en disco duro como archivos binarios


ejecutables.
Para ejecutarse, un programa, deber cargarse en memoria y
colocarse dentro de un proceso.
Los procesos del disco que estn esperando a ser cargados en
memoria para su ejecucin constituyen la cola de entrada.
El procedimiento normal consiste en seleccionar uno de los
procesos de la cola de entrada y cargarlo en memoria.
Eventualmente, el proceso terminar su ejecucin y su espacio
de memoria ser declarado como disponible.

7/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

En la mayora de los casos, un programa de usuario recorrer


varios pasos antes de ser ejecutado.
A lo largo de esos pasos las direcciones sufren
transformaciones:
1

Las direcciones del programa fuente generalmente son


smbolicas.
Un compilador se encargar de asignar direcciones reubicables
a las direcciones smbolicas.
El editor de montaje se encargar de asignar direcciones
absolutas a las direcciones reubicables.

Cada operacin de reasignacin constituye una relacin de un


espacio de direcciones a otro.

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

Figura : Pasos en el procesamiento de un programa de usuario.

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

La reasignacin de las instrucciones y los datos a direcciones


de memoria puede realizarse en cualquiera de los siguientes
pasos:
1
2
3

Tiempo de compilacin:
Tiempo de carga:
Tiempo de ejecucin:

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

La reasignacin de las instrucciones y los datos a direcciones


de memoria puede realizarse en cualquiera de los siguientes
pasos:
1

Tiempo de compilacin:
Si al momento de compilar se sabe donde va a residir el
proceso se pueden generar direcciones absolutas.
Si se se sabe que el proceso residira en una zona de memoria
que comienza en la ubicacin R, el cdigo generado por el
compilador comenzar en dicha ubicacin y se extender a
partir de ah.

2
3

Tiempo de carga:
Tiempo de ejecucin:

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

La reasignacin de las instrucciones y los datos a direcciones


de memoria puede realizarse en cualquiera de los siguientes
pasos:
1
2

Tiempo de compilacin:
Tiempo de carga:
Si no se conoce en tiempo de compilacin donde va a residir el
proceso en memoria, el compilador deber generar cdigo
reubicable.
En este caso, se retarda la asignacin final hasta el momento
de la carga.

Tiempo de ejecucin:

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Reasignacin de direcciones
Ejecucin de un proceso

La reasignacin de las instrucciones y los datos a direcciones


de memoria puede realizarse en cualquiera de los siguientes
pasos:
1
2
3

Tiempo de compilacin:
Tiempo de carga:
Tiempo de ejecucin:
Si el proceso puede desplazarse durante su ejecucin desde un
segmento de memoria a otro, entonces es necesario retardar la
reasignacin hasta el momento de la ejecucin.
La mayora de los sistemas operativos de propsito general
utilizan este mtodo.

8/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico


Tipos de direcciones
Una direccin generada por la CPU se denomina direccin
lgica o direccin virtual.
Una direccin fsica es una direccin vista por la unidad de
memoria, es decir, la que se carga en el registro de direcciones
de memoria de la memoria.
Los mtodos de reasignacin de direcciones en tiempo de
compilacin y en tiempo de carga generan direcciones lgicas y
fsicas idnticas.
El esquema de reasignacin de direcciones en tiempo de
ejecucin hace que las direcciones lgicas y fsicas difieran.
9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico

Definiciones
El conjunto de todas las direcciones lgicas generadas por un
proceso es lo que se denomina un espacio de direcciones
lgicas.
El conjunto de todas las direcciones fsicas correspondientes a
esas direcciones lgicas es un espacio de direcciones fsicas.
La correspondencia entre direcciones virtuales y fsicas en
tiempo de ejecucin es establecida por el dispositivo hardware
que se denomina unidad de gestin de memoria (MMU).

9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico


Conversin de direcciones

La correspondencia entre direcciones virtuales y fsicas en


tiempo de ejecucin es establecida por el dispositivo hardware
que se denomina unidad de gestin de memoria (MMU).

Ejemplo de esquema MMU: registro base o de reubicacin


El valor contenido en el registro de reubicacin suma a todas las
direcciones generadas por un proceso de usuario en el momento de
enviarlas a memoria.

9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico


Conversin de direcciones

Ejemplo de esquema MMU: registro base o de reubicacin


El valor contenido en el registro de reubicacin suma a todas las
direcciones generadas por un proceso de usuario en el momento de
enviarlas a memoria.

Figura : Reubicacin dinmica mediante un registro de reubicacin.


9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico


Conversin de direcciones

El proceso de usuario nunca ve direcciones fsicas reales.


Un programa puede crear un puntero a la direccin de
memoria FF y tratarla siempre como el nmero FF.
Slo cuando lo utiliza como direccin de memoria se producir
la reubicacin en relacin con el registro base.

9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Espacios de direcciones lgico y fsico


Conversin de direcciones

Conversin
El proceso de usuario maneja direcciones lgicas y el harware de
conversin de memoria convierte esas direcciones lgicas en
direcciones fsicas.

Espacios de direcciones
El concepto de un espacio de direcciones lgicas que se acopla a un
espacio de direcciones fsicas separado resulta crucial para una
adecuada gestin de la memoria.

9/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Carga dinmica
El tamao de un proceso est limitado al tamao de la
memoria fsica.
Para obtener una mejor utilizacin del espacio de memoria se
puede utilizar un esquema de carga dinmica.
Con la carga dinmica una rutina no se carga hasta que se
invoca.
Todas las rutinas se mantienen en disco en formato de carga
reubicable.
La carga dinmica se realiza como sigue:
1
2

El programa principal se carga en memoria y se ejecuta.


Cuando una rutina necesita llamar a otra, la rutina que invoca
comprueba si la otra rutina ya ha sido cargada.
Si no es as, se invoca al cargador de montaje reubicable para
que cargue en memoria la rutina deseada (actualiza la tabla de
direcciones).
Se pasa el control a la rutina recin cargada.
10/42

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Carga dinmica

Ventaja
Una rutina no utilizada no se cargar nunca en memoria. Este
mtodo es muy til cuando se necesitan grandes cantidades de
cdigo para gestionar casos que slo ocurren de manera espordica.

10/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Montaje dinmico y bibliotecas compartidas


Montaje esttico
Las bibliotecas del sistema se tratan como cualquier otro mdulo
objeto y son integradas por el cargador dentro de la imagen binaria
del programa.
En el montaje dinmico se incluye un stub dentro de la imagen
binaria para cada referencia a una rutina de biblioteca.

Stub
Es un fragmento de cdigo que indica como localizar la rutina
adecuada de biblioteca residente en memoria o como cargar la
biblioteca si esa rutina no est todava presente.
11/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Montaje dinmico y bibliotecas compartidas


En el montaje dinmico se incluye un stub dentro de la imagen
binaria para cada referencia a una rutina de biblioteca.
Cuando se ejecuta el stub, ste comprueba si la rutina
necesaria ya se encuentra en memoria.
Si no se encuentra el programa carga la rutina en memoria.
En cualquiera de los casos el stub se sustituye a si mismo por
la direccin de la rutina y ejecuta la rutina.
El mecanismo de bibliotecas compartidas permite que ms
de un proceso haga referencia a una misma biblioteca, sin que
esta se cargue dentro del espacio de direcciones de cada
proceso que la utiliza.
11/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Montaje dinmico y bibliotecas compartidas

Carga dinmica vs. Montaje dinmico


A diferencia de la carga dinmica, el montaje dinmico requiere
ayuda del sistema operativo.
El sistema operativo es la nica entidad que puede comprobar su la
rutina necesaria se encuentra dentro del espacio de direcciones de
otro proceo y ser tambien la nica entidad que pueda permitir a
mltiples procesos acceder a las mismas direcciones de memoria.

11/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos
2 Intercambio

Intercambio
3 Asignacin de memoria contigua
4 Paginacin
5 Estructura de la tabla de pginas
6 Segmentacin
12/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Un proceso debe estar en memoria para ser ejecutado.
Sin embargo, los procesos pueden ser intercabiados
temporalmente, sacndolos de la memoria y almacenndolos
en un almacn de respaldo.
Posteriormente, dichos procesos se vuelven a llevar luego a la
memoria para continuar su ejecucin.
Normalmente, un proceso descargado se volver a cargar en el
mismo espacio de memoria que ocupaba anteriormente
(asignacin en tiempo de ensamblado o carga).
Esta restriccin la dictaminar el mtodo de reasignacin de la
direcciones.
Si se est utilizando reasignacin en tiempo de ejecucin s
puede moverse un proceso a un espacio de memoria distinto.
13/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio

Los mecanismos de intercambio requieren un almacn de


respaldo (disco duro).
El sistema mantiene una cola de procesos preparados que
consistir en los procesos que se encuentren en memoria o en
el almacn de respaldo y estn listos para ejecutarse.

14/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Cada vez que el planificador de la CPU decide ejecutar un
proceso, llama al despachador:
1
2

Verifica si el proceso se encuentra en memoria.


Si no es as, y si no hay ninguna regin de memoria disponible,
el despachador intercambia el proceso deseado por otro.
Recarga los registros y transfiere el control al proceso
seleccionado.

Figura : Intercambio de dos procesos utilizando un disco como almacn


de respaldo.
14/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Ejemplo

Ejemplo
Es necesario intercambiar un proceso de usuario que tiene de
tamao 10 MB y el almacn de respaldo es un disco duro con una
velocidad de transferencia de 40 MB.
10000 KB
= 250 milisegundos
40000 KB por segundo

(1)

Asumiendo una latencia media de 8 milisegundos, el tiempo de


intercambio ser de 258 milisegundos.
Sin embargo, dado que el intercambio requiere de las operaciones
de carga y descarga, el tiempo total necesario sera de 516ms.
15/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio

Para conseguir un uso eficiente de la CPU, es necesario que el


tiempo de ejecucin de cada proceso se largo en relacin con
el tiempo de intercambio.
La mayor parte del tiempo de intercambio es tiempo de
transferencia.
El tiempo de transferencia total es directamente proporcional a
la cantidad de memoria intercambiada.
Es til saber cuando memoria utiliza un proceso, con la
finalidad de intercambiar slo est utilizando.

16/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Factores que restringen el intercambio

Ejemplo
Si se requiere intercambiar un proceso, se debe asegurar de
que est completamente inactivo.
Es necesario prestar atencin especial a todas las operaciones
de E/S pendientes.
Un proceso puede estar esperando por una operacin de E/S
en el momento en que quiera intercambiar para liberar
memoria.

17/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Factores que restringen el intercambio

Problema
Si la E/S est accediendo asncronamente a la memoria de
usuario donde residen los buffers de E/S, el proceso no podr
ser intercambiado.
Si se descargara el proceso P1 y se cargara el proceso P2 , la
operacin de E/S podra entonces intentar utilizar la memoria
que ahora pertenece al proceso P2 .

17/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio
Factores que restringen el intercambio

Soluciones
Hay dos soluciones principalmente:
1

No descargar nunca un proceso que tenga actividades de E/S


pendientes.

Ejecutar las operaciones de E/S nicamente con buffers del


sistema operativo.

17/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Intercambio

En muchas versiones de UNIX, es intercambio esta


normalmente desactivado.
El intercambio se activa cuando se estn ejecutando
numerosos procesos y la cantidad de memoria utilizada excede
cierto umbral.
El intercambio se desactiva cuando la carga del sistema se
reduce.

18/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos
2 Intercambio
3 Asignacin de memoria contigua

Mapeo de memoria y proteccin


Asignacin de memoria
4 Paginacin
5 Estructura de la tabla de pginas
6 Segmentacin
19/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Introduccin

La memoria principal debe albergar tanto al sistema operativo


como los diversos procesos de usuario.
Es necesario asignar las distintas partes de la memoria
principal de la forma ms eficiente posible.
La memoria usualmente est dividida en dos particiones: una
para el sistema operativo y otra para los procesos.
Dado que el vector de interrupciones se situa en la parte baja
de la memoria, el sistema operativo suele situarse tambin en
la parte baja de la memoria.
En el esquema de memoria contigua, cada proceso est
contenido en una nica seccin de memoria contigua.
20/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mapeo de memoria y proteccin

Se puede proporcionar mapeo de memoria y proteccin


mediante el uso de los registros de reubicacin y lmite.
Reubicacin: contiene el valor de la direccin fsica ms
pequea.
Lmite: contiene el rango de las direcciones lgicas.
La MMU convertir la direccin lgica dinmicamente
sumndole el valor contenido en el registro de reubicacin.
Cuado el planificador elije un proceso, el despachador carga en
los registros de reubicacin y de lmite los valores correctos,
como parte del proceso de cambio de contexto.

21/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mapeo de memoria y proteccin


La MMU convertir la direccin lgica dinmicamente
sumndole el valor contenido en el registro de reubicacin.
Cuado el planificador elije un proceso, el despachador carga en
los registros de reubicacin y de lmite los valores correctos,
como parte del proceso de cambio de contexto.

Figura : Pasos en el procesamiento de un programa.


21/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mapeo de memoria y proteccin

La MMU convertir la direccin lgica dinmicamente


sumndole el valor contenido en el registro de reubicacin.
Cuado el planificador elije un proceso, el despachador carga en
los registros de reubicacin y de lmite los valores correctos,
como parte del proceso de cambio de contexto.

Proteccin
Puesto que todas las direcciones generadas por el CPU, este
mecanismo permite proteger tanto al sistema operativo como a los
dems procesos.

21/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos
2 Intercambio
3 Asignacin de memoria contigua
4 Paginacin

Mtodo bsico
Soporte hardaware
Proteccin
Pginas compartidas
5 Estructura de la tabla de pginas
22/42

6 Segmentacin

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Introduccin

Paginacin
La paginacin es un esquema de gestion de memoria que permite
que el espacio de direcciones fsicas de un proceso no sea contiguo.
La paginacin evita considerablemente el problema de encajar
fragmentos de memoria de tamao variable den el almacen de
respaldo.
El almacen de respando tambin sufre los problemas de
fragmentacin.
El soporte para la paginacin se gestionaba mediante hardware,
actualmente se realiza mediante hardware y sistema operativo.
23/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Mtodo bsico
El mtodo bsico para implementar la paginacin implica
descomponer la memoria fsica en una serie de bloques de tamao
fijo denominados marcos y descomponer la memoria lgica en
bloques del mismo tamao denominados pginas.
Cuando hay que ejecutar un proceso, sus pginas se cargan
desde el almacen de respaldo en los marcos de memoria
disponibles.
El almacn de resplando est dividido en bloques de tamao
fijo que tienen el mismo tamao que los marcos de memoria.

24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Toda direccin generada por la CPU est dividida en dos


partes: un nmero de pgina (p) y un desplazamiento de
pagina (d).
El nmero de pgina se utiliza como ndice de una tabla de
pginas.
La tabla de pginas contiene la direccin base de cada pgina
en memoria fsica.
La direccin base se combina con el desplazamiento de pgina
para definir la direccin de memoria fsica que se enva a la
unidad de memoria.

24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Figura : Hardware de paginacin

24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Figura : Hardware de paginacin


24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
El tamao de pgina est definido por el hardware y
normalmente es una potencia de 2.
El tamao de pgina varia entre 512 bytes y 16 MB por
pgina, dependiendo de la arquitectura de la computadora.
La seleccin de una potencia de 2 como tamao de pgina
facilita la traduccin de direcciones lgicas a fsicas.

Espacio de direcciones
Si el tamao del espacio de direcciones lgicas es 2n y el tamao de
pgina es 2n unidades de direccionamiento, entonces los m n bits
de mayor peso de cada direccin lgica designarn el numero de
pgina, mientras que los n bits de menor peso indicarn el
desplazamiento de pgina.
24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Figura : Hardware de paginacin

24/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
Ejemplo

Tamao de pgina 4 bytes


Memoria fsica de 32 bytes (8 pginas)
La direccin lgica 0 representada en la pgina 0,
desplazamiento 0.
Realizando la indexacin en la tabla de pginas, se observa que
la pgina 0 se encuentra en el marco 5.
La direccin lgica 0 se hace corresponder con la direccin
20(= (5x4) + 0)

25/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
Ejemplo

Figura : Hardware de paginacin


25/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
Con un esquema de paginacin no se tiene fragmentacin
externa, pero si fragmentacin interna.
Si el tamao de los procesos es independiente del tamao de
las pginas, se puede esperar que la fragmentacin interna se
en promedio igual a media pgina por proceso.
Hoy en da las pginas utilizadas se encuentran entre 4KB y
8KB.

Escenario
Si cada entrada de la tabla de pginas tiene 4 bytes de longitud.
Una entrada de 32 bits puede apuntar a una de 232 marcos de
pgina fsicos. Si el tamao de marco es de 4KB, entonces un
sistema con entradas de 4 bytes podr direccionar 244 bytes de
memoria fsica.
26/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Cuando un proceso llega al sistema para ejecutarlo, se examina


su tamao expresado en pginas.
Cada pgina del proceso necesitar un marco.
Si el proceso requiere n pginas, deber haber disponibles al
menos n marcos en memoria.
1

Si hay disponibles n marcos, se les asignarn al proceso que


acaba de llegar.
La primera pgina del proceso se carga en uno de los marcos
asignados y se incluye el nmero de marco en la tabla de
pginas para este proceso.
La siguiente pgina dr carga en otro marco y su nmero de
marco se coloca en la tabla de pginas, y as sucesivamente.

26/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico

Figura : Marcos libres y asignados.


27/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Soporte hardware

La mayoria de los sistema operativos asignan una tabla de


pginas para cada proceso.
Almacenan un apuntador a la tabla de pginas en el bloque de
control del proceso.
La tabla de pginas se implementa se implementa como un
conjunto de registros de dicados.
Los registros se deben construir con lgica de muy alta
velocidad, con el objetivo que la traduccin de direcciones sea
eficiente.

28/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Soporte hardware

Cada acceso a la memoria debe pasar a travs del mapa de


paginacin.
Las instrucciones para cargar o modificar los registros de la
tabla de pginas son exclusivas del sistema operativo.
Se utiliza un hardware especial de tamao reducido y de rpido
acceso denominado buffer de consulta de traduccin
(TLB).
El nmero de entradas del TLB es de entre 64 y 1024.

28/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Soporte hardware
Su uso es el siguiente:
1

El buffer TLB contiene slo unas cuantas entradas de la tabla


de pginas.
Cuando se genera una direccin lgica, se presenta un nmero
de pgina al TLB.
Si se encuentra ese nmero de pgina, su nmero de marco
estar inmediatamente disponible.
Si el nmero de pgina no est disponible, es necesari hacer
referencia a la memoria para consultar la tabla de pgina.

Una vez obtenido el nmero de marco, este se utiliza para


acceder a la memoria.
Se puede aadir el nmero de pgina y el numero de marco al
TLB para los accesos futuros.
28/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Soporte hardware

Figura : Hardware de paginacin con TLB.


29/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Proteccin
La proteccin de memoria en un entorno paginado se consigue
mediante una serie de bits de proteccin asociados con cada
marco.
Dichos bits se mantienen en la tabla de pginas.
Uno de los bits puede definir a una pgina como de
lectura-escritura o dolo de lectura.
Toda referencia a la memoria pasa a travs de la tabla de
pginas con el fin de encontrar el nmero de marco correcto.
Al mismo tiempo que se calcula la referencia se pueden
comprobar los bits de proteccin.
Cualquier intento anomalo provocar una interrupcin
hardware al sistema operativo.
30/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Proteccin

Se suele asociar un bit adicional con cada entrada de la tabla


de pginas:
Vlido: la pgina asociada se encontrar dentro del espacio de
direcciones lgicas del proceso.
Invlido: la pgina no se encuentra dentro del espacio de
direcciones lgicas del proceso.

El sistema operativo configura dicho bit para permitir o


denegar el acceso a dicha pgina.

30/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Proteccin

Figura : Bit vlido-invlido.


31/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Pginas compartidas

Una ventaja de la paginacim es la posibilidad de compartir


cdigo en comn.
Lo cual es muy til en ambientes de tiempo compartido.

Ejemplo
Considere un sistema que de soporte a 40 usuarios, cada uno de los
cuales est ejecutando un editor de texto.
Si el editor de texto est compuesto por 150 KB de cdigo y 50 KB
de espacio de datos, se necesitaran 8000 KB para dar soporte a los
40 usuarios.

32/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Pginas compartidas

El cdigo reentrante es cdigo que no se automodifica durante


el tiempo de ejecucin.
Dos o ms procesos pueden utilizar el mismo cdigo, si ste es
reentrante.
Cada proceso tendr su propia copia de los registros y del
almacenamiento de datos.

32/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Pginas compartidas

Figura : Pginas compartidas.


33/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos
2 Intercambio
3 Asignacin de memoria contigua
4 Paginacin
5 Estructura de la tabla de pginas

Paginacin jerrquica
Tablas hash
Tablas de pginas invertidas
6 Segmentacin

34/42

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Paginacin jerrquica
La mayora de los sistemas modernos soportan un gran espacio
de direcciones lgico (232 a 264 ).
En dichos entornos la tabla de pginas puede llegar a ser muy
grande.

Ejemplo
Considere un sistema con un espacio de direcciones lgico de
direcciones de 32 bits. Si el tamao de pgina en dicho sistema es
de 4 KB (212 ), entonces la tabla de pginas puede estar compuesta
32
por 2212 entradas.
Una forma de minimizar la cantidad de memoria es utilizar un
algoritmo en dos niveles.
35/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Paginacin jerrquica

De modo que la direccin tendria la siguiente estructura:

Figura : Estructura de la direccin

Donde:
p1 : es un ndice a la tabla de pginas externa.
p2 : es el desplazamiento dentro de la pgina de la pgina de la
tabla de pginas externa.
d: es el desplazamiento dentro de la pgina.

35/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Paginacin jerrquica

Figura : Tabla de pginas en dos niveles.


35/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Paginacin jerrquica

Figura : Tabla de pginas en dos niveles.

35/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Tablas de pginas hash

Una tcnica comn para gestionar los espacios de direcciones


superiores a 32 bits sonsite en utilizar una tabla hash de
pginas.
Cada entrada de la tabla hash contiene una lista enlazada de
los elementos que tienen como valor hash una misma
ubicacin.
Cada elemento est compuesto de tres campos:
1
2
3

El nmero de la pgina virtual


El valor del marco de pgina mapeado
Apuntador al siguiente elemento de la lista

36/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Tablas de pginas hash

Figura : Tabla de pginas hash.

36/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Tablas de pginas invertidas

Usualmente, cada proceso tiene una tabla de pginas asociada.


La tabla de pginas incluye una entrada por cada pgina que el
proceso est utilizando.
El sistema operativo debe traducir cada referencia a una
direccin fsica.

Desventaja
Cada tabla de pginas puede estar compuesta por millones de
entradas y pueden ocupar gran cantidad de memoria fsica.
Para resolver el problema se puede utilizar una tabla de
pginas invertida.
37/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Tablas de pginas invertidas


Las tablas de pginas invertidas tiene una entrada por cada
marco de memoria.
Cada entrada est compuesta de la direccin virtual de la
pgina almacenada en dicha ubicacin de memoria real e
incluye informacin del proceso que posee dicha pgina.

Ventaja
En el sistema habr una nica tabla de pginas y esa tabla slo
tendr una entrada por cada pgina de memoria fsica.
Las tablas de pginas invertidas requieren a menudo que se
almacene un identificador del espacio de direcciones en cada
entrada de la tabla de pginas.
38/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Tablas de pginas invertidas


Traduccin de direcciones

Cada entrada de la tabla de pginas invertida es una pareja


< id proceso, numero pagina >.
La traduccin de direcciones realiza como sigue:
1 Cuando se produce una referencia a memoria, se presenta al
subsistema de memoria una parte de la direccin virtual
< id proceso, numero pagina >.
2 Se explora la tabla de pginas invertida en busca de una
correspondencia.
3 Si se encuentra la correspondencia (ej. i), se generar la
direccin fsica <i,desplazamiento>.
4 Si no se encuentra la correspondencia, quierra decir que se ha
realizado un intento de acceso ilegal a una direccin.

39/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

ndice
1 Fundamentos
2 Intercambio
3 Asignacin de memoria contigua
4 Paginacin
5 Estructura de la tabla de pginas
6 Segmentacin

Mtodo bsico
Hardware
40/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
Definicin
La segmentacin es un esquema de gestin de memoria que soporta
la visin de la memoria que tienen los usuarios.
Un espacio lgico de direcciones es una coleccin de
segmentos y cada segmento tiene un nombre y una longitud.
Las direcciones especifican tanto el nombre del segmento como
el desplazamiento dentro de ese segmento.
Por simplicidad de implementacin, los segmentos estn
numerados y se hace referencia a ellos mediante el nmero de
segmento, en lugar de utilizar el nombre del segmento.
Una direccin lgica tiene la estructura:
<nmero-segmento,desplazamiento>.
41/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Mtodo bsico
Definicin
La segmentacin es un esquema de gestin de memoria que soporta
la visin de la memoria que tienen los usuarios.
Normalmente, el programa de usuario se compila y el
compilador construye automaticamente los segmentos para
reflejar el programa de entrada.
Un compilador de C, podra generar segmentos separados para
los siguientes elementos:
1
2
3
4
5

El cdigo
Las variables globales
El cmulo de memoria
Las pilas utilizadas por hilos independientes de ejecucin
La biblioteca C estndar
41/42

Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Hardware
El mapeo de direcciones se realiza mediante la tabla de
segmentos.
Cada entrada de la tabla de segmentos tiene una direccin
base del segmento y un lmite del segmento.
base: contiene la direccin fisica inicial del lugar donde el
segmento reside dentro de la memmoria
lmite: especifica la longitud del segmento

Una direccin lgica estar compuesta de dos partes:


1

nmero de segmento (s): se utiliza como ndice para la tabla


de segmentos.
desplazamiento (d): debe estar comprendido entre 0 y el lmite
del segmento, si no lo est se producir una interrupcin hacia
el sistema operativo.

Cuando un desplazamiento es legal, se le suma a la direccin


base del segmento para generar la direccin de memoria fsica
del byte deseado.
42/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Hardware

Figura : Hardware de segmentacin.

42/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Introduccin

Intercambio

Asignacin de memoria

Paginacin

Tabla de pginas

Segmentacin

Hardware

Figura : Ejemplo de segmentacin


42/42
Unidad III: Administracin de memoria Memoria principal

Hermes Francisco Montes Casiano

Potrebbero piacerti anche