Vous êtes sur la page 1sur 5

08/10/2011

Introduccin
2

Sistemas Operativos.
Gestin de Memoria





Implantacin de Sistemas Operativos


I.E.S. Virgen de la Paloma

La memoria principal es un recurso que el Sistema


Operativo debe encargarse de repartir y asignar
eficientemente.
Un proceso, para poder ser ejecutado, debe estar
almacenado en memoria principal.
La memoria deber entonces compartirse entre el
usuario y los procesos en ejecucin.
Podr utilizar la memoria secundaria, cuando la
memoria principal no sea suficiente.

Funciones del Gestor de memoria (I)


3

Reubicacin: un proceso puede salir y entrar en memoria


varias veces durante su ejecucin, por eso el Sistema
Operativo debe saber traducir las direcciones lgicas del
programa a las direcciones fsicas que ocupar el proceso
cada vez que sea reubicado.

Funciones del Gestor de memoria (II)


4

Escasez: en los sistemas con poca memoria, se utilizar el


disco como ampliacin de la memoria.
 Sistemas

con desplazamiento.
sin desplazamiento: Sistemas Monousario sin
Intercambio.

 Sistemas

 Direcciones fsicas

o absolutas: direcciones reales en memoria


principal.
 Direcciones lgicas: referencias a datos en memoria,
independientemente de dnde se encuentren. Hay que
traducirlas a direcciones fsicas.


 Ejemplo: El

caso de un programa tan grande que no quepa en


la memoria (o en el trozo de memoria que le corresponde). En
ese caso el programador deber disearlo de forma que,
existiendo un mdulo principal, el resto del programa se divida
en mdulos que no necesariamente tengan que convivir en
memoria y que puedan irse solapando a medida que vayan
ejecutndose (overlaying).

Direcciones relativas: que toman como referencia algn punto del


programa. Son parte de las direcciones lgicas.
3

Funciones del Gestor de memoria (III)


5

Funciones del Gestor de memoria (IV)

Proteccin: cuando en memoria conviven varios procesos,


el sistema operativo debe cuidar que cada zona
asignada a un proceso no sea invadida por el resto de
procesos. Esta comprobacin muchas veces se realizar en
tiempo de ejecucin.
 Registro
 Registro

Base.
Lmite.

 Parte

ms baja de la RAM para el Sistema Operativo.


zona para el programa del usuario.
 Una zona ms alta de memoria ROM para los controladores de
dispositivos (BIOS).
 Una

 Para

calcular una direccin absoluta, se suma la direccin


relativa al registro Base, y hay que comprobar que no nos
pasemos del registro Lmite. Si se sobrepasa habr que producir
una Interrupcin, porque estamos invadiendo otro proceso.

Reparto: en sistema ms antiguos la memoria se divida


en tres partes:

En los sistemas modernos podemos distinguir varias


tcnicas de reparto, partiendo de que el S.O. ocupa una
parte fija de la memoria principal y el resto est a
disposicin de los procesos de usuario:
Asignacin Fija
Asignacin Dinmica

Paginacin
Segmentacin
6

08/10/2011

Funciones del Gestor de memoria (VI)

Funciones del Gestor de memoria (V)


7

Asignacin Fija:

Asignacin Dinmica:

 Las

particiones no estn limitadas ni en tamao ni en nmero.


llegan procesos se les asigna memoria consecutivamente.
 Cuando uno se va, se sustituye por otro, que puede ser de menor
tamao que el hueco y producir fragmentacin externa.
 Por ello hay que compactar de vez en cuando.
 Se utilizan tres tcnicas para asignar memoria a los procesos:

 Es

el mtodo ms simple para repartir la memoria.


 Se divide en partes de longitud fija, que podrn ser o no del
mismo tamao, cada una asociada a un proceso.
 Si son de igual tamao no hay problema al intercambiar
procesos en memoria, pero se producir fragmentacin interna
al asignar procesos de tamao pequeo a partes grandes de
memoria.
 Si son de distinto tamao podremos disminuir la fragmentacin
interna, pero se complica la tarea del S.O. de asignar los
procesos a las particiones.
 Conlleva poco trabajo para el administrador.
 No es un sistema eficiente.

 Segn

BEST-FIT O MEJOR AJUSTE: Recorre la memoria desde el principio


y asigna el hueco que tenga el tamao ms parecido al proceso.
FIRST-FIT O PRIMER AJUSTE: Recorre la memoria desde el principio
y asigna el primer hueco disponible capaz de contener el proceso.
NEXT-FIT O SIGUIENTE AJUSTE: Recorre la memoria desde la
ltima ubicacin y asigna el primer bloque disponible y lo
bastante grande para contener el proceso

Funciones del Gestor de memoria (VII)




Funciones del Gestor de memoria (VIII)

Paginacin:

Segmentacin:

10

 Soluciona los

problemas de los anteriores mtodos.


 Memoria dividida en trozos iguales de tamao fijo: marcos de
pgina.
 Procesos divididos en trozos del mismo tamao: pginas.
 El S.O utiliza la tabla de pginas de cada proceso y una tabla de
marcos de pginas y asignar a los procesos marcos de pginas
libres, no necesariamente contiguos, para todas sus pginas.
 Para la traduccin de las direcciones lgicas ahora se necesita
ms que el Registro Base. Ahora constar de un nmero de pgina
y el desplazamiento dentro de la pgina y se convierten en
direcciones fsicas: direccin de marco y desplazamiento.
 Para que sea eficiente el tamao de las pginas debe ser
potencia de 2.

 El

programa se divide en Segmentos cuyo tamao no es fijo,


aunque existe un tamao mximo de segmento.
 El S.O utiliza la tabla de segmentos donde almacena cada
segmento del proceso: direccin de comienzo y tamao.
 Otra tabla de segmentos libres se utilizar para asignar
segmentos a los procesos que entren en ejecucin, no tienen por
qu ser contiguos.
 Las direcciones constarn de un nmero de segmento ms un
desplazamiento.
 Este sistema tiene que contar con la colaboracin del
programador, que dividir sus programas en segmentos.
 La segmentacin ms comn es en: PILA, CODIGO y DATOS.

10

Memoria Virtual
11

Memoria Virtual Paginada (I)

Tcnica que utiliza la memoria secundaria para mantener


ms programas en ejecucin, sin tener que utilizar Overlays:
 Memoria virtual: la

que ve el programador.
 Memoria real: la memoria principal.
 Conjunto residente: trozo de programa que se est ejecutando en
memoria real.
 Si un proceso que se est ejecutando hace referencia a un trozo
de programa que no est en memoria principal se produce un
fallo de pgina y hay que buscarlo en memoria secundaria y
traerlo a la principal. Para ello habr que retirar algn trozo que
ahora est en memoria real.

12

 Tabla de




 Traduccin de

direcciones: las realiza la MMU: Unidad de


Manejo de la memoria. La direccin fsica se formar con el
nmero de pgina (marco de pgina) y un desplazamiento.
 Tamao de las pginas:





11

pginas: Cada entrada de pgina debe contener.

Bit de Presente/Ausente en Memoria Principal.


Marco de pgina en que se encuentra si est Presente.
Bit de Modificacin. Si 1 hay que modificar en Memoria Secundaria.

Si demasiado pequeas: se evita la fragmentacin interna, pero las


tablas de pginas sern demasiado grandes.
Si demasiado grandes: aumenta el nmero de fallos.
Los ms usuales: 512 bytes, 1KB, 2KB, 4KB y 8KB.
12

08/10/2011

Memoria Virtual Paginada (II)


13

Memoria Virtual Paginada (III)


14

 Paginacin multinivel.








Si la tabla de pginas es muy grande, se puede optar por utilizar


tablas a varios niveles. P. Ej: Agrupar pginas de cdigo, de datos,
de pila, etc.
A medida que aumentamos los niveles, aumenta la complejidad.
La solucin sera utilizar una cach especial con las entradas de
pginas: TBL (buffer de traduccin adelantada), dentro de la MMU.

 Asignacin

 Carga


de pginas en memoria:

Paginacin por demanda: traer slo las pginas referenciadas.


Paginacin previa: traer adems otras pginas contiguas a la
referenciada.

 Reemplazo



de pginas a un proceso:

Asignacin fija: el S.O. asigna un n fijo de pginas a un proceso.


Asignacin variable: El n de pginas asignado podr variar
durante la ejecucin del proceso, dependiendo del n de fallos de
pgina.

 Algoritmos


de pginas:

Local: siempre se cambia por otra pgina del mismo proceso.


Global: se puede seleccionar cualquier pgina.
Demonio de paginacin: se activa cada cierto tiempo y revisa qu
pginas pueden salir de la memoria.

de reemplazo de pginas:

ptimo: cada pgina marca cuanto le falta para hacerle referencia.


Imposible de implementar.

13

14

Memoria Virtual Paginada (IV)


15

 Algoritmos


Memoria Virtual Paginada (V)

de reemplazo de pginas:

16

Pgina de uso no reciente (NRU): saca de memoria la pgina que


hace ms tiempo que no se referencia. Dos bits: Referencia y
Modificada.

 Algoritmos


No Modificadas y No Referenciadas.
Modificadas y No Referenciadas.
 No Modificadas y Referenciadas.
 Modificadas y Referenciadas.


de reemplazo de pginas:

Reemplazo de la 2 oportunidad: Como FIFO, pero si una pgina


antigua tiene que salir, si ha sido Referenciada, se deja, se pone R=0
y se coloca al final de la lista.
Pgina usada hace ms tiempo (LRU): Sale la pgina que hace ms
tiempo que no se referencia. Mucha sobrecarga para el sistema.
Basados en buffering de pginas: Dos listas adicionales para el
control de las pginas sacadas de memoria:
Lista de pginas libres: salen de memoria sin sufrir modificacin.
Lista de pginas modificadas: hay que modificar en M. Secundaria.
 Las pginas que salen de memoria, slo lo hacen de la tabla de
asignacin. Si son referenciadas se pueden recuperar.
 La grabacin de las pginas modificadas se puede hacer en bloque.

First In First Out (FIFO): saca la que lleva ms tiempo en memoria.


Fcil de implementar, no muy eficiente.
Reemplazo de reloj: pginas en lista circular y puntero a la ms
antigua. Si ha sido Referenciada se deja.




15

16

Memoria Virtual Paginada (VI)


17

 Algoritmo





Memoria Virtual Paginada (VII)

de fallo de pgina:

18

Se localiza la pgina demandada en el disco.


Se busca un marco libre en la lista de marcos libres.
Si se encuentra, se utiliza, si no se ejecuta el algoritmo de reemplazo.
Si la vctima tiene Modificacin = 1, se transfiere a disco y se
produce un cambio de contexto para ejecutar otro proceso mientras
termina la transferencia, pero marcando el marco de pgina para
que no pueda ser utilizado.
Se traslada la pgina de disco a memoria, y se hace otro cambio de
contexto para ejecutar otro proceso esperando a que la pgina
termine de ser trasferida.
Se carga la pgina en el marco libre, actualizando la Tabla de
Pginas y la Tabla de Marcos.
Se restauran los valores del proceso que qued interrumpido por el
fallo de pgina y se reanuda su ejecucin.
17

18

08/10/2011

Memoria Virtual Segmentada (I)


19

Memoria Virtual Segmentada (II)

 La

segmentacin divida la memoria en trozos de longitud


variable.
 Ventajas:


20

 Tablas


de segmentos

Dispondr de una entrada por cada segmento que disponga el


proceso.
 BIT

PRESENTE/AUSENTE.
PRESENTE: DIRECCIN COMIENZO SEGMENTO + LONGITUD
 BIT MODIFICACIN
 OTROS BITS DE CONTROL

Ms libertad al programador. No debe conocer de antemano cunta


memoria utilizar su programa. Podr utilizar estructuras de datos
crecientes.
Facilita la posibilidad de comparticin de procesos, utilizando los
mismos segmentos.
Aumenta la proteccin al poder estar los contenidos en distintos
segmentos (bien definidos y con sus permisos adecuados).

 SI

Direccin virtual: Nmero de Segmento + Desplazamiento.

19

20

Memoria Virtual Segmentada (III)

Segmentacin Paginada (I)

21

22

 Algunos

sistemas pueden utilizar las dos tcnicas combinadas.


divide el espacio de memoria en segmentos y cada uno en
pginas del mismo tamao que los marcos de memoria.
 Direcciones virtuales: Nmero de segmento + Nmero de
pgina + Desplazamiento.
 Para cada proceso: una tabla de segmentos y para cada uno
una tabla de pginas.
 Se

21

22

Segn los Sistemas Operativos (I)

Segmentacin Paginada (II)

24 Planificacin de

23

memoria en UNIX.

 Es

un modelo muy bsico que se puede implementar en


mltiples sistemas.
 Cada proceso utiliza un espacio de memoria dividido en:


Segmento de Texto:
Podr ser compartido entre procesos.
Slo de lectura.
 Para el cdigo de programa.



Segmento de Pila:

Segmento de Datos:



23

Podr variar su tamao, dentro de un lmite, controlado por el S.O.


Podr variar su tamao durante la ejecucin.
Variables, Constantes, etc. Datos que utiliza el programa.
24

08/10/2011

Segn los Sistemas Operativos (II)


25 Planificacin de

Segn los Sistemas Operativos (III)

memoria en UNIX.

26

Planificacin de memoria en UNIX.


 Si



 Si



corre en mquinas pequeas:


Tcnica de intercambio de Segmentos entre memoria y disco.
Algoritmo de reemplazo: saca los proceso que esperan un ciclo de
E/S lento y aquellos que llevan ms tiempo en memoria, y trae los
procesos cortos y que llevan ms tiempo en disco.

corre en mquinas potentes con memoria virtual:


Tcnica de paginacin por Demanda.
Algoritmo de reemplazo: mantiene la pginas ms recientemente
empleadas.

25

26

Segn los Sistemas Operativos (IV)




27

Segn los Sistemas Operativos (V)

Planificacin de memoria en Windows.

28

Planificacin de memoria en Windows.

 Administrador
 Gestin


de Memoria Virtual (VMM).


de Memoria Virtual Paginada.

Tamao de la pgina: 4KB.

 Estructura




 Estado




de la memoria en forma de rbol:

Directorio de pginas: uno por proceso.


Tabla de pginas: 1024 entradas.
Marco de pgina: de 4KB donde se almacenan los datos del proceso

de las pginas:

Libre: no puede ser accedida por ningn proceso.


Reservada: bloque de direccin virtual reservada para usos futuros.
Encargada: la que ya ha sido asignada al espacio fsico.
27

28

Vous aimerez peut-être aussi