You are on page 1of 11

CAPITULO III.

ADMINISTRACIN DE MEMORIA

La memoria principal o memoria RAM (Random Access memory), es uno


de los recursos ms importantes que tiene el computador para la
ejecucin de sus procesos. Todo proceso para ser ejecutado necesita de
memoria RAM.
Al igual que los procesadores y cualquier elemento de hardware del
computador, la memoria a evolucionado en su tamao fsico, algoritmo
de manejo, tamao en bytes, velocidad de acceso, seguridad, etc.

Los sistemas de administracin de memoria se pueden dividir en dos


clases, los que trasladan procesos entre la memoria y el disco durante la
ejecucin (intercambio y paginacin) y los que no lo hacen. Este ltimo
es el ms sencillo.

Monoprogramacin sin intercambio de paginacin.


Es el sistema ms sencillo y solo permite ejecutar un programa a la vez,
compartiendo la memoria entre el programa y el sistema operativo.
Sistemas operativos a nivel de micros computadores que utilizaron estas
memorias: CP/M , MS-DOS primeras versiones.
Modelos del ms-dos
Programa de usuario

BIOS
PROGRAMAS
DEL
USUARIO

Sistema operativo
Sistema operativo

Modelo de CP/M
BIOS

BDOS
CCP
TPA
Parmetros del
sistema

Donde:
BIOS, sistema bsico de entradas y salidas.
BDOS, sistema bsico de operacin del disco.
CCP, procesador de comandos de consola.
TPA, rea transitoria de programas (donde se ejecutan los programas del
usuario).
Parmetros del sistema, contiene informacin bsica del sistema.

Multiprogramacin con particiones fijas


La memoria se divide en n particiones de igual o diferentes tamaos
donde
pudiese
correr
varios
programas
simultneamente
(multiprogramacin). De esta forma se utilizara mejor los recursos del
computador. Este sistema genera dos problemas. Relocalizacin, para
saber en qu particin se va a ejecutar el programa y de
proteccin, para que un programa no interfiera con el otro.
Este sistema fue utilizado por el Sistema 360 de IBM.

Particin 4

Particin 3

Particin 4

Particin 3

Particin 2

Particin 2

Particin 1

Particin 1

Sistema Operativo

Sistema Operativo

INTERCAMBIO
En los sistemas de tiempo compartido a veces no hay memoria principal
para contener todos los procesos que estn activos actualmente y hay
que mantenerlos en disco duro y traerlos dinmicamente a memoria
para poderlos ejecutar. En este caso existen dos estrategias:
Intercambio: Consiste en traer a memoria cada proceso en su
totalidad, ejecutarlo durante algn tiempo y colocarlo otra vez en disco.
Memoria virtual: Permite a los programas ejecutarlos aunque solo
estn parcialmente en memoria principal.
La diferencia entre particiones fijas y particiones variables es que en las
particiones variables: el nro, ubicacin y tamao varan dinmicamente.
En particiones variables es posible compactar la memoria hacia arriba o
abajo, aprovechando mejor el recurso y evitando huecos pequeos.
En intercambio se utilizan dos (2) tcnicas:

Administracin de memoria con mapas de bits.


Administracin de memoria con listas enlazadas.

Administracin de memoria con mapas de bits.


Consiste en dividir la memoria en unidades de asignacin y a cada
unidad de asignacin se le asigna un bit: 0 libre y 1 ocupada
Si la unidad de asignacin es pequea, entonces el mapa de bits ser
grande y si la unidad de asignacin es grande, entonces el mapa de bit
ser pequeo, pero puede desperdiciarse una cantidad apreciable de
memoria cuando el tamao del proceso no es mltiplo exacto de la
unidad de asignacin. El problema que se presenta en este tipo de
memoria es que al traer un proceso del disco duro, el s.o. tiene que
buscar en el mapa de bits una serie de K bits en cero m(0) donde pueda
caber el proceso. Esta funcin es lenta. (ver grfico pagina 316).
Administracin de memoria con listas enlazadas
Consiste en mantener una lista enlazada de segmentos de memoria
libres y asignados. Donde un segmento es un proceso o un agujero entre
dos procesos (ver figura pag. 316). La lista de segmentos puede estar
ordenada por direcciones. Casa lista tiene un bit que define si es proceso
o agujero, la direccin de inicio y el tamao.
Se pueden presentar varios algoritmos para asignar memoria:
Primer ajuste: Es el ms sencillo y rpido ya que la bsqueda es ms
corta. El agujero se divide en dos segmentos: uno para el proceso y otro
para la memoria desocupada. (muy casual que coincida el hueco con el
tamao del proceso).
Siguiente ajuste: Busca un agujero que quepa el proceso a partir de
donde haba quedado ltimamente.
Mejor ajuste: Recorre toda la lista para averiguar el hueco que ms se
ajuste al tamao del proceso. Algoritmo lento por tener que recorrer
toda la lista y adems desperdicia pequeos agujeros en memoria que
de pronto no sirven para cargar un procesos. (desperdicio de memoria).
Peor ajuste: Consiste en tomar el agujero ms grande, donde se
desperdicia huecos grandes que pueden servir para nuevos procesos

Ajuste rpido: consiste en tener varias lista por separado de algunos


tamaos de los ms comunes solicitados. Por ejemplo una lista de
ageros de 4k, otra de 8k , etc y as buscar en la lista que ms coincida
con el tamao del proceso.
Se recomienda mantener una lista de agujero y otra de procesos, porque
al fin el algoritmo lo que busca es agujeros no procesos.

MEMORIA VIRTUAL

Cuando un programa era de mayor tamao a la memoria fsica del


computador, para poderlo correr se inventaron una solucin llamada
SUPERPOSICIONES, que consista en
dividir el programa en
fragmentos. Se corra la primera superposicin, cuando terminaba se
corra la segunda y as sucesivamente. Las superposiciones se
guardaban en el disco. El problema consista en que el programador
deba de fragmentar el programa, llegando a ser engorrosa y difcil esta
labor. Con el fin de solucionar este problema se invent un mtodo
llamado MEMORIA VIRTUAL (Fotheringham, 1961). Si el programa, sus
datos y su pila pueden exceder el tamao de la memoria fsica. El
sistema mantiene en memoria principal las partes del programa que se
est ejecutando y el resto en el disco.

Paginacin
MOVE REG , 1000
Est copiando el contenido de la direccin de memoria 1000 en REG.
Estas direcciones generadas por le programa se denominan direcciones
virtuales y constituyen el espacio de direcciones virtual.
La mayor parte de los sistemas de memoria virtual emplean una tcnica
llamada paginacin. Cuando se usa memoria virtual las direcciones
virtuales no pasan directamente al bus de direcciones de memoria, en
vez de ello se enva a una unidad de administracin de memoria
(MMU), un chip (hardware) que transforma direcciones virtuales en
direcciones de memoria fsica.

CPU enva direcciones virtuales a MMU


Controlador del disco

Memoria

CPU

MMU

MMU enva direcciones fsicas


a

memoria

BUS
Funcin del MMU

Figura 4-8: Relacin entre las direcciones virtuales y las direcciones


de la memoria
Los espacios de direcciones virtuales se dividen en unidades llamadas
pginas.
Las correspondientes en la memoria fsica se denominan marcos de pgina

Figura 4-9: Funcionamiento interno de la MMU con 16 pginas de 4k


(pg 323)

El propsito de la tabla de pginas es transformar pginas virtuales en


marcos de pgina.
Se puede presentar dos problemas:

La tabla de pginas puede ser extremadamente grande.


La transformacin debe ser rpida.

El primer caso por ejemplo: un procesador de 32 bits, puede direccionar un


milln de pginas de 4k. Un procesador de 64 bits puede direccionar .. Hay
que tener en cuenta que cada proceso necesita su propia tabla de pginas.
En el segundo caso, la transformacin de virtual a fsica se debe efectuar en
cada referencia de memoria. Por lo general las instrucciones tienen un
operador y un operando en memoria. Hay instrucciones que tienen dos o
ms operandos entonces necesita ms de una referencia a memoria por
instruccin. Esto come tiempo.
La solucin ideal pero no real sera tener una sola tabla de pginas que
consiste en un arreglo de registros de hardware con una entrada para cada
pgina indexada por nmero pgina virtual. Una solucin sera tener tablas
de pgina multinivel (figura 4-10 pgina 325).
Con esto se evitar tener enormes tabas virtuales todo el tiempo en memoria
ppal.
(ver figura 4-11 Entrada de tabla de pginas representativas)

TLB Buffer de consulta para la traduccin.


Como las pginas virtuales estn la mayor parte en memoria, perjudicando
el rendimiento de la mquina, los diseadores se dieron cuenta de que
muchos programas tienden a efectuar un gran nmero de referencias a un
nmero pequeo de pginas y no al revs. La solucin consiste en equipar
al computador con un pequeo dispositivo de hardware para transformar las
direcciones virtuales en fsicas sin pasar por la tabla de pginas. El
dispositivo se llama TLB (Translation lookaside buffer) o tambin
llamado memoria asociativa, donde generalmente se encuentra dentro del
MMU y consiste en un nro pequeo de entradas (8 > 64), cada entrada

contiene informacin de una pgina. (Figura 4-12 Un TLB para agilizar la


paginacin)

Algoritmos de sustitucin de pginas

El algoritmo de sustitucin de pginas ptimo.


El algoritmo de sustitucin de pginas no usadas recientemente.
El algoritmo de sustitucin de pginas, primero que entra, primero que
sale (FIFO).
El algoritmo de sustitucin de pginas de segunda oportunidad.
El algoritmo de sustitucin de pginas por reloj.
El algoritmo de sustitucin de pginas menos recientemente usadas
(LRU).

Algoritmo de sustitucin de pginas ptimo

Este algoritmo de reemplazo de pginas ptimo es fcil de describir pero


imposible de implementar. Este algoritmo se basa en el nro de instrucciones
que se ejecutan antes de ser referenciada una pgina. La pgina es rotulada
con ese nro., entonces cuando ocurre una falla de pgina, la candidata a ser
reemplazada ser la que tenga el rtulo ms alto. Si la pgina ha sido
actualizada entonces actualiza su correspondiente en el disco. Es imposible
que el S.O. conozca con anterioridad las veces que la pgina ha sido
referenciada. Por esto no es til en la prctica. Con un simulador se podra
conocer de antemano el nro de referencia de las pginas y luego si se podra
correr de nuevo el programa.

Algoritmo de sustitucin de pginas no usadas recientemente (NRU)


Las pginas tienen asociadas dos bits: R para lectura de la pgina y M para
modificarle (actualizarla). Estos bits se actualizan en cada referencia a
memoria.

Cuando se inicia un proceso el S.O. ponen en cero (0) los bits de todas las
pginas. Peridicamente (por ejemplo en cada interrupcin de reloj), se
apaga el bit R a fin de distinguir las pginas a las que no se ha hecho
referencia recientemente de la que si se han hecho.
Cuando ocurre una falla de pgina el S.O. examina todas las pginas y las
divide en cuatro categoras con base en los valores actuales de sus bits R y
M.

Clase 0: no referida, no modificada


Clase 1: no referida, modificada
Clase2: referida, no modificada
Clase 3: referida, modificada

La clase 1 ocurre cuando una interrupcin de reloj paga el bit R de una


pgina de clase 3. Las interrupciones de reloj no borran el bit M porque esta
informacin la necesita para saber si hay que reescribir la pgina en el disco
duro (actualizarla). El algoritmo NRU elimina una pgina al azar de la clase
no vaca que tiene el nro ms bajo. Este algoritmo supone que es mejor
eliminar una pgina modificada a la que no se ha hecho referencia en por lo
menos un tic de reloj (por lo regular 20 ms) que una pgina limpia que no se
est usando mucho. Algoritmo sencillo, fcil de implementar, fcil de
entender con un rendimiento adecuado.

Algoritmo de sustitucin de pginas de primera que entra, primera


que sale (FIFO)
Existe una lista de pginas en la memoria, cuando ocurre una falla de
pgina, entonces se aplica FIFO, es decir la que est a la cabeza de la lista
es la ms vieja y al final de la lista la ms reciente, entonces se elimina la
cabeza y la nueva pgina se coloca al final de la lista.
Algoritmo de sustitucin de pginas de segunda oportunidad.
Una pequea modificacin de FIFO que evita el tener que desalojar una
pgina muy utilizada. Consiste en inspeccionar el bit R de la pgina ms
vieja. Si es cero (0), entonces adems de ser la pgina ms vieja, no ha sido
utilizada recientemente, entonces debe ser desalojada inmediatamente. Si el
bit es uno (1), se coloca la pgina al final de la lista de pginas y se le apaga

el bit R y se actualiza su tiempo su tiempo de carga como si acabara de ser


trada a la memoria. Luego contina su bsqueda.
El algoritmo lo que hace es buscar una pgina vieja a la que no se le haya
hecho referencia en el intervalo del reloj anterior.
Algoritmo de sustitucin de pgina por reloj
Como el algoritmo anterior cambia constantemente de posicin las paginas
en la lista, esta algoritmo forma una lista circular con todas las pgina,
donde una manecilla de reloj apunta a la pgina ms vieja. Cuando ocurre
una falla de pgina, se inspecciona la pgina apuntada por la manecilla del
reloj, si R=0, entonces la pgina es desalojada inmediatamente y se coloca
en su lugar una nueva y la manecilla avanza a la siguiente pgina. Si R es 1,
entonces se coloca en 0 y la manecilla avanza a la siguiente pgina,

Algoritmo de sustitucin de pginas menos recientemente usadas


(LRU)
Consiste en mantener una lista con todas las pginas que estn en memoria,
con la pgina ms recientemente utilizada al frente y la menos
recientemente utilizada al final. El problema es actualizar la lista cada vez
que se hace referencia a memoria (consume tiempo).
Otra forma de implementar LRU es utilizar un contador cada pgina donde se
lleva el clculo de la pgina cada vez que se referencia. Cuando ocurre una
falla de pgina, el algoritmo mira cual contador es el ms bajo, luego esa es
la pgina a eliminar (LRU).
Hay otro mtodo en LRU consistente en una mquina con n marcos de
pgina, entonces pude mantener una matriz de n*n que inicialmente son
ceros. Cada vez que hace referencia al marco de la pgina k, se colocan 1 a
todos los bits de la fila k y cero (0) a todos los bits de la columna k, en un
instante la fila cuyo valor sea el ms bajo ser la pgina LRU. (a nivel de
hardware).
Pero todas las computadores no cuentan con ese hardware entonces lo
hacen a nivel de software con el algoritmo NFU (No utilizado
frecuentemente) donde cada pgina tiene asociado un contador.
Inicialmente todos los contadores estn en cero y trabaja de la siguiente
forma:

Todos los contadores se desplazan un bit a la derecha antes de sumarle el


bit R.
El bit R se suma al bit de la extrema izquierda, no a la extrema derecha. (ver
grafico 4-16-pagina 337). Cuando ocurre una falla de pgina, se elimina la
pgina cuyo contador sea el ms bajo.

You might also like