ut01-gestion-memoria.doc
TRANSCRIPT
EVALUACIN DEL PROCESO ENSEANZA-APRENDIZAJE
UT01: gestin de la memoria
1 asirantonio j. len delgado37313-iso
1.1.- Introduccin.
La memoria es un recurso que hay que gestionar con sumo cuidado puesto que el comportamiento del sistema en su conjunto depende en gran medida de la administracin del mismo.
La misin del gestor de memoria es la asignacin de memoria a los procesos que la soliciten.
La gestin de la memoria vara si el sistema es monotarea (slo se tiene un proceso cargado) o es multitarea (varios procesos cargados en memoria)
1.2.- Sistemas operativos de proceso nico
Es el esquema ms simple. La memoria se divide en dos secciones: una para el proceso del usuario y otra para la parte del sistema operativo que debe estar residente en memoria. Slo se debe controlar que el programa no alcance direcciones de memoria destinadas al sistema operativo.
Monitor del sistema operativo
Zona de procesos transitorios (slo un proceso)
1.3.- Gestin de memoria con particiones estticas.
Una forma de realizar la multiprogramacin consiste en dividir la memoria fsica disponible en varias particiones y asignar cada una a un proceso. La divisin se realiza con anterioridad a la ejecucin de los programas de usuario. El nmero y tamao de las particiones se determinan teniendo en cuenta los factores siguientes:
- Capacidad de la memoria disponible y el grado de multiprogramacin deseado.
- Tamaos tpicos de los procesos ejecutados ms frecuentemente.
Aparece el concepto de intercambio (swapping), que hace referencia a las operaciones de eliminar de la memoria principal procesos suspendidos, llevarlos al disco y cargar del disco a la memoria principal procesos para su ejecucin. Los procesos que se llevan a memoria secundaria se almacenan en el llamado archivo de intercambio.
1.3.1- Seleccin del tamao de la particin: fragmentacin
Se denomina fragmentacin de la memoria al desaprovechamiento de sta. Existen dos tipos:
Interna.- Memoria que no se est usando pero que es interna a una particin.
Externa, que ocurre cuando una particin disponible no se emplea porque es muy pequea para cualquiera de las tareas que esperan ser cargadas.
En el esquema de particiones fijas se puede producir fragmentacin interna y externa.
Ejemplo:
Inicialmente disponemos de 3 particiones vacas.
Paso 1: llega p1 de 19 Kb y es alojado en la de 20 Kb.
Paso 2: llega p2 de 11 Kb y es alojado en la de 15 Kb.
Paso 3: llega p3 de 5 Kb y es alojado en la de 10 Kb.
Tenemos: fragmentacin interna de 10 Kb (1 Kb de p1, 4 Kb de p2 y 5 Kb de p3). En este ejemplo el grado de multiprogramacin es 3.
Memoria RAM (45 Kb.)
1.4.- Gestin de la memoria con particiones variables.
En este esquema, inicialmente toda la memoria est disponible y se considera como un gran bloque. Cuando llega una tarea se busca un bloque disponible suficientemente grande asignndosela en caso afirmativo. El resto de la memoria queda disponible. En este esquema se puede producir fragmentacin externa.
Ejemplo:
Inicialmente disponemos de 1 particin de 45 Kb.
Paso 1: llega p1 de 20 Kb y es alojado. Quedan 25 Kb libres.
Paso 2: llega p2 de 10 Kb y es alojado. Quedan 15 Kb libres.
Paso 3: llega p3 de 5 Kb y es alojado. Quedan 10 Kb libres.
Paso 4: Acaba p1 que libera 20 Kb y llega p4 de 25 Kb. Tenemos 30 Kb libres pero al no estar contigua no se puede cargar: fragmentacin externa. La solucin sera compactar la memoria juntando los huecos libres en una nica particin, pero se trata de un proceso lento. La solucin es la paginacin que la veremos en la siguiente pregunta.
Memoria RAM (45 Kb)
45 Kb libres
P1 de 20 kbP1 de 20 Kb
P1 de 20 Kb20 kb libres
25 Kb libresP2 de 10 KbP2 de 10 KbP2 de 10 Kb
15 Kb libresP3 de 5 KbP3 de 5 Kb
10 Kb libres10 Kb libres
1.5.- Paginacin.
Los dos anteriores mtodos obligaban al proceso a cargarse en zonas consecutivas de memoria. La paginacin permite cargar un programa en memoria siempre que disponga de espacio, aunque ste no sea adyacente. Previamente, se divide al proceso en partes llamadas pginas y a la memoria RAM en otras del mismo tamao llamadas marcos de pgina.
1.6.- Memoria virtual.
Hasta ahora, los sistemas de gestin de la memoria suponen que el proceso a ejecutar se carga por completo en memoria. La idea de permitir la ejecucin de procesos que puedan no estar cargados completamente en memoria e incluso sus tamaos superen a la memoria fsica disponible da lugar al concepto de memoria virtual. El sistema operativo mantiene en la memoria principal aquella parte del proceso que se utiliza en cada momento y el resto permanece en el disco.
La realizacin de la memoria virtual puede determinar el rendimiento de un sistema informtico y hay que tener cuidado. Normalmente, la tcnica de la memoria virtual se mezcla con la paginacin.
El sistema operativo lleva a cabo la gestin de la memoria virtual segn unos determinados algoritmos. Nosotros slo veremos dos: FIFO y LRU.
Ejemplo:
Se dispone de un s.o. con gestin de memoria por demanda de pgina. La asignacin se hace con cuatro marcos de pgina. Se pide:
Calcular los fallos de pgina que se producen con los algoritmos FIFO y LRU para la siguiente cadena de referencia: 7, 5, 6, 1, 0, 8, 3, 4, 3, 3, 1, 2, 8, 6, 2, 3, 5, 3 y 4.
Inicio7561083433128623534TOTAL
-7561083444128663554
--756108333412886335
---75610888341228663
----7561000834112886
Fallosxxxxxxxxxxxxxxx15
Inicio7561083433128623534TOTAL
-
-
-
-
Fallos
20 kbP1 P1p115 Kb15 KbP2p210 Kb10 kb10 KbP3
4