Professional Documents
Culture Documents
Tema
Gestin de Memoria
5. Conclusiones
Jerarqua de Almacenamiento
Registros Cach Memoria principal Disco Magntico Cinta Magntica Jerarqua tradicional de memoria
No voltil
Disco Magntico
Cinta Magntica Cinta magntica Disco ptico
Externa
condiciones en la jerarqua : - Al bajar de nivel aumenta la capacidad de la memoria. - Al bajar de nivel disminuye el coste por bit. - El registro es el ms costoso, despus el cache, etc... - Al bajar de nivel se observa que el tiempo de acceso aumenta. Acceder al disco ptico es ms lento que al disco magntico. - Al bajar de nivel, disminuye la frecuencia de acceso: el numero de veces que accede a la memoria. Tambin conocido como principio de localidad o cercana de referencia:
Establece que un proceso durante su funcionamiento hace referencia a muchas funciones, pero durante un breve espacio de tiempo, el proceso referencia a un pequeo grupo de referencias.
La cach intenta que el tiempo de acceso sea mucho ms rpido para no tener que acceder a disco o Memoria principal, la diferencia entre Memoria interna y Memoria externa, es el disco magntico, tambin suele conocerse como Memoria secundaria.
Programa fuente
Compilador o Ensamblador
Mdulos Objeto
Enlazador
Biblioteca del Sistema Cargada Dinmicamente Mdulo de Carga
Cargador
3. Conceptos sobre Gestin de memoria Fases para que un programa se convierta en proceso:
Dir simblica: no tienen nada que ver con la posterior ubicacin fsica de ese dato, normalmente es cdigo empleado por el programador.
Direcciones Simblicas
PROGRAM
0
Direcciones relativas
PROGRAM JUMP 400
400
Direcciones absolutas
1024 PROGRAM JUMP 1424 1424 LOAD 2224 DATA
i JUMP I
LOAD J
LOAD 1200
J DATA
1200
DATA
2224
Dir relativa: Estas direcciones normalmente son las que utiliza el cargador y el enlazador. JUMP 400: significa, desde el principio saltar 400. Dir. absolutas o fsicas: son las que realmente se ocupan en memoria real, o memoria fsica.
Limite
Direccin Absoluta
Direccin Relativa
CPU
<=
No
Si
Memoria
Error direccionamiento
La traduccin necesita ayuda de hardware, este no es muy complejo, el criterio concede al hardware lo necesario para realizar esa traduccin en tiempo de ejecucin.
Con este esquema el proceso, se puedo colocar en cualquier parte de la memoria, porque la traduccin la hace justo antes de pasar a ejecutar.
Cada vez que se cambie de proceso o de contesto, esos registros lmite y base deben actualizarse, y deben almacenarse en el BCP para que cada vez que cambie de proceso disponga de una direccin vlida.
4.- Tcnicas para Gestin de Memoria Tcnicas de gestin de memoria 1. Asignacin completa y contigua: el proceso se ejecuta en una zona continua Mquina desnuda Monoprogramacin Particiones mltiples: Particiones fijas Sistema compaero Particiones variables.
2. -Asignacin completa y no contigua: Paginacin Segmentacin Segmentacin-paginacin 3.- Asignacin parcial y no contigua: Memoria Virtual
4.- Tcnicas para Gestin de Memoria Mquina desnuda y Monoprogramacin Mquina desnuda: Es un sistema donde no hay S.O, no hay gestor de Memoria, el propio programador se encarga de las operaciones. Suelen ser pequeos microprocesadores, dedicados a una sola cosa. Monoprogramacin: La Memoria se divide en dos partes: - Una parte para almacenar el S.O., en un extremo de la memoria, zona alta o baja, y - El resto se deja para procesos de usuarios ej: MSDOS.
La eleccin de donde se debe colocar el S.O. vendr dada por la ubicacin donde est el vector de interrupciones, lo normal es situarlo junto al vector de interrupciones, parte alta o baja, algunos sistemas prefieren separarlo.
Particiones mltiples:
Particiones fijas o Estticas Sistema compaero Particiones variables
Registro Lmite
Usuario
Limite Superior
Sistema Operativo
Usuario
Libre
Usuario
Registro Lmite
Limite Inferior
Sistema Operativo + Vector de interrupciones Libre
Libre
Vector de Interrupciones
Zona Baja
Zona Alta
El tamao de la particin determina dos aspectos: 1.- el tamao mximo de un proceso, para que se pueda ejecutar este es necesario asignarlo a una particin, por lo tanto el tamao mximo de un proceso es el tamao mximo de la particin. 2.- el tamao del proceso, afecta la cantidad de memoria que asigne a un proceso, es decir, una vez que establezca las particiones, cuando llega un proceso, se asigna a una particin, y este puede o no ocuparla entera, si no ocupa toda la particin, hay un desperdicio de memoria que se conoce como fragmentacin interna.
Algoritmos de Colocacin, Particiones distintas: hay varias alternativas. (a) Una cola de procesos por particin: llega el proceso y lo sito en la cola donde menor fragmentacin interna genere. Cuando la particin queda libre selecciona el primero de la cola Inconveniente: puede haber particiones libres con procesos esperando en otra cola porque su particin est ocupada. . (b) Una Sola cola de Cola de Procesos.
Algoritmos de seleccin: Mejor ajuste: Cuando una particin queda libre, elegimos el proceso que menor fragmentacin interna produzca.
Primer ajuste: Se recorre la cola hasta encontrar el primer proceso que quepa en la particin.
Si se observa, La funcin de colocar procesos en memoria, en una particin determinada, es hacer que un proceso sea aceptado en el sistema, que pase del estado de nuevo al estado de listo. La transicin de nuevo a listo es del planificacin a largo plazo.
Direccin Absoluta
CPU
>=
No
Si
<
No
Si
Memoria
Error direccionamiento
Primera Alternativa: Dos registros lmites, zona superior y zona inferior de la particin: Inicia en una direccin absoluta.
Base
Direccin Relativa
CPU
<=
No
Si
Direccin Absoluta
Memoria
Error direccionamiento
Segunda Alternativa: Dos registros, un registro base y otro de longitud Partimos de una direccin relativa, se compara con la longitud, si est dentro de la particin se puede acceder a el.
La figura (a) muestra un ej. De ocupacin de memoria, la figura (b), muestra la Tabla, usada por el administrador de memoria, y (c) la Tabla de particiones
No Particin 1 2 3 4 5 6 Base Particin 312 327 371 396 576 606 Nombre proceso T-1 T-2 T-3 T-4 Tamao en Kb 15 44 25 0 30 0 Tamao Particin 15 44 25 180 30 34 estado 1 1 1 0 1 0
371
396
576
606
T-4 30K 34 K
(b)
Nmero de la particin 1 2 3 4 5 6 Base de la particin 312k 327k 371k 396k 576k 606k 15 44 25 180 30 34 Tamao de la particin Estado de la particin ASIGNADA ASIGNADA ASIGNADA LIBRE ASIGNADA LIBRE
640
(a)
(c)
La ocupacin de memoria en la figura (a), tienen cuatro (4) procesos usando memoria,(t-1,t2,t3,t4), en (b). Los cuatro procesos, han sido asignados a particiones relacionadas con la distribucin de la memoria. (c) el estado de la tabla de particiones
Suponga que termina, el proceso T-1, y llegan tres trabajos. T-5 de 10, T-6 de 140 K y T-7 de 190 K.
No Particin 1 Base Particin 312 327 371 396 576 606 T-4 T-2 T-3 Nombre proceso 0 44 25 0 30 0 Tamao en Kb 15 44 25 180 30 34 Tamao Particin estado 0 1 1 0 1 0
371
396
2 3 4 5 6
576
606
T-4 30K 34 K Nmero de la particin 1 2 3 4 5 6 Base de la particin 312k 327k 371k 396k 576k 606k 15 44 25 180 30 34 Tamao de la particin
(b)
Estado de la particin LIBRE ASIGNADA ASIGNADA LIBRE ASIGNADA LIBRE
640
(a)
(c)
La ocupacin de memoria, con las nuevas peticiones, podran asignarse as: T-5 en la particin 1, T-6 en la particin 4 pero T-7 no se puede ubicar.
No Particin
Base Particin
Nombre proceso
Tamao en Kb
Tamao Particin
estado
1
2 3 4 5 6
312
327 371 396 576 606 Nmero de la particin
T-5
T-2 T-3 T-6 T-4
10
44 25 140 30 0
15
44 25 180 30 34 Tamao de la particin
1
1 1 1 1 0
371
396
576
(b)
606
T-4 30K 34 K
1 2 3 4 5 6
640
(a)
(c)
Inconvenientes: Por un lado, presenta fragmentacin interna, si el proceso no ocupa toda la particin se desperdicia espacio. El tamao de la particin es fijo. Si se desea cambiar el tamao hay que volver compilar el sistema, El tamao del proceso est limitado a la mxima particin, T7, no se puede ubicar. Fi = (Dt1 + Dt2 + Dt3 + Dt4 . + Dtn) => Fi= 5+0+0+40+0 =>Fi = 45 K
Producto de la entrada y salida de procesos en la memoria, se van generando particiones cada vez ms pequeas de la memoria sin utilizar, lo que se conoce como fragmentacin externa.
Para solucionar este problema se debe recurrir a la defragmentacin (compactacin) de la memoria para eliminar los espacios (huecos) entre procesos. Esto significa que los procesos deben ser reubicados en memoria en forma dinmica
Libre
Uso
Uso
Libre Libre
Uso
Libre
Inconvenientes: - Por un lado necesita que los problemas sean reubicables. - Es muy costoso en tiempo, mientras se produce la compactacin no se puede ejecutar ningn proceso, el sistema se paraliza. Resuelve la fragmentacin externa
Para solucionar la fragmentacin externa hay una tcnica que se conoce como compactacin: o recoleccin de basura, incluso en algunos libres aparece como reducto de la basura. La idea de la compactacin es agrupar todos los procesos que estn en memoria para formar un gran hueco libre.
Uno de los aspectos en el diseo de la compactacin es saber cuando se debe de realizar, hay 3 alternativas: 1) Cuando haya un porcentaje de la utilizacin de la memoria, 80%, 70%, el problema es que se puede compactar cuando no haya procesos que quieran acceder al sistema.
2) Cuando hay procesos esperando para entrar en memoria, el problema es que el sistema debe estar continuamente comprobando si algn proceso est esperando.
3) Cada un tiempo determinado, 10 min, 20 min... el problema es determinar el tiempo.
Se encarga de colocar un proceso en uno de los bloques libres existentes, a la hora de decidir qu algoritmo de colocacin usar, es necesario hacer un examen cuidadoso, para evitar que produzca alta fragmentacin externa. Se emplean los siguientes algoritmos: Primer ajuste: el proceso se coloca en el primer hueco donde quepa. Mejor ajuste: donde mejor quepa, dejando menos sitio. Siguiente ajuste: como el primero pero empezando desde el ltimo hueco que se asign. Peor ajuste: en el que ms sitio haya, en el hueco ms grande.
Se asigna un bloque de 16 k En Primer ajuste: entra al principio en el hueco de 22. En mejor ajuste: entra en el hueco de 18 k En el peor ajuste: entra en el mayor, el de 36 k. En el siguiente ajuste: entra en el siguiente despus del anterior, donde quepa, es decir el de 36, si llega al final y no hay se debe empezar de nuevo.
12k
Mejor Ajuste
2k
8k 6k 14k
36k
Cul de los 4 algoritmos es el mejor? El peor ajuste: rompe los ajustes mayores, e impide que entren los procesos mayores. El mejor ajuste: crea fragmentos muy pequeos, luego no se pueden utilizar. Es el peor algoritmo de todos.
12k
Mejor Ajuste
El siguiente ajuste: busca el primer hueco tras la anterior asignacin, los procesos los ubica donde hay un hueco grande. ej: empiezan a entrar procesos y se colocan uno tras otro, pero luego dejan de usarse y sus huecos quedan libre, sin embargo los siguientes se siguen asignando abajo, dividiendo el espacio grande. El primer ajuste: es el mejor, el ms simple, el ms rpido y el que mejor resultados da. Siempre intenta ocupar los procesos al principio y deja los huecos grandes abajo.
2k
8k 6k 14k
36k
Cuanto ms grande sea la unidad de asignacin, el mapa de bits es ms pequeo, a la inversa es mayor. Cul es mejor? Grande: su problema es que tiene mayor fragmentacin interna, porque lo mnimo es una unidad de asignacin, Si es de 32k, eso ser lo mnimo que tenga asignado. No debe ser ni muy grande ni muy pequeo. Es complicado localizar un hueco de cierto tamao, es decir, uno de 30 unidades de asignacin, es buscar 30 ceros consecutivos, es costoso.
H 4
14 6
H 20 2
25 4
H 29 3
Est claro que el tamao es mayor que el mapa de bits, porque usa ms informacin. La lista est ordenada por direcciones. La ventaja que tiene la lista es que cuando acaba un proceso, el tipo casa de P a H, es muy fcil liberar memoria. Adems en el cambio de tipo deben de hacerse la fusin de los huecos si hay dos adyacentes. En ambos casos siempre se finalizar el proceso, si hay dos huecos a los lados se deben fusionar entre los dos, si hay un hueco pues con l, si est rodeada de procesos es lo ms fcil. Para que la fusin sea ms simple debe de hacerse como una lista enlazada.
La lista Enlazada:
En el cambio de tipo debe de hacerse la fusin de los huecos, si hay dos adyacentes. En ambos casos siempre se finalizar el proceso, si hay dos huecos a los lados se deben fusionar entre los dos, si hay un hueco pues con l, si est rodeada de procesos es lo ms fcil. Para que la fusin sea ms simple se hace con una lista enlazada. Una alternativa a esa lista enlazada es tener en realidad dos listas enlazadas: una lista de procesos una lista de huecos Cada lista se puede ordenar como quiera, ej: la lista de procesos se ordena por direcciones y la de huecos por tamao de mayora a menor. El ordenarla de menor a mayor tamao facilita la poltica de colocacin del proceso. Liberar un proceso implicara pasar de una lista a otra el elemento. Esta estrategia de tener dos listas enlazadas, permite incluso optimizar, lo que consiste en implementar la lista de huecos directamente en los propios huecos de memoria, significa, tener en el sistema un montn de procesos y huecos.
Hueco libre
Proceso
El sistema de particiones fijas, con el problema del grado de multiprogramacin fijo, tantas particiones tantos procesos y la fragmentacin interna. El sistema de particiones variables, el problema era la fragmentacin Externa, y aparte el control de la memoria, sea con mapa de bits o lista enlazada, no es tan fcil como en las particiones fijas. La fragmentacin Externa: Es la suma de espacios o fragmentos, pequeos no utilizables, por que all no cabe ningn proceso.
Ambos tienen la dificultad ; de no partir trabajos, se colocan como tal en las particiones.
128
64 (asigna)
P1 solicita 45 k
P2 solicita 110 k P3 solicita 160 k P4 solicita 95 k Fin P3
45k
45k 45k 45k 45k
64k
64k 64k 64k 64k
128 k
P2 110k P2 110k P2 110k P2 110k
256 k
256 k P3 160 k P3 160 k 256 k P4 95k P4 95k 128 k 128 k
512 k
512 k 512 k 256 k 256 k
Fin P2
P5 Solicitud 80 k Fin P1 Fin P5 Fin P4
45k
45k
64k
64k
128 k
80 k P5 80 k 512 k
256 k
256 k 256 k
P4 95k
P4 95k P4 95k P4 95k 1 Mb
128 k
128 k 128 k 128 k
256 k
256 k 256 k 256 k
128 k
Este algoritmo presenta un grado de multiprogramacin variable, por que asigna en bloques de ciertos tamaos potencia de 2. Tiene fragmentacin interna y fragmentacin externa.
pgina 1
Hardware de
paginacin
marco 2
pagina1
marco 3
marco 4
pagina 0
marco 5 Proceso
pgina 2
Un proceso se debe dividir en pginas, el nmero de pginas debe ser entero, si el proceso no alcanza a ocupar la ltima pgina se produce la fragmentacin interna.
3
4
8k
8k
Ocupado
libre
La visin del usuario, es de paginas contiguas, y la del sistema es de paginas dispersas. El usuario genera direcciones lgicas dentro de la zona contigua, que debe traducirse a una direccin fsica, Cada vez que se requiera traducir una direccin de lgica a fsica se hacen 2 accesos a memoria: primero acceder a la tabla de pginas y luego a la direccin fsica verdadera. Evidentemente es una traduccin bastante lenta.
1 2 3 4
El usuario genera direcciones lgicas dentro de la zona contigua, esta zona necesita traducirse a una direccin fsica, para esa traduccin se necesita de ciertas estructuras con el apoyo del hardware para hacer traduccin del nmero de pginas a numero de marcos, para eso se requiere de la tabla de pginas.
En la traduccin de direccin en un sistema paginado la direccin lgica est compuesta por 2 componentes, un nmero de pgina y un desplazamiento.
Ese nmero de pgina se usa como ndice en la tabla de pginas, se toma el nmero de pginas, se asigna el puntero y se usa como ndice, a travs de la TP obtener el nmero de marco donde se encuentra ubicada, una vez que tengo el marco, la direccin fsica es la composicin del nmero de marco y el desplazamiento.
El tamao de la pgina viene dado por el hardware y viene dado en potencias de 2. Los valores que suele traer es de 512 a 4096.
El proceso de traduccin es el siguiente, en primer lugar, se extrae el nmero de pginas, que es en realidad lo primeros m-n bits de la direccin lgica. El usuario tiene la direccin lgica, ese espacio es de 216 bits, mi pgina tiene un tamao de 210 bits. Por lo tanto hay 6 bits para decidir el n de pgina. m=16 y n=10 Con ese nmero de pgina se obtiene el nmero de marco, se busca en la tabla de pgina y se obtiene el nmero del marco, finalmente la direccin fsica es la direccin del marco es nmero del marco por su tamao ms su desplazamiento. .
LA FRAGMENTACIN La fragmentacin externa es memoria libre pero que no se poda asignar a un proceso, No tiene. porque cualquier marco se puede asignar a cualquier proceso.
La fragmentacin interna es memoria asignada a un proceso que no se usa, luego s tiene fragmentacin interna, en la ltima pgina.
En estos sistemas, lo primero que se debe hacer, al tiempo de ejecucin es dividir el proceso en pginas, si el tamao del proceso no es mltiplo del tamao de la pgina, esta no se ocupar entera. La fragmentacin interna, es la media del tamao de la pgina entre dos.
TAMAO DE LA PGINA
Viene a de acuerdo con el hardware. Adems su tamao, siempre ser en potencias de dos para que la traduccin sea ms simple. Sin embargo en determinas sistemas al diseador, se le ofrece un rango de valores para que escoja uno de esos valores.
TAMAO DE LA PGINA
La frmula para calcular el valor ptimo del tamao de la pgina. E=N de bytes que ocupa una entrada en la T. de pginas P=Tamao de la pgina. Teniendo esos valores, se sabe que por la fragmentacin interna el desperdicio es la mitad del tamao de la pgina, aparte de la fragmentacin interna, se necesita tener una tabla de pginas, El tamao que ocupa una tabla de pginas es: E*S; s=n de entradas. Es el nmero de entradas por el nmero de bytes de cada entrada. Si la ecuacin se iguala a 0 y se deriva para calcular el ptimo , se obtiene el valor ptimo de P=la raz cuadrada de 2 por el tamao medio de un proceso por el n de bytes de una entrada en la tabla de pginas.
Visin
Se intenta asemejar a la visin del usuario. Se intenta dividir en segmentos los distintos componentes del sistema, agrupa las dos visiones. Con los segmentos se obtiene la direccin lgica y se hace la traduccin a direccin fsica, igual que en el sistema paginado. Para realizar esa traduccin, al igual que en el sistema paginado se usa la tabla de segmentos.
STLR (registro de longitud de la tabla de segmento) es un registro que contiene la longitud de la tabla de segmentos, es decir, el nmero de segmentos que posee el proceso. Ese registro se encarga de la validez de acceso a un segmento, igual que en el sistema paginado. Cada vez que cambie de proceso, se debe cambiar su valor. STBR (Registro que apunta a la tabla de segmento) es un registro hardware donde cada vez que se cambe de proceso se tiene que cambiar el valor del registro. Apunta a la direccin de comienzo de la tabla de segmento del proceso que est en ejecucin.
Se Tiene un proceso, o programa este se divide en segmentos, igual que si fuera un sistema segmentado, posteriormente se pagina, cada uno de esos segmentos, esas pginas son las que realmente estn ubicadas en Memoria Principal. En este caso, el proceso de traduccin es algo distinto, la direccin lgica tiene ahora 3 componentes. Se toma el nmero de segmento y a travs de l se obtiene la entrada a la tabla de segmento que apunta a una tabla de pgina, se toma el nmero de pgina y se usa como ndice en la tabla de pgina, este retorna nmero de marco donde esta almacenada, con en ese marco se obtiene la direccin fsica.
Descripcin
Ventajas
Desventajas
Particin Dinmica
La memoria principal se divide en un conjunto de marcos de igual tamao. Cada proceso se divide en pginas de igual tamao que los marcos. Un proceso se carga situando todas sus pginas en marcos libres pero no necesariamente contiguos. Cada proceso se divide en segmentos. Un proceso se carga situando todos sus segmentos en particiones dinmicas que no tienen por qu ser contiguas.
Segmentacin
Conclusiones
Una de las tareas ms complejas e importantes que lleva a cabo el sistema operativo es la de administrar la memoria.
Todos los mtodos aqu presentados, suponen que para ejecutar un proceso es necesario tenerlo completamente en memoria principal, ya sea en espacios contiguos o no.
La paginacin es un esquema similar al de las particiones estticas, con la ventaja de que un proceso puede ser cargado en ms de una particin y en espacios de memoria no contiguos, lo que reduce la fragmentacin interna a la que se produce en la ltima pgina.
Por otro lado, la segmentacin es un esquema similar al de las particiones dinmicas con ventajas similares a la paginacin.
Tanto en las particiones estticas, como en la paginacin, es necesario determinar el tamao que tendrn los bloques de memoria.
Conclusiones
Ejercicio Taller: elaborar un programa para simular las tcnicas de Gestin de Memoria
Fin de la Presentacin