Вы находитесь на странице: 1из 4

Administrador de Memorias

La administracin de la memoria principal es vital. El desempeo de todo sistema ha dependido de dos cosas: cunta memoria est disponible y de qu manera se utiliza mientras se procesan los trabajos o tareas. El administrador de memoria presenta cuatro tipos de esquemas de asignacin de memoria:

1. Esquema Contiguo de Usuario nico


ada programa que se iba a procesar se cargaba en la memoria y se le asignaba tanto espacio contiguo como necesitase. !i el programa era demasiado grande este no se ejecutaba" para lo cual se incrementaba el tamao de la memoria o se modi#icaba el programa o se superpon$a en segmentos de programa. Algoritmo para cargar una tarea: 1. %lmacene la primera localidad de memoria del programa en el registro. 2. &oner el contador del programa ' que la direccin de la primera localidad de memoria. 3. Lea la (ra instruccin del programa. 4. )ncremente el contador en el n*mero de bytes que ocupa la instruccin. 5. +a llegado a la ultima instruccin, !i es as$- pare la carga del programa. !i no es as$- continu el paso .. 6. El contador de programa es mas grande que el tamao de la memoria, !i es as$- deje de cargar. !i no es as$- continu paso /. . argue la instruccin en la memoria !. Lea la siguiente instruccin del programa. ". 0aya al paso 1.

2. Esquema #articiones $i%as


2na particin #ija para cada tarea #ue lo que posibilito la multiprogramacin. ada particin se especi#icaba al encender el sistema" para modi#icarlo era necesario apagar" recon#igurar o reiniciar el sistema. Este esquema de particin es ms #le3ible que el de usuario *nico porque permita que varios programas estn en memoria al mismo tiempo. Algoritmo para cargar una tarea: 1. 4etermine el tamao de memoria solicitado por la tarea. 2. !i el tamao de la tarea es 5 que la particin mas grande entonces rechace la tarea. )mprima un mensaje adecuado para el operador. !ino 0aya al paso 6. 3. &onga el contador en (. 4. 7ientras el contador sea 8' 9 de particiones en memoria. !i el tamao de la tarea 5 tamao de la particin de memoria :contador;

Entonces contador'contador<( !ino !i el estado de particin de la memoria :contador;' =libre> Entonces cargue la tarea en la particin de memoria :contador; ambie el estado de particin de memoria :contador;' =ocupado> 0aya al paso ( !ino contador'contador<( ?in mientras 5. @o hay una particin disponible en este momento: oloque la tarea en la cola de espera. 6. 0aya al paso (.

3. Esquema #articiones &in'micas


%*n se conserva en bloques contiguos" se da memoria a las tareas solo cuando lo solicitan para su procesamiento. =&rimero en llegar" primero en recibir atencin>. 2tiliza toda la memoria al cargar las primeras tareas. &ero con#orme 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 con su prioridad. !e desperdicia memoria" se dan las #ragmentaciones e3ternas e internas. Asignaci(n de Me%or A%uste En Comparaci(n con #rimer A%uste &ara los esquemas de %signacin #ija y de memoria dinmica" el !A debe mantener listas de cada localidad de memoria" anotando cules estn libres y cules estn ocupadas. Luego" con#orme entran nuevas tareas en el sistema" las particiones libres se deben asignar. !eg*n la tcnica del primer ajuste :la primera particin que llena los requisitos;" la cual organiza las listas libresBocupadas por localidades de memoria" de bajo orden hasta alto orden. !eg*n la tcnica de mejor ajuste :la particin ms pequea que llena los requisitos;" la cual mantiene las listas libresBocupadas en orden por tamao" desde la ms pequea a la ms grande. Algoritmo de Me%or A%uste: 1. )nicialice el bloque de memoria:C; ' DDDDD. 2. alcule el desperdicio inicial de memoria ' bloque de memoria:C; E tamao de la tarea. 3. )nicialice el sub$ndice ' C. 4. &onga el contador en (. 5. 7ientras el contador 8'9 de bloques en memoria !i el tamao de la tarea 5 tamao de la memoria:contador; Entonces contador ' contador<( !i no 4esperdicio de memoria ' tamao de la memoria:contador; F tamao de la tarea !i el desperdicio inicial de la memoria 5 desperdicio de la memoria Entonces sub$ndice ' contador 4esperdicio inicial de la memoria ' desperdicio de la memoria

ontador ' contador < ( ?in 7ientras 6. !i sub$ndice ' C oloque la tarea en la cola de espera !i no argue la tarea en el tamao de la memoria : sub$ndice; %juste las listas de memoria libresBocupadas . 0aya a tomar la siguiente tarea. &esasignaci(n Es liberar o desasignar el espacio de memoria. &ara un sistema de particin #ija" el proceso es bastante sencillo. uando se termina la tarea" el administrador de memoria restablece el estado del bloque de memoria" donde se asign la tarea" como =libre>. 2n sistema de particin dinmica utiliza un algoritmo ms complicado" ya que ste trata de combinar reas libres de memoria siempre que sea posible. &or lo tanto el sistema debe estar preparado para tres situaciones: Caso 1: uando el bloque que se va a liberar o desasignar esta junto a otro bloque libre. Caso 2: uando el bloque por liberar se encuentra entre dos bloques libres. Caso 3: uando el bloque por liberar se encuentra aislado de otros bloques libres. Algoritmo #ara )i*erar +loques &e Memoria: 1. !i la ubicacin de la tarea se encuentra junto a uno o ms bloques libres. Entonces !i la ubicacin de la tarea esta entre dos bloques libres Entonces combine los tres bloques en uno Gamao de la memoria :contador E (; ' tamao de la memoria :contador E (; < tamao de la tarea < tamao de la memoria :contador < (; ?ije el estado del tamao de la memoria :contador < (; en entrada nula !i no ombine ambos bloques en uno Gamao de la memoria :contador E (; ' tamao de la memoria :contador F (; < tamao de la tarea !i no Husque una entrada nula en la lista de memoria libre )ntroduzca el tamao de la tarea y la direccin de inicio en el lugar de la entrada nula ?ije su estado en =libre>. 4. Esquema #articiones &in'micas ,elocali-a*les on este esquema de asignacin de memoria" el administrador de memoria relocaliza los programas para reunir los bloques vac$os y compactarlos para hacer un bloque de memoria lo bastante grande para aceptar algunas o todas las tareas en espera de entrar. El !A compacta la memoria" proceso conocido a veces como =recoleccin de basura> o des#ragmentacin" para recupera secciones #ragmentadas de espacio de memoria.

Compactaci(n La compactacin no es una tarea sencilla. &rimero todos los programas se deben relocalizar" de manera que queden contiguos- luego hay que ajustar cada direccin y cada re#erencia a una direccin en todo programa para tomar en consideracin la nueva localizacin del programa en la memoria. !in embargo hay que respetar los dems valores de los datos dentro del programa. En otras palabras el !A debe distinguir entre direcciones y valores de datos" y las di#erencias no son obvias una vez que se carga el programa en la memoria

Вам также может понравиться