Sie sind auf Seite 1von 7

1) Hay cuatro tipos de esquema de asignacin de memoria:

Sistema de un usuario
Particiones fijas
Particiones dinmicas
Particiones dinmicas relocalizables

2) Esquema contiguo de usuario nico


El primer esquema de asignacin de memoria funcionaba como sigue: cada programa que se
iba a procesar se cargaba completo en la memoria y se le asignaba tanto espacio contiguo
como necesitase. Las palabras clave eran completo y contiguo. Si el programa era demasiado
grande y no caba en el espacio de memoria disponible, no se poda ejecutar. A pesar de que
las primeras computadoras eran fsicamente grandes, tenan muy poca memoria.
La direccin base es la primera localidad de memoria del programa, se utiliza para localizar
donde comienza el segmento de memoria que corresponde al programa.
3) El esquema de usuario nico no apoya la multiprogramacin porque solo puede manejar
una tarea a la vez.
4)
1

Primera localidad de memoria

Cont. Prog. = direccin de primera localidad de


memoria

Leer la primera instruccin del programa

Cont. Prog. = Cont. Prog. + N bytes instruccin

Ultima instruccin?

S
i

Cont. Prog. > Tamao memoria?

Carga instruccin en memoria

Lee la siguiente instruccin en la memoria

S
i

Fin carga programa

Fin carga programa

5) Particiones fijas
El primer intento para posibilitar la multiprogramacin fue la creacin de particiones fijas (o
particiones estticas) en la memoria principal: una particin para cada tarea. Dado que el
tamao de cada particin se especificaba al encender el sistema, cada particin solo poda
reconfigurarse apagando, reconfigurando o reiniciando el sistema de la computadora. Por lo
que una vez que el sistema estaba en operacin, el tamao de las particiones quedaba fijo.
Este esquema introdujo un factor esencial: la proteccin del espacio de memoria para la
tarea. Una vez asignada una particin a una tarea, no se permita que ninguna otra tarea
entrara en sus fronteras, ya sea de forma accidental o intencional.
Este esquema de particin es ms flexible que el de usuario nico porque permite que varios
programas estn en memoria al mismo tiempo. Sin embargo, aun as, requiere que se
almacene el programa por completo de manera contigua y en la memoria desde el principio
hasta el fin de su ejecucin. A fin de asignar espacios de memoria a tareas, el administrador
de la memoria del sistema operativo debe mantener una tabla mostrando el tamao de cada
particin de memoria, su direccin restricciones de acceso y estado actual (libre u ocupado)
para el sistema.
El esquema de particin fija funciona bien si todas las tareas que se ejecutan en el sistema
son del mismo tamao o si los tamaos se conocen por anticipado y no varan entre
reconfiguraciones. El tamao de las particiones se determina de manera arbitraria y pueden
resultar demasiado pequeas o grandes para las tareas que lleguen.
6) El algoritmo para almacenar tareas requiere pasos adicionales al utilizado en el sistema de
un solo usuario, porque el tamao de la tarea debe coincidir con el tamao de la particin
para asegurarse que quepa. Cuando se localiza un bloque de tamao suficiente, debe
revisarse el estado de la particin para ver si est disponible.
Tamao de memoria solicitado por
la tarea
1
2

Si tamao particin > particin ms


grande

Cont. = 1

Mientras cont. <= numero de particiones en


memoria
Si tamao tarea > tamao particin
memoria (cont)
Si estado particin memoria =
libre
Cont. = Cont.
+1
FIN

Rehace tarea
Mensaje operador
Siguiente tarea

Cont. = Cont.
+1
Carga la tarea en
la particin de
memoria
(Cont.)
Cambie el estado
de particin de
memoria (Cont.)
a ocupado

2
No hay una particin disponible en este momento, coloque la tarea en la
cola de espera

Volver al paso 1

7) Fragmentacin Interna
El fenmeno del uso parcial de las particiones fijas y la creacin coincidente de espacios sin
utilizar en la particin se conoce como fragmentacin interna y es uno de los inconvenientes
ms importantes del esquema de asignacin de memoria en particiones fijas.
8) Si el tamao de las particiones es demasiado pequeo las tareas ms grandes sern
rechazadas o tendrn que esperar si las particiones grandes estn ocupadas. Por otro lado, si
las particiones son demasiado grandes se desperdicia memoria.
9) Particiones Dinmicas
Con las particiones dinmicas, la memoria disponible an se conserva en bloques contiguos,
pero a las tareas nada ms se les da la memoria que solicitan cuando se cargan para su
procesamiento. Aunque es una mejora significativa en relacin a las particiones fijas (porque
no se desperdicia memoria en la particin) no elimina el problema.
11) En un esquema de particin dinmica se utiliza toda la memoria al cargar las primeras
tareas. Pero conforme entran nuevas tareas en el sistema, que no son del mismo tamao de
las que acaban de salir de la memoria, se acomodan en los espacios disponibles de acuerdo a
su prioridad. Por lo tanto, la asignacin subsecuente de la memoria crea fragmentos de
memoria libre entre bloques de memoria asignada. Estos problemas se conocen como
fragmentacin externa, que dan lugar al desperdicio de memoria.
12) Para los sistemas de asignacin fija y de memoria dinmica, el sistema operativo debe
mantener listas de cada localidad de memoria, anotando cuales estn libres y cuales estn
ocupadas. Luego, conforme entran nuevas tareas en el sistema, las particiones libres se
deben asignar.
13) Las particiones de memoria se pueden asignar segn la tcnica del primer ajuste (la
primera particin que llena los requisitos) o del mejor ajuste (la particin ms pequea que
llena los requisitos). Para ambos esquemas el administrador de la memoria organiza las listas
de participaciones libres y utilizadas (libres/ocupadas) ya sea por tamao o localidad. La
asignacin del mejor ajuste mantiene las listas libres/ocupadas en orden por tamao, desde la
ms pequea a la ms grande. El mtodo del primer ajuste organiza las listas libres/ocupadas
por localidades de memoria, de bajo orden hasta alto orden.
1

Cont. =
1

Mientras cont. <= nmero de bloques en


memoria
Si tamao bloque > tamao de la
memoria (cont)
Carga trabajo en el tamao de la
memoria, ajuste las listas libre y
ocupada de la memoria

3
3

Fin
mientras

Cont. = cont.
+1

Coloque la
tarea en la cola
de espera

Algoritmo de primer ajuste


El algoritmo de primer ajuste asume que el administrador de memoria mantiene dos listas,
uno para los bloques de memoria libres y otra para los bloques de memoria ocupados. La
operacin consiste en comparar el tamao de cada tarea con el tamao de cada bloque de
memoria, hasta hallar un bloque lo suficientemente grande para la tarea. A continuacin, est
se almacena en ese bloque de memoria y el administrador de la memoria sale del ciclo para
tomar la siguiente tarea y repetir el proceso.
Algoritmo de mejor ajuste
Uno de los problemas del algoritmo de mejor ajuste es que debe buscar toda la tabla antes de
poder efectuar la asignacin, porque los bloques de memoria estn almacenados en
secuencia, de acuerdo a su ubicacin en la memoria (y no en funcin a tamaos de bloques
de memoria).
El administrador de memoria utiliza este algoritmo de mejor ajuste para buscar en toda la
lista a partir de la parte superior de la misma a fin de localizar el bloque ms pequeo pero lo
bastante grande para aceptar el trabajo. La eleccin de este bloque minimiza el espacio
desperdiciado.
14) Desasignacin
Este es el proceso de liberar o desasignar el espacio de memoria.
Para un sistema de particin fija, el proceso es sencillo. Cuando se termina la tarea, el
administrador de memoria restablece el estado del bloque de memoria donde se asigno la
tarea como libre.
En un sistema de particin dinmica, se utiliza un algoritmo ms complicado, ya que este
trata de combinar reas libres de memoria siempre que sea posible, por lo que el sistema
tiene que estar preparado para tres posibles situaciones:

Cuando el bloque que se va liberar o desasignar esta junto a otro bloque libre
El sistema usa el algoritmo de desasignacin anterior y ve que la memoria por liberar
esta junto a un bloque de memoria libre. Entonces debe modificar la lista para reflejar
la direccin de inicio del nuevo bloque libre, usando la direccin de la primera
instruccin de la tarea que acaba de liberarlo. Adems el tamao del bloque de
memoria para este nuevo espacio libre se debe modificar para mostrar su nuevo
tamao que es el total combinado de las dos particiones libres.
unin de dos bloques
Direccin de inicio
7560
(7600)
*7800

Tamao del bloque de


memoria
20
(200)
5

Estado de lista libre


Libre
Ocupado
libre

Los nmeros entre parntesis no aparecen en la lista libre original. El numero con *
indica el bloque de memoria libre vecino, al que se liberara.
Direccin de inicio

Tamao del bloque de


memoria
4

Estado de lista libre

7560
20
Libre
7600
205
Libre
10250
4050
libre
Lista libre despus de la designacin, el * indica la localidad donde se efectuaron
cambios en el bloque de memoria libre.

Cuando el bloque por liberar se encuentra entre dos bloques libres


El sistema utiliza el algoritmo de desasignacin y descubre que la memoria que se va
liberar est entre dos bloques libres de memoria. Por lo tanto de combinar el tamao
de las tres particiones libres y el total se almacena con la direccin de inicio de la ms
pequea.
Unin de tres bloques libres
Direccin de inicio
7560
(7580)
7600

Tamao del bloque de


memoria
20
(20)
205

Estado de lista libre


Libre
(ocupado)
libre

Lista libre antes de la designacin. El * indica dos bloques de memoria vecinos al


bloque de memoria que se va liberar. Los nmeros entre parntesis no aparecen en la
lista libre original.
La entrada de la localidad 7600 se combino con la entrada anterior y se debe quitar esa
entrada. Se hace cambiando el estado a ENTRADA NULA, sin direccin de inicio ni
tamao de bloque de memoria.
Direccin de inicio
6785
7560
*
10250

Tamao del bloque de


memoria
800
245

Estado de lista libre


Libre
Libre
(entrada nula)
libre

4050

Cuando el bloque que se va a liberar se encuentra aislado de otros bloques


libres
La tercera opcin es cuando el espacio por liberar est aislado de las dems reas
libres. El sistema usa el algoritmo de desasignacin para descubrir que el bloque de
memoria que se va liberar no se encuentra junto a ningn bloque de memoria libre;
esta entre dos reas ocupadas. Por lo tanto debe buscar una entrada nula en la tabla.
Se da una entrada nula en la lista ocupada cuando se devuelve a la lista libre un bloque
de memoria que se encuentra entre otros bloques ocupados.
Cuando se encuentra la entrada nula, la localidad de memoria de inicio del trabajo que
est terminando se introduce en la columna de direccin de inicio, el tamao de la
tarea se introduce en la columna del tamao del bloque de memoria y el estado cambia
de entrada nula a libre para indicar que un nuevo bloque de memoria est disponible.
designacin de un bloque aislado
Direccin de inicio
7560

Tamao del bloque de


memoria
20
5

Estado lista libre


Libre

(entrada nula)
libre

10250
4050
Lista libre antes de la designacin
Direccin de inicio

Tamao del bloque de


memoria
7805
1000
*8805
445
9250
1000
Lista ocupada despus que la tarea libero su memoria. * indica
en la lista ocupada.

Estado lista libre


Ocupado
Ocupado
ocupado
la nueva entrada nula

Direccin de inicio

Tamao del bloque de


Estado lista libre
memoria
7560
245
Libre
*8805
445
Libre
10250
4050
Libre
Lista libre despus de que la tarea libera su memoria. * indica la entrada nuevo
bloque libre que reemplaza a la entrada nula.

15) Particiones dinmicas relocalizables


Los esquemas de asignacin de memoria fijo y dinmico comparten algunas caractersticas
inaceptables de fragmentacin.
La solucin a ambos problemas fue el desarrollo de particiones dinmicas relocalizables. Con
este esquema de asignacin de memoria, el administrador de memoria relocaliza los
programas para reunir los bloques vacios y compactarlos para hacer un bloque de memoria lo
bastante grande para aceptar algunas o todas las tareas en espera de entrar.
16) Desfragmentacin
El sistema operativo compacta la memoria, proceso conocido a veces como
desfragmentacin, para recuperar secciones fragmentadas del espacio de memoria. Su
desventaja est en que se trata de un proceso de carga general, por lo que mientras se
ejecuta la compactacin, todo lo dems debe esperar.
La compactacin no es una tarea sencilla. Primero, todos los programas en memoria se deben
relocalizar, de manera que queden contiguos; luego hay que ajustar cada direccin y cada
referencia a una direccin en todo programa para tomar en consideracin la nueva
localizacin del programa en la memoria. Sin embargo hay que respetar los valores dentro del
programa. En otras palabras el sistema operativo debe distinguir entre direcciones y valores
de datos.
17) Se utiliza porque con ella se puede cargar y manejar mltiples tareas en memoria. Se
utiliza en los siguientes esquemas: Particiones fijas, dinmicas y dinmicas relocalizables.
18) Relocalizacin
Mediante la relocalizacin y la compactacin, el administrador de memoria optimiza el uso de
la memoria. Un efecto colateral desafortunado es que se incurre en ms carga general.

El factor crucial es la periodicidad de la compactacin: cuando y con qu frecuencia debe


efectuarse. Hay tres opciones:

Una opcin es realizarla cuando cierto porcentaje de la memoria queda ocupado,


digamos un 75 por ciento. La desventaja es que el sistema incurrira en una carga
general innecesaria si no hay tareas esperando utilizar ese 25 por ciento restante.
Un segundo procedimiento es compactar la memoria solo cuando haya tareas en
espera de entrar. Esto significara una revisin constante de la cola de entrada, lo que
puede resultar en una carga general innecesaria y en la reduccin de la velocidad del
procesamiento de las tareas incluidas en el sistema.
La tercera opcin es compactar despus de un lapso preestablecido. Si el periodo
elegido es demasiado breve, el sistema utilizara ms tiempo en la compactacin que
en procesamiento. Si es demasiado grande, se acumularan demasiadas tareas en la
cola de espera y se perdern las ventajas de las compactacin.

20) El Siguiente ajuste es un algoritmo de asignacin que lleva el seguimiento de la


ltima particin asignada y cuando llega una nueva tarea empieza a buscar a partir de dicho
punto.
La ventaja de este algoritmo es que disminuye el tiempo para encontrar un bloque de
memoria libre porque no recorre la lista de bloques desde el principio.
21) Las 4 tcnicas de asignacin de memoria tienen 3 puntos en comn: requiere que la
totalidad del programa 1- quede cargado en memoria 2- pueden almacenar juntos 3permanezca en la memoria hasta que se complete la tarea.

Das könnte Ihnen auch gefallen