Administració ón de n de memoria memoria

Texto completo

(1)

Fundamentos de los Fundamentos de los Sistemas Operativos Sistemas Operativos

Administraci

Administració ón de n de memoria memoria

Objetivos de la administración:

§ Mantenerse informado de qué parte de la memoria están en uso y cuáles no

§ Asignar memoria a los proceso cuando las necesitan

§ Liberar memoria cuando no se necesita

§ Administrar intercambios entre la memoria

principal y disco duro cuando la memoria principal

es demasiado pequeña para contener todos los

procesos.

(2)

Introducción

Introducción

Ø La memoria es un recurso finito.

Ø Se debe seleccionar qué alojamos.

Memoria (Mb) Disco (Gb)

Sistema Operativo

Introducción

Ø Al comienzo la memoria esta vacia.

Ø Sólo se encuentra el Sist. Operativo.

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1

Introducción

(3)

Introducción

Ø Cuando se ejecuta un proceso, se debe cargar en memoria.

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1

Introducción

Introducción

Ø Cuando no queda más espacio en la memoria se comienza a usar la memoria secundaria (Disco).

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1

Proceso2

Introducción

(4)

Introducción

Ø Se debe seleccionar que porción de memoria baja al almacenamiento secundario.

Memoria (Mb) Disco (Gb)

Sistema Operativo

Proceso1

Proceso2

Introducción

Introducción

Ø Una vez hecho el lugar, se sube el Nuevo proceso.

Ø Cuando el proceso en disco se debe subir, se baja otro proceso

Memoria (Mb) Disco (Gb)

Sistema Operativo Nuevo Proceso Proceso2 Proceso1

Introducción

(5)

Monoprogramación vs.

Multiprogramación

Sistemas Monoprogramación:

Ø En sistemas Monoprogramación, sólo un proceso es ejecutado.

Ø No existen problemas, porque sólo se necesita un proceso en memoria a la vez.

Ø Cuando el proceso termina, se carga en memoria un nuevo proceso para ser ejecutado.

¿Entonces por qué usamos sistemas multiprogramación?

Ventajas de los Sistemas Multiprogramación:

Ø Facilita la programación de aplicaciones al dividirla en dos o más procesos.

Ø Permite proporcionar servicio a varios usuarios simultáneamente.

Ø Permite la programación de aplicaciones más complejas.

Ø Hace un mejor aprovechamiento del tiempo de procesador.

Monoprogramación vs.

Multiprogramación

(6)

0 20 40 60 80 100

1 2 3 4 5 6 7 8

Grado de multiprogramación

Uso de la CPU (%)

Mejor aprovechamiento del tiempo de procesador:

Monoprogramación vs.

Multiprogramación

Administraci

Administració ón de n de memoria memoria

§ Técnicas de administración de memoria

(7)

Adm. de Memoria Real

Administración de memoria en sistemas multiprogramación:

Se puede realizar en dos formas:

Multiprogramación con particiones fijas Multiprogramación con particiones variables

Multiprogramación con particiones fijas:

Ø La memoria se divide en particiones de tamaño fijo.

Ø Cada proceso se ubica en la partición más próxima en tamaño.

Ø No hace un buen aprovechamiento de la memoria ni de la CPU.

Adm. de Memoria Real

(8)

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

Part. 1 3 Mb Part. 2

2 Mb Part. 3

50 6

100 5

1800 4

200 3

1500 2

800 1

Kb Proceso

Adm. de Memoria Real

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1

800 1

Kb Proceso

Adm. de Memoria Real

(9)

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1

1500 2

800 1

Kb

Proceso P2

Adm. de Memoria Real

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1 P2 P3

200 3

1500 2

800 1

Kb Proceso

Adm. de Memoria Real

(10)

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1 P2 P3

P4

1800 4

200 3

1500 2

800 1

Kb Proceso

Adm. de Memoria Real

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1 P2 P3

P4 P5

100 5

1800 4

200 3

1500 2

800 1

Kb Proceso

Adm. de Memoria Real

(11)

Multiprogramación con particiones fijas - ejemplo:

0 Mb 2 Mb 5 Mb 7 Mb 8 Mb

Sist. Op.

P1 P2 P3

P4 P5 P6

50 6

100 5

1800 4

200 3

1500 2

800 1

Kb Proceso

LIBRE!

Adm. de Memoria Real

Multiprogramación con particiones variables:

Ø Cada programa utiliza tanta memoria como necesite.

Ø Se necesita de alguna estructura tipo índice.

Ø Es mas eficiente que las particiones fijas.

Ø Hace mas compleja la asignación y reasignación de memoria.

Adm. de Memoria Real

(12)

Problemas con particiones variables:

Ø Cuando los programas terminan su ejecución se generan agujeros en memoria que quedan desaprovechados:

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1

Proceso2 programas

libre

Adm. de Memoria Real

Problemas con particiones variables:

Ø Cuando los programas terminan su ejecución se generan agujeros en memoria que quedan desaprovechados:

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1 Proceso2

Adm. de Memoria Real

(13)

Problemas con particiones variables:

Ø Cuando los programas terminan su ejecución se generan agujeros en memoria que quedan desaprovechados:

Memoria (Mb) Disco (Gb)

Sistema Operativo Nuevo Proceso

Garbage Proceso2

Adm. de Memoria Real

Soluciones al problema de los agujeros:

Ø Combinación:

ØCuando un programa termina su ejecución, si hay algún bloque de memoria contigua libre las combina para generar un único bloque de memoria.

Bloque 1 Bloque 2

Adm. de Memoria Real

(14)

Soluciones al problema de los agujeros:

Ø Combinación:

ØCuando un programa termina su ejecución, si hay algún bloque de memoria contigua libre las combina para generar un único bloque de memoria.

Memoria

Finaliza el Bloque 1 Bloque 2

Adm. de Memoria Real

Soluciones al problema de los agujeros:

Ø Combinación:

ØCuando un programa termina su ejecución, si hay algún bloque de memoria contigua libre las combina para generar un único bloque de memoria.

Memoria

Finaliza el Bloque 2

Adm. de Memoria Real

(15)

Soluciones al problema de los agujeros:

Ø Combinación:

ØCuando un programa termina su ejecución, si hay algún bloque de memoria contigua libre las combina para generar un único bloque de memoria.

Memoria

Se combinan ambos espacios

Adm. de Memoria Real

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Bloque 1

Bloque 2

Adm. de Memoria Real

(16)

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Memoria

Bloque 2

Finaliza el Bloque 1

Adm. de Memoria Real

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Memoria

Finaliza el Bloque 2 Finaliza el Bloque 1

Adm. de Memoria Real

(17)

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Memoria

Adm. de Memoria Real

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Los bloques libres se agrupan al final de la memoria como un solo bloque

Adm. de Memoria Real

(18)

Soluciones al problema de los agujeros:

Ø Compactación:

ØAgrupa la memoria disponible en un único bloque de memoria al final.

ØEs el método ideal.

ØSu gran desventaja es el alto consumo de CPU.

Memoria

Los bloques libres se agrupan al final de la memoria como un solo bloque

Adm. de Memoria Real

Asignación de memoria:

ØEs necesario hacer una asignación eficiente:

ØSi se asigna un espacio menor, el proceso necesitará reasignarse y se pierde mucho tiempo de CPU.

ØSi se asignan espacios demasiado grandes, se desperdicia mucha memoria.

Adm. de Memoria Real

(19)

Estrategias de asignación de memoria:

Ø First Fit:

Se busca la primer sección de memoria libre que sea lo suficientemente grande como para cubrir nuestros requerimientos.

ü Es fácil de implementar.

ü Va dejando muchos espacios de diversos tamaños.

ü La parte de la memoria por donde se inicia la búsqueda tiene mucha fragmentación.

Adm. de Memoria Real

Estrategias de asignación de memoria:

Ø Best fit:

El algoritmo best fit busca en toda la memoria el espacio que mejor se adapta al tamaño requerido.

Ø Es más difícil de implementar.

Ø Examinar todo el espacio no es demasiado dificultoso, mientras no esté fragmentado.

Ø Luego de un tiempo habrá multitud de pequeños fragmentos

Ø Los espacios libres se pueden combinar con otros.

Adm. de Memoria Real

(20)

Estrategias de asignación de memoria:

Ø Worst fit:

Se busca la sección de memoria libre más grande y se particiona.

Ø Deja los espacios restantes más grandes.

Ø Las simulaciones y el estudio de casos

reales ha demostrado que el comportamiento a largo plazo de los algoritmos first fit y best fit son mejores que el worst fit.

Ø El algoritmo más rápido es el first fit.

Adm. de Memoria Real

Memoria Virtual - Introducción:

ØEl tamaño de los programas, datos y la pila pueden ser mayores que la memoria disponible.

ØEl S.O. guarda aquellas partes del programa de uso corriente en la memoria principal y el resto, en disco.

ØEl S.O. se apoya en el almacenamiento secundario para extender el uso de la memoria (swapping).

Adm. de Memoria Virtual

(21)

Memoria Virtual - Introducción:

Ø Las direcciones de memoria que referencian a la memoria real se denominan "direcciones reales“.

Ø Las referencias a memoria de un proceso pueden ser “no reales” (virtuales).

Ø La memoria virtual permite usar más memoria que la disponible físicamente.

Ø Cuando un proceso hace swapping, otro usa la CPU.

Adm. de Memoria Virtual

Memoria Virtual - Introducción:

ØLa memoria física se encuentra completa.

ØSe ejecuta un nuevo programa.

Memoria (Mb) Disco (Gb)

Sistema Operativo Proceso1

Proceso2 Memoria

virtual Programas

Adm. de Memoria Virtual

(22)

Memoria Virtual - Introducción:

ØSe selecciona un proceso y se swappea a Disco.

Memoria (Mb) Disco (Gb)

Sistema Operativo

Proceso2 Memoria

virtual Programas

Proceso1

Adm. de Memoria Virtual

Memoria Virtual - Introducción:

ØEl nuevo proceso se carga en la memoria principal.

Memoria (Mb) Disco (Gb)

Sistema Operativo Nuevo Proceso Proceso2 Memoria

virtual Programas

Proceso1

Adm. de Memoria Virtual

(23)

Paginación:

Ø Las direcciones virtuales deben ser

transformadas en direcciones reales mientras el proceso está en ejecución.

Ø La memoria se divide en bloques pequeños de tamaño fijo llamados páginas.

Ø El sistema lleva una tabla de páginas para cada proceso

Adm. de Memoria Virtual

Paginación

Ø ¿Es necesario tener todas las paginas en memoria?

Ø Si una página se usó pocas veces, ¿es necesario que siga ocupando lugar en memoria?

Ø Se pueden tener solo las páginas necesarias, intercambiando páginas “viejas” por páginas

“nuevas” se pueden tener procesos más

Adm. de Memoria Virtual

(24)

Fallo de página:

Ø Se llama fallo de página cuando un

proceso intenta acceder a una página que ha sido swappeada a disco.

Ø La página no se encuentra en memoria y no puede ser leída por el proceso.

Ø La página se debe subir a memoria.

Adm. de Memoria Virtual

Manejo de los Fallos de página :

1. Verificar si la referencia a la página es válida.

2. Si la referencia no es válida, se suspende la ejecución del proceso.

3. Encontrar un frame disponible para cargarla.

4. Solicitar operación de E/S para leer la página de disco y cargarla.

5. Modificar la tabla interna y la tabla de páginas.

6. Continuar con la ejecución del proceso.

¿Y si no hay frames disponibles?

Adm. de Memoria Virtual

(25)

Reemplazo de página : 1. Buscar un frame disponible.

2. Si hay un frame disponible usarlo.

3. Si no hay frames disponibles utilizar un algoritmo de reemplazo de paginas para seleccionar un frame víctima.

4. Escribir la página víctima a disco y actualizar tabla de páginas.

¿Cuáles son los algoritmos?

Adm. de Memoria Virtual

Algoritmos de reemplazo de páginas :

1. FIFO (Primero en entrar, Primero en Salir) 2. Algoritmo de Segunda Chance

3. LRU (Usada Menos Recientemente) 4. LFU (Usada Menos Frecuentemente) 5. MFU (Usada Más Frecuentemente) 6. PFF (Frequencia de Fallos de página) 7. Working-Set (Grupo de trabajo)

Adm. de Memoria Virtual

(26)

1. FIFO (Primero en entrar, Primero en Salir)

Ø Se reemplaza la página que hace más tiempo que está en memoria.

Ø El funcionamiento es similar al de una cola:

ü Un nuevo elemento se agrega al final de la cola y se elimina el primero.

Ø Muy sencillo de implementar, pero no es funcional:

ü La primer página en ingresar no necesariamente es la menos utilizada.

Adm. de Memoria Virtual

2. Algoritmo de Segunda Chance

ØSimilar al FIFO pero mantiene bit de referencia por página.

ØCada vez que se selecciona una página a reemplazar, se inspecciona el bit de referencia:

üSi el valor es 0 se procede a reemplazarla.

üSi el valor es 1, se coloca al tope de la lista, se selecciona la siguiente víctima y se setea el bit en 0.

ØSi una página vuelve a ser accedida, se setea el bit a 1:

üUna página con muchas referencias va a mantener su bit en 1 y no va a ser reemplazada.

Adm. de Memoria Virtual

(27)

3. LRU (Usada Menos Recientemente)

ØSe selecciona la página que hace más tiempo que no se utiliza.

ØEn LRU se necesita llevar tiempo de última utilización de cada página.

ØEs muy efectivo y disminuye notablemente los Fallos de página.

ØEs prácticamente irrealizable por su costo de implementación.

Adm. de Memoria Virtual

4. LFU (Usada Menos Frecuentemente)

ØEstablece que la página con menor cantidad de referencias debe ser reemplazada.

ØDESVENTAJA:

ü Una página muy utilizada en la carga de un proceso se estaría manteniendo en memoria cuando no es necesaria para la ejecución.

Adm. de Memoria Virtual

(28)

5. MFU (Usada Más Frecuentemente)

ØLa página con mayor cantidad de referencias es la víctima a ser reemplazada.

ØEl argumento es que si una página fue utilizada pocas veces, se debe a que recién fue cargada en memoria y aún deba ser utilizada.

ØDESVENTAJA:

ü Si tenemos un proceso con repetidos accesos a una página, ocurrirán muchos fallos.

ØEste algoritmo no se utiliza en la práctica.

Adm. de Memoria Virtual

6. PFF (Frequencia de Fallos de página)

ØSe asigna una cantidad fija de frames a cada proceso.

ØSe controla el PFF de cada proceso:

ü Si es muy bajo se debe a que está utilizando demasiados frames en memoria.

ü Si es muy alto, no tiene suficientes frames otorgados.

ØSe define un límite superior e inferior de PFF a cada proceso.

Adm. de Memoria Virtual

(29)

7. Working-Set

ØSituación de trash:

ü Cuando un proceso consume más tiempo paginando que ejecutando.

ØSe busca evitar esta situación:

ü Se utiliza un mecanismo de reemplazo de paginas

"local".

ü Cuando un proceso comienza a paginar, no puede robar frames de otros procesos.

ØWorking-Set:

ü Conjunto de páginas activas de un proceso que son almacenadas en memoria.

Adm. de Memoria Virtual

Preguntas

Preguntas

Figure

Actualización...

Referencias

Actualización...

Related subjects :