Post on 11-Oct-2015
Carolina Maoso, 2002
Convivencia
Gestin de la MemoriaGestin de la MemoriaGestin de la Memoria
Dra. Carolina MaosoDpto. Informtica y Automtica.UNED
Carolina Maoso, 2002
Introduccin (1/2)
Para que un proceso est preparado para ejecucin debe estar cargado en memoria principal
La misin del gestor de memoria es la asignacin de memoria principal a los procesos que la soliciten
El espacio vacante se puede utilizar para cargar procesos que estn ya preparados para su ejecucin, de forma que el planificador est en mejores condiciones de preparar las tareas que se van a ejecutar
Carolina Maoso, 2002
Introduccin (2/2)
Un slo procesoMonitor
Particiones FijasIntercambio/Reubicacin
Particiones Variablesprimero en ajustarse...
Paginacin Segmentacin Pag./Seg.
Memoria Virtual
Varios procesosMultiprogramacin
Sistemas de Gestin de Memoria
Carolina Maoso, 2002
Gestin de memoria de un solo proceso
Sin gestin de Memoria: El usuario se encuentra con la mquina desnuda y tiene un control completo sobre el espacio total de la memoria (hasta los 60)
La memoria esta dividida en dos secciones: Una est asignada permanentemente a la parte del s.o. que
debe estar residente en memoria o monitor La otra se asigna a los llamados procesos transitorios, que
son cargados y ejecutados uno cada vez, en respuesta a rdenes de usuario
La memoria esta dividida en tres secciones: La parte inferior (en RAM) est asignada al s.o. La parte central al nico programa del usuario La parte superior (en ROM, (BIOS)) a los controladores de
dispositivos
Monitor
Usuario
0
Max
0
Max
Monitor
Usuario
Controladores
Carolina Maoso, 2002
Multiprogramacin
Multiprogramacin: permite el entrelazado y el solapamiento de la ejecucin de ms de un programa de forma que se mantenga del modo ms ocupado posible todos los recursos
Se utiliza el trmino multitarea para referirse a la capacidad que tienen los s.o. de ejecutar de forma simultnea varios
procesos. El trmino multiprogramacin es ms general pues incluye adems de la posibilidad de multitarea, la capacidad
de gestin de memoria y de los ficheros
Carolina Maoso, 2002
Particiones fijas (1/3)
Consiste en divisiones de memoria que se efectan en algn momento antes de ejecutar los programas de usuario y permanecen fijas desde entonces
El nmero de particiones distintas determina el grado de multiprogramacin
Problema: la fragmentacin interna o memoria desaprovechada dentro de una particin
Carolina Maoso, 2002
Particiones fijas (2/3)
Una vez definidas las particiones, el s.o. necesita llevar la cuenta de sus estados, libre o en uso para propsitos de asignacin
El estado y los atributos de las particiones se recogen en una estructura de datos llamada tabla de descripcin de particiones (TDP).
Cada particin est descrita por su direccin inicial (base), su tamao y su estado. Los campos de la base y tamao son fijos
Carolina Maoso, 2002
Particiones fijas (3/3)
Otra organizacin posible es asignar una cola de tareas a cada particin en memoria y las tareas se incluyen en la cola de la particin de memoria correspondiente a sus exigencias de memoria
Estrategias de asignacin de particiones: Primer ajuste Mejor ajuste
Carolina Maoso, 2002
Intercambio o sawpping (1/2)
Corresponde a las operaciones de eliminar de memoria principal los procesos suspendidos, llevarlos al disco y cargar del disco a la memoria principal procesos para su ejecucin
Las funciones a realizar son: La seleccin de los procesos que hay que eliminar de la memoria
principal La seleccin de los procesos que hay que cargar en memoria
principal La asignacin y gestin del espacio de intercambio
Carolina Maoso, 2002
Intercambio o sawpping (2/2)
El intercambiador efecta la mayora de las funciones del planificador a medio plazo
Se corre el peligro del trasiego o thrashing provocado por la retirada repetida de procesos de memoria casi inmediatamente despus de ser cargados en la memoria
Hay que disponer de un archivo de intercambio para almacenar la imagen dinmica del proceso retirado, as se puede tener: Archivo de intercambio global del sistema Archivos de intercambio dedicados, uno por cada proceso
Carolina Maoso, 2002
Reubicacin
Se refiere a la capacidad de cargar y ejecutar un programa determinado en una posicin arbitraria de memoria, en contraposicin a un nmero fijo de posiciones especificadas en el momento de la traduccin del programa
Dependiendo de cundo y cmo tenga lugar la traduccin del espacio de direcciones virtuales al espacio de direcciones fsicas tendremos dos tipos de reubicacin: Esttica Dinmica: se implementa mediante registros base especializados
Carolina Maoso, 2002
Proteccin
En sistemas que utilizan registros base para la reubicacin es habitual utilizar registros lmite para la proteccin
Los valores base y lmite de cada proceso se guardan en su BCP
Otro mtodo de proteccin es registrar los derechos de acceso en la propia memoria, asociando unos cuantos bits de proteccin con grandes bloques de memoria llamadosclave
Carolina Maoso, 2002
Fragmentacin de Memoria
Existen dos tipos de desaprovechamiento de la memoria:
Fragmentacin interna: consiste en aquella parte de la memoria que no se est usando porque es interna a una particin asignada a una tarea
Fragmentacin externa: ocurre cuando una particin disponible no se emplea porque es muy pequea para cualquiera de las tareas que esperan
La seleccin de los tamaos de las particiones es un compromiso entre estos dos casos de fragmentacin
Carolina Maoso, 2002
Ejercicio 1
Prctica de particiones fijas
Considerar un sistema con intercambio, en el que la memoria posee particiones libres de tamao fijo: 1000Kb, 400Kb, 1800Kb, 700Kb,900Kb, 1200Kb y 1500Kb. Estos huecos estn dispuestos en el orden dado. Se tienen tres procesos de tamaos 1200Kb, 1000Kb y 900Kb. Para los algoritmos:
- Primero en ajustarse- Mejor en ajustarse- Peor en ajustarse- Siguiente en ajustarse
a) Qu huecos sern asignados?b) Qu algoritmo aprovecha mejor la memoria?
Carolina Maoso, 2002
Solucin 1 (1/4)
Prctica de particiones fijas
a) Para el algoritmo primero en ajustarse:Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1000 0900Kb 900 0
Para el algoritmo mejor ajustarse:
Segmento Hueco asignado Fragmentacin1200Kb 1200 01000Kb 1000 0900Kb 900 0
Carolina Maoso, 2002
Solucin 1 (2/4)
Prctica de particiones fijas
Para el algoritmo peor en ajustarse:
Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1500 500900Kb 1200 300
Para el algoritmo siguiente en ajustarse:
Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1200 200900Kb 1500 600
Carolina Maoso, 2002
Solucin 1 (3/4)
Prctica de particiones fijas
Si el sistema de gestin de memoria es de particiones fijas (como indica el enunciado) el problema es la fragmentacin interna. En este caso el algoritmo que mejor aprovecha la memoria es el mejor en ajustarse dado que la fragmentacin interna es nula, despus el algoritmo primero en ajustarse con fragmentacin interna de 600 y finalmente los otros dos queproducen una fragmentacin interna de 1400
Carolina Maoso, 2002
Solucin 1 (4/4)
Prctica de particiones fijas
Sin embargo, si las particiones libres dadas se corresponden con el estado de la memoria en un instante dado de una gestin de memoria con particiones variables entonces se estar hablando de fragmentacin externa que en esta caso no tiene lugar, dado que los nuevos bloques libres son lo suficientemente grandes para alojar a otros procesos que vengan posteriormente.En cualquier caso y a la vista de estos resultados se puede concluir que el algoritmo que mejor aprovecha la memoria es el mejor en ajustarseporque se ajusta exactamente a los bloques libres dados y esto impide que se creen bloques pequeos no utilizables como era de esperar en este tipo de algoritmo
Carolina Maoso, 2002
Particiones dinmicas (1/2)
Cuando se pide que se cargue una imagen de un proceso en memoria, el mdulo de gestin intenta crear una particin adecuada que asignar al proceso en cuestin, para ello es preciso localizar un rea libre de memoria que sea igual o mayor que el proceso, si es as se fabrica la particin
La gestin de la memoria con particiones libres plantea el problema de mantenimiento de un registro de particiones libres y ocupadas que sea eficiente, tanto en tiempo para la asignacin como para el aprovechamiento de la memoria. Formas de mantener este registro: Mapa de bits Listas enlazadas para las particiones libres y asignadas El sistema de los asociados
Carolina Maoso, 2002
Los algoritmos ms habituales para la seleccin de un rea libre de memoria a la hora de la creacin de una particin son: Primer ajuste Siguiente ajuste Mejor ajuste Peor ajuste
Problema la fragmentacin externa o memoria desaprovechada entre particiones
La diferencia esencial con la gestin esttica, es que las entradas a la TDP se utilizan slo para definicin de las particiones creadas y asignadas y las reas libres se describen en la lista de memoria libre
Particiones dinmicas (2/2)
Carolina Maoso, 2002
Compactacin
Si la memoria resulta seriamente fragmentada, la nica salida posible es reubicar algunas o todas las particiones en un extremo de la memoria y as combinar los huecos para formar una nica rea libre grande a este proceso se le llama compactacin
Como los procesos afectados deben de ser suspendidos y copiados realmente de un rea de memoria a otra, es importante decidir cuando debe realizarse la compactacin
Carolina Maoso, 2002
Ejercicio 2
Prctica de compactacin
Calcular el porcentaje de tiempo de UCP utilizado para la compactacin de la memoria en una mquina de 1Mb de memoria. La compactacin se hace cada 0,5 seg. y se tarda 300 nseg. en copiar un byte. Los espacios desaprovechados en promedio son del50% del tamao de los bloques
Carolina Maoso, 2002
Solucin 2 (1/2)
Prctica de compactacin
Se entiende por compactacin la tcnica que permite mover todos los procesos hacia la parte inferior (o superior) de la memoria de forma que es posible combinar todos los bloques libres en uno grande. Con esta tcnica se pala el problema de la fragmentacin externa de algunos sistemas de gestin de memoria. La cuestin que se resuelve es la siguiente: La memoria que debe ser asignada a un proceso nuevo en particular debe ser contigua, pero la memoria libre disponible se halla dispersa debido a la fragmentacin externa por lo que no se puede usar. En cualquier caso la solucin de la compactacin resulta ser un mtodo de muy alto coste
Carolina Maoso, 2002
Solucin 2 (2/2)
Prctica de compactacin
El espacio desaprovechado es del 50%, ello indica que se deben trasladar a un extremo de la memoria el 50% de la misma, es
decir 0,5Mb. Por lo tanto, el nmero de bytes que se debe trasladar es:
El tiempo total para el traslado es:
Si cada 0,5 seg se pasa 0,1573 seg compactando, entonces cada 1 seg estar 0,3146 seg, por lo que el 31,46% del tiempo de CPU se est desaprovechado en tiempos de compactacin. Obsrvese el elevado tiempo que se utiliza para las tareas de compactacin como se comentaba al inicio del problema
seg 1573,0910.300524288 ==CPUT
bytes 5242885,0)10241024( ==M
Carolina Maoso, 2002
Paginacin (1/4)
Se suprime el requisito de la asignacin contigua de memoria fsica a un programa
La memoria fsica se divide conceptualmente en una serie de porciones de tamao fijo, llamadas marcos de pgina
El espacio de direcciones virtuales de un proceso se divide adems en bloques de tamao fijo del mismo tamao llamados pginas
La asignacin de memoria consiste en hallar un nmero suficiente de marcos de pgina sin utilizar para cargar en ellos las pginas del proceso solicitante
Carolina Maoso, 2002
Paginacin (2/4)
Puesto que cada pgina se hace corresponder separadamente, los diferentes marcos de pgina asignados a un solo proceso no necesitan ocupar reas contiguas de memoria fsica
Cada direccin virtual esta dividida en dos partes: El nmero de pgina El desplazamiento dentro de esa pgina
Para efectuar la traduccin de las direcciones, el nmero de pgina se emplea como un ndice en la tabla de pginas y la direccin fsica se construye sustituyendo, el primer campo en el que se divide la direccin, el nmero de pgina por el marco de pgina correspondiente
Carolina Maoso, 2002
Paginacin (3/4)
Memoria
CPU
Tabla de Pginas
000
001
002
003
102
FFC
104
FFE
002 0FF 104 0FF
102000
103000104000
1040FF
101000
Direccin Lgica Direccin Fsica
Carolina Maoso, 2002
Paginacin (4/4)
Si el tamao de un proceso dado no es mltiplo entero del tamao de la pgina, el ltimo marco de pgina puede estar parcialmente inutilizado, esto se llama fragmentacin oruptura de pgina
Para acelerar el proceso de traduccin de direcciones: La utilizacin de registros especficos para la tabla de pginas es
adecuada si la tabla de pginas es pequea. Un mtodo comnmente utilizado es utilizar una memoria asociativa
de alta velocidad para almacenar un subconjunto de las entradas de la tabla del mapa de pginas ms frecuentemente utilizadas. Estamemoria se denomina buffer para apartado de traducciones (BAT)
Carolina Maoso, 2002
Ejercicio 3 (1/2)
Prctica de paginacin
Supngase que la tabla de pginas de un proceso que se est ejecutando en el procesador es:
N de Pg. N de Marco de Pg. R M V0 4 1 0 11 7 1 1 12 --- 0 0 03 2 0 0 14 --- 0 0 05 0 0 1 1
Carolina Maoso, 2002
Ejercicio 3 (2/2)
Prctica de paginacin
R: es el bit de referencia. R=1 (la pgina ha sido referenciada)M: es el bit de modificacin. M=1 (la pgina ha sido modificada)V: es el bit de Presente/ausente. V=1 (la pgina en cuestin est en memoria principal, tiene un marco asociado)El tamao de las pginas es de 1kb. El marco 0 est cargado el la direccin fsica cero y el resto sucesivamenteSe pide: A qu direcciones fsicas corresponden las siguientes direcciones virtuales?a). (1, 125) b). (2, 324) c). (5, 322) d). (7, 321) e). (3, 1026)El formato en el que se da la direccin virtual corresponde a (n de pgina, desplazamiento)
Carolina Maoso, 2002
Solucin 3 (1/2)
Prctica de paginacin
La direccin fsica, de acuerdo con el sistema de paginacin, ser el nmero de marco multiplicado por el tamao de marco ms el desplazamiento dentro de l Direccin Fsica = N de Marco Tamao de Marco + DesplazamientoSe ha de tener en cuenta, que:
- Exista la pgina- El desplazamiento no supere el tamao del marco
Sino en ambos casos se tendr un error de direccionamiento; Adems la pgina ha de tener un marco asociado, sino tendr lugar un fallo de pgina
Carolina Maoso, 2002
Solucin 3 (2/2)
Prctica de paginacin
a) Direccin_fsica=7*1024+125=7293
b) La pgina 2 no tiene ningn marco asociado, por lo tanto, tiene lugar un fallo de pgina.
c) Direccin _fsica=0*1024+322=311
d) Error de direccionamiento porque no existe la pgina 7.
e) Error de direccionamiento porque 1026>1024, el desplazamiento es mayor que el tamao del marco
Carolina Maoso, 2002
Segmentacin (1/9)
La idea es dividir el espacio de direcciones de un solo proceso en bloques que puedan ser colocados en reas no contiguas de memoria
Los segmentos se forman en tiempo de traduccin del programa mediante la agrupacin de elementos relacionados lgicamente por ejemplo pila, datos, cdigo
El programa de usuario se compila y el compilador construye automticamente los segmentos de acuerdo a la estructura del programa
Carolina Maoso, 2002
Segmentacin (2/9)
El cargador tomar todos estos segmentos y le asignar nmeros de segmento. Por propsito de reubicacin cada uno de los segmentos se compila comenzando por su propia direccin lgica 0
Por lo tanto, las direcciones de los procesos segmentados tienen dos componentes: El nombre (nmero) de segmento El desplazamiento dentro del segmento
Carolina Maoso, 2002
Segmentacin (3/9)
Utilizando una lgica similar a la utilizada para las particiones dinmicas, se puede crear una particin separada, ajustada a las necesidades de cada segmento particular
La base (correspondiente a la direccin fsica en que comienza el segmento, obtenida durante la creacin de la particin) y el tamao de cada segmento se anotan en eldescriptor de segmento
Todos los descriptores de segmento se recogen en una tabla llamada tabla de segmentos (TDS)
Carolina Maoso, 2002
Segmentacin (4/9)
El nmero de segmento, primer parmetro de la direccin lgica, se emplea como ndice dentro de la tabla de segmentos. La direccin fsica se obtiene aadiendo el desplazamiento a la base del segmento
Este desplazamiento no debe sobrepasar el tamao mximo del segmento, si se supera el tamao mximo registrado en la tabla se producira un error de direccionamiento
Carolina Maoso, 2002
Segmentacin (5/9)
Una tabla de segmentos si se mantiene en registros especiales puede ser referenciada muy rpidamente; la suma a la base y la comparacin con el tamao se puede hacer simultneamente
Este mtodo se puede llevar a cabo mientras el nmero de segmentos no sea grande, pero cuando ste crece la tabla de segmentos se deja en memoria
En este caso el acceso a esta tabla se ve generalmente facilitado por medio de un registro hardware dedicado llamado registro base de la tabla de segmento (RBTS) yregistro lmite de la tabla de segmentos (RLTS)
Carolina Maoso, 2002
Segmentacin (6/9)
Para una direccin lgica dada de un segmento se procede:
Se comprueba que el nmero de segmento es correcto (es decir, menor que el registro de la longitud de la tabla de segmentos)
Se suma el nmero de segmento al valor del registro base de la tabla de segmentos para obtener la direccin de memoria para la entrada de la tabla de segmentos
Esta entrada se lee de memoria y se procede como antes, es decir, se comprueba que el desplazamiento no rebasa la longitud del segmento y se calcula la direccin fsica como la suma del registro base de la tabla de segmentos y del desplazamiento
Carolina Maoso, 2002
Segmentacin (7/9)
Memoria
TamaoBase
Direccin Lgica
Nmero de segmento
Desplazamiento