1.
2.
3.
4.
5.
relocalizacin
proteccin y comparticin
asignacin
Relocalizacin
Colocacin dinmica de la memoria de los procesos en diferentes partes de la RAM
Carga esttica y dinmica
inmerso en el ejecutable
facilidad de instalacin
uso deficiente de la memoria
Enlace Dinmico
program x ;
int a1 (int a, X c) ; extern "a.dll" ;
...
...
int z = a1 (0, null) ;
..
..
OTRA FORMA:
typedef int f(int a, X c) ;
...
int handle = loadLibrary ("a.dll") ;
f = getProc (handle, "a1") ;
int z = f(0, null) ;
..
unloadLibrary (handle) ;
..
Comparticin y proteccin
Registros lmites
Paginacin
Segmentacin
Sistemas hbridos
liberan memoria, garantizando que cada bloque atendido, sea uno slo de memoria
contigua.
Estos mtodos resultan mucho ms eficientes en trminos de utilizacin de la memoria,
sin embargo, varan en complejidad, rendimiento, manejo de la fragmentacin interna y
fragmentacin externa.
FRAGMENTACIN EXTERNA: Es cuando en la memoria existen pequeos bloques de
memoria libre, intercalados entre los bloques utilizados por procesos, de modo que, aunque
la memoria total sea de tamao N (la suma de todos lo bloques libres), el sistema no puede
atender requerimientos de dicho tamao, y an tamaos menores, dado que est distribuido
a lo largo de toda la memoria
La solucin a este problema es aplicar la compactacin y/o recoleccin de basura.
En los mtodos actuales, de tamao variable, al liberar memoria, si el bloque liberado es
adyacente a uno que estaba libre, stos bloques de uno para formar un bloque ms grande,
de tamao igual a la suma de los tamaos de los bloques mezclados. De este modo, al
liberarse toda la memoria, slo existir un bloque libre, del tamao de la memoria total.
Los mtodos que estudiaremos son:
Ajuste secuencial
Sistemas compaero
Particiones fijas
Particiones variables
El criterio para dividir un bloque puede ser una parmetro que indique el mximo de
fragmentacin interna. Este parmetro no puede ser menor que el tamao de las banderas y
apuntadores necesarios.
Las polticas que se pueden aplicar para seleccionar el bloque a trabajar pueden ser:
Primer ajuste
Mejor ajuste
Peor ajuste
ptimo ajuste
Primer ajuste: se toma el primer bloque tal que pueda cumplir con el
requerimiento. En el peor caso se recorre toda la lista. Desventaja: tiende a
producir mucha fragmentacin externa. Ventaja: normalmente es ms rpido.
Mejor ajuste: buscando eliminar la fragmentacin externa, se busca el bloque
menor que cumpla con el requerimiento. Desventaja: siempre hay que recorrer
toda la lista
Peor ajuste: se busca eliminar al mximo la fragmentacin interna, buscando
siempre el bloque ms grande y dividiendolo. Y adems elimina gran parte de la
fragmentacin externa del mejor ajuste. Desventaja: Se tiene que recorrer toda la
lista.
Ajuste ptimo: En muestra de la lista se hace un mejor ajuste (N/e), luego sobre el
resto, se hace un primer ajuste, de un bloque mejor (de menor tamao que cumpla
con el requerimiento) que el encontrado en la primera parte
liberacin
El bloques se combinan con sus vecinos libres para formar un slo bloque,
cuyo tamao ser la suma del tamao de los bloques combinados
Este proceso permite que cuando se liberen todos los bloques ocupados, slo existir un
bloque de memoria, cuyo tamao ser el de toda la memoria disponible.
Primer ajuste
Esta poltica consiste en retorna el primer bloque de la lista de tamao k, donde k >= n.
Ventajas:
Desventajas:
Produce un alto ndice de fragmentacin externa, dado que los bloques tienden a
dividirse constantemente
Mejor ajuste
Se toma el ms pequeo de los bloques, cuyo tamao k >= n
Ventajas:
Desventajas:
Peor ajuste
Consiste en tomar el bloque ms grande de la lista para entregar al usuario, lo cual
implica que en la gran mayora de casos habr una divisin del bloque.
Ventajas:
Desventajas:
ptimo ajuste
Esta poltica consiste en buscar en dividir la bsqueda en dos fases:
sobre una muestra de los bloques libres, se aplica la poltica del mejor ajuste
sobre el resto de la lista despus de la muestra, se toma el primer bloque que sea
mejor que el mejor de la muestra
El tamao de la muestra, se toma como una muestra estadstica y segn algunos autores
puede ser N/e (e=constante de Euler).
Ventajas:
El resultado de esta poltica produce una eficiencia intermedia entre primer ajuste
(ms rpido y el mejor ajuste (menos fragmentacin interna y externa)
en el mejor de los casos no se tiene que recorrer la lista completa, y se devuelve un
bloque que es un buen aproximado al mejor ajuste, y en el peor de los casos, se
tiene que recorrer toda la lista, el resultado es igual al del mejor ajuste
Desventajas:
Sistemas compaero
Los sistemas compaero, al contrario de los mtodos de ajuste secuencial, no se basan en
listas, sino en clculos de direcciones y divisiones por pares para manejar los bloques de
memoria, por lo que el rendimiento es mejor que el Ajuste Secuencial, dado que no existen
bsquedas en listas, las cuales son reemplazadas por clculos matemticos.
Los sistemas compaeros binarios, estn basados en la propiedad de las direcciones de
memoria, las cuales al final (como todo nmero en la computadora) es una potencia de
dos. Este mtodo, Al haber una solicitud de tamao n, se procede a dividir el bloque de
memoria por la mitad, hasta que se tenga un bloque de tamao k, tal que k >= n y k/2 < n,
En este mtodo, para satisfacer una solicitud, toma un bloque libre y lo divide
sucesivamente en dos bloques compaeros, hasta que se tiene el menor bloque de tamao k,
que pueda satisfacer la solicitud de tamao n (k >= n).
Ejemplo:
Una ventaja es que no se necesitan listas para recorrer lo bloques, sino que puede usuarse
slo aritmetica binaria (xor) de las direcciones y tamaos. Por ejemplo supongamos un
bloque total de memoria de 64 bytes, y las siguientes direcciones:
Bloque
Tamao del bloque
(decimal/hexadecimal/binario)
Ventajas:
Desventajas:
Fibonacci:
Este sistema, no realiza la divisin de los bloques por la mitad, sino que se basa en la
serie de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ..) para realizar la divisin y
combinacin de bloques.
Dado que el tamao de los bloques, est determinado por la serie de Fibonacci en
vez de potencias de dos, se reduce al fragmentacin interna
Desventajas:
El clculo de los bloques compaeros se complica, dado que se tiene que calcular
constantemente los predecesores y sucesores en la serie de Fibonacci.
Compactacin
Esta operacin sobre la memoria, se utiliza para eliminar la fragmentacin
externa. Bsicamente consiste en mover hacia un extremo de la memoria todos los bloques
ocupados, dejando en el otro extremo un slo bloque libre, cuyo tamao es la suma de los
tamaos de los bloques libres existentes antes de la compactacin.
Esta operacin supone un acceso exclusivo a la memoria, por lo que todos los
procesos quedarn bloqueados hasta terminar la compactacin, lo cual tiene un impacto
directo en el rendimiento del sistema. sto obliga a realizar un balance entre rendimiento y
espacio libre: si se realiza frecuentemente, habr ms memoria disponible, pero el costo es
una degradacin del rendimiento y viceversa. Para que pueda realizarse la compactacin es
necesario que el sistema tenga la capacidad de relocalizacin.
Puede utilizarse hasta el ltimo minuto, es decir cuando se pide memoria y no hay a
causa de la fragmentacin externa, se realiza automticamente la compactacin.
Coleccin de basura
La coleccin de basura se utiliza en aquellos lenguajes donde no se obliga al programador a
liberar la memoria utilizada, sino que el programa, automticamente, recupera la memoria
no utilizada cuando existe un requerimiento de memoria que no puede ser completado.
El algoritmo bsico de la coleccin de basura es la siguiente:
marcar todos los bloques de memoria como libres, ya sea que estn usados o no
para todos las variables, marcar su bloque de memoria como ocupado
los bloques de memoria que queden marcados como libres, se enlazan en la lista de
libres.
Otra estrategia utilizada, es llevar contadores por rea de memoria. Cada vez que se asigna
un asigna un rea de memoria a un apuntador, se incrementa el contador de la regin, y al
designar, se decrementa. De esta forma la coleccin de basura se reduce a eliminar las
regiones de memoria que tienen su contador a cero.
Estrategias de reposicin
Se ocupa del aspecto de qu pgina se debe reemplazar cuando se necesite subir una pgina
a memoria y no hay memoria libre.
Principio de optimizacin
Debe reemplazarse la pgina que no se va a utilizar durante el tiempo ms largo, es decir el
que tiene la menor tasa de fallas de pginas de todos los algoritmos.
Objetivos
Al azar
Simple
ineficiente
PEPS
Proceso:
o Se reemplaza la pgina ms vieja en memoria, es decir la que se subi
primero.
o Se asume que las ms viejas sern las menos usadas en el futuro.
Ventajas:
o Simple de implementar
o Eficiente en el proceso de decisin
Desventajas:
o Desfavorecer a pginas de uso constante
o Anomala PEPS o anomala Belady
o
o
Secuencia de pginas: A, B, C, D, A, B, E, A, B, C, D, E
Hay ms fallas de pgina con 4 marcos de pgina que con 3
Segunda oportunidad
Proceso:
o Modificacin de PEPS
o Bit de referencia
o Si la primera de la fila es tiene el bit de referencia (bit R) en 1, ste se
cambia a 0, se pasa al final de la cola y se examina la siguiente pgina
Ventajas:
o Similar a PEPS en simplicidad y eficiencia
o Elimina la anomala Belady
Optimizacin:
o algoritmo de reloj en una lista circular de pgina con la "manecilla"
apuntando a la pgina ms antigua, as si R=0, reemplaza la pgina, si R=1
cambia el R a 0, y en todo caso avanza a la siguiente pgina
Proceso:
o En cada acceso se actualiza en la pgina su marcas de tiempo
o Reemplazar la pgina que no ha sido accesada por ms tiempo, es decir la
pgina con la menor marca de tiempo
Ventaja:
o Utiliza mejor el concepto de localidad temporal
Desventajas:
o Implica una revisin de todas las pginas para decidir la que se reemplazar
o Necesita mucha ayuda del equipo
Optimizaciones
o listas ordenadas
o pilas
o capacitores/contadores
Propuesta de Tannenbaum: matriz de bits
o matriz de bits de n * n para n marcos de pgina
o cuando se referencia un pgina i, se ponen en 1 todos los bits de la fila i y en
0 todos los bits de la columna i
o se reemplaza la pgina cuya fila tenga el menor valor
Proceso:
o Interesa la intensidad de uso
o En cada acceso se incrementa un contador
o Se reemplaza la pgina cuyo contador de acceso tiene el menor valor
Ventajas:
o Utiliza el concepto de localidad
Desventajas:
o Limitante: existe un nmero finito de bits en los contadores
o No olvida nada: si una pgina fue utilizada mucho antes se conservar
bastante tiempo en memoria
o Tambin implica un recorrido sobre todas las pginas en el proceso de
eleccin
o Hardware especial
Optimizaciones:
o bit de referencia que incrementa un contador por pulso, reseteando el bit R
o bit de referencia que desplaza a la derecha el contador: perodicamente se
corre a la derecha el contador de la pgina
o Listas ordenadas por valor del contador
No usado recientemente
Proceso:
o Se reemplazan las pginas que no han tenido uso reciente
o Se maneja un bit R (de referenciado) y un bit M (de modificado)
o Eliminacin perodica del bit R
o Se forman 4 clases de pginas:
Estrategias de bsquedas
Se ocupa de cundo subir a RAM una pgina
Por demanda
Es la ms simple, ya que se busca una pgina cada vez que se produce un fallo de
pgina
No siempre se puede sincronizar el tamao de la pgina con el tamao de bloque de
disco ptimo, se puede provocar una utilizacin suboptima del disco.
No est utilizando ninguno de los concepto de localizacin.
Anticipada
Se sube a memoria un conjunto de pginas que el proceso muy probablemente utilizar
Conjuntos de trabajo o rea activa
Prepaginacin
Estrategia de alcance:
Define la forma en que se asignarn marcos de pginas a los procesos, y la definicin del
conjunto de pginas candidatas a intercambio, cuando se necesite.
Alcance local
Se asigna a cada proceso un conjunto de marcos de pginas, en el que trabajar. Cuando
un proceso produce un fallo de pgina, la pgina a ser reemplazada es elegida entre las
pginas en los marcos asignados al proceso.
ventaja:
Alcance global
Los procesos no tienen asignados un nmero determinado de marcos de pgina, y al
momento de provocar un fallo, el sistema puede elegir reemplazar una pgina que pertenece
a un proceso diferente al que provoc el fallo de pgina.
Puede provocar que la hiperpaginacin de un proceso, lleve a otros procesos a elevar su
tasa de fallos de pgina.
Control de la hiperpaginacin
Por conjunto de trabajo
Ejemplos
Windows
Solaris
Linux