8/12/2019 Unidad 2 [Admon Memoria]
1/58
8/12/2019 Unidad 2 [Admon Memoria]
2/58
A D M I N I S T R A D O R D E M E M O R I A
PRIMEROS SISTEMAS
8/12/2019 Unidad 2 [Admon Memoria]
3/58
CONTENIDO
La administracin de la memoria principal es vital. El desempeo de todosistema ha dependido de dos cosas:
cuanta memoria est disponible
de qu manera se utiliza mientras se procesan los trabajos otareas
Existen cuatro tipos de esquemas de asignacin de memoria:
Sistemas de un usuario
Particiones fijas
Particiones dinmicas
Particiones dinmicas relocalizables
8/12/2019 Unidad 2 [Admon Memoria]
4/58
SISTEMA DE GESTIN DE MEMORIA
Memoria
Un soloproceso
VariosProcesos
ParticionesFijas
Particionesdinmicas
Paginacin
MemoriaVirtual
Segmentacin Pag. / Seg.
8/12/2019 Unidad 2 [Admon Memoria]
5/58
ALGORITMO DE USUARIO NICO
Cada programa que se iba a procesar se cargaba completo en memoria y se leasignaba tanto espacio contiguo como necesitara.
Si el programa era demasiado grande y no caba en el espacio de memoriadisponible, no se poda ejecutar
Factor limitante en todas las computadoras: tienen una cantidad finita dememoria y si un programa no cabe, hay que incrementar el tamao de lamemoria principal o modificar el programa, por lo general se usan mtodosque permiten la superposicin de segmentos de programa (particiones del
programa).
Se da acceso a cada usuario a toda la memoria principal disponible para cadatarea y estas se procesan en secuencia, una despus de la otra.
8/12/2019 Unidad 2 [Admon Memoria]
6/58
ALGORITMO1. Almacene la primera localidad de memoria del programa en el registro
base
2. Ponga el contador del programa (cont. la direc. de la sig. instruc. quese va a ejecutar) igual que la direccin de la primera localidad dememoria
3. Lee la primera instruccin del programa
4. Incremente el contador de programa en el nmero de bytes que ocupa
la instruccin5. Ha llegado a la ltima instruccin?
Si es as, pare la carga del programa
Si no es as, continu en el paso 6
6. El contar de programa es ms grande que el tamao de la memoria?
Si es as, deje de cargarSi no es as, contine con el paso 7
7. Cargue la instruccin en la memoria
8. Lea la siguiente instruccin del programa
9. Vaya al paso 4
8/12/2019 Unidad 2 [Admon Memoria]
7/58
PARTICIONES FIJAS
Una particin para cada tarea, dado que el tamao de cada particin seespecificaba al encender el sistema
cada particin solo podra reconfigurarse reiniciando el sistema, por loque una vez estando el sistema en operacin, el tamao de lasparticiones quedaba fijo.
La proteccin del espacio en memoria para la tarea; una vez asignadauna particin a una tarea, no se permita que ninguna otra tarea entraraen esos lmites, (ni de manera accidental o intencional)
8/12/2019 Unidad 2 [Admon Memoria]
8/58
PARTICIONES FIJAS [ALGORITMO]
1. Determine el tamao de memoria solicitado por la tarea
2. Si el tamao de la tarea es mayor a la particin ms grande
Entonces : rechace la tarea, Imprima un mensaje apropiado para el usuario, Vaya al paso 1para manejar la siguiente tarea en lnea
Si no : Continu con el paso 3
3. Ponga el contador en 1
4. Mientras el contador sea mayor igual al numero de particiones en memoriaSi el tamao de la tarea es mayor al tamao de la particin de memoria (contador)
Entonces contador = contador +1;
Si no : Si el estado de particin de la memoria (contador) = libre
Entonces cargue la tarea en la particin de memoria (contador)
Cambie el estado de particin de memoria (contador) a ocupado
Vaya al paso 1Si no: Contador =contador + 1
Fin mientras
5. No hay una particin disponible en este momento: coloque la tarea en la cola de espera
6. Vaya al paso 1
8/12/2019 Unidad 2 [Admon Memoria]
9/58
PARTICIONES FIJAS [EJEMPLO]
Tabla de asignacin de memoria de particin libre
Tamao de laParticin
Direccin dememoria
AccesoEstado de la
particin
100 K 200 Tarea 1 Ocupado
25 K 300 Tarea 4 Ocupado
25 K 325 Libre
50 K 350 Tarea 2 Ocupado
Lista de tareasT1 30 KT2 50 KT3 30 KT4 25 K Tarea 1 (30 k)
Tarea 4 (25 K)
Tarea 2 (50 K)
100 K25 K25 K50 K
EstadoOriginal
Despus de laaceptacin de la tarea
P1
P2
P3
P4
P1
P2
P3
P4
8/12/2019 Unidad 2 [Admon Memoria]
10/58
PARTICIONES DINMICAS
Con las particiones dinmicas, la memoria disponible an se conservaen bloques contiguos, pero a las tareas nada ms se les da la memoriaque solicitan cuando se cargan para su procesamiento
Un esquema como este usa toda la memoria al cargar las primerastareas
primeroen llegar, primero en recibir atencin
Por lo que la asignacin de memoria crea fragmentos de memoria libreentre bloques de memoria asignada, a lo que se conoce comofragmentacin externa
8/12/2019 Unidad 2 [Admon Memoria]
11/58
8/12/2019 Unidad 2 [Admon Memoria]
12/58
PARTICIONES DINMICAS [EJEMPLO]
Tabla de asignacin de memoria de particin Dinmica
Tamao de
laParticin
Direccin
dememoria
Acceso Fragment.Estado de
laparticin
10 K 200 Tarea 5 5K Ocupado
15 K 210 Tarea 2 0K Ocupado
20 K 225 Tarea 7 10K Ocupado
50 K 245 Tarea 6 20K Ocupado
8/12/2019 Unidad 2 [Admon Memoria]
13/58
ASIGNACIN DE MEJOR AJUSTE ENCOMPARACIN CON PRIMER AJUSTE
Para los esquemas de asignacin fija y de memoria dinmica, el sistemaoperativo debe mantener listas de cada localidad de memoria, anotando culesestn libres y cules estn ocupadas.
Estas particiones se pueden asignar segn la tcnica del: Primer ajuste:
primera particin que llena los requisitos
organiza las listas libres /ocupadas por localidades de memoria, de bajo orden hasta alto orden.
es ms rpido para asignar.
Mejor ajuste: la particin ms pequea que llena los requisitos
mantiene las listas libres /ocupadas en orden por tamao, desde la ms pequea a la msgrande
aprovecha el mejor uso del espacio de memoria
se desperdicia tiempo buscando el espacio ms adecuado
La misma lista de tareas utilizara la memoria con mayor eficiencia.
8/12/2019 Unidad 2 [Admon Memoria]
14/58
PRIMER AJUSTE [ALGORITMO]
Este algoritmo asume que: el administrador de la memoria mantiene dos listas: uno para los
bloques de memoria libres y otra para los bloques de memoriaocupados
compara el tamao de cada tarea con el tamao de cada bloque dememoria, hasta hallar un bloque lo suficientemente grande para latarea
se almacena en ese bloque de memoria el administrador de la memoria sale del ciclo para tomar la siguiente
tarea de la cola de entrada. Si busca en vano en toda la lista, deja la tarea en una cola de espera,
toma la siguiente tarea y repite el proceso fragmentacin interna, dan lugar al desperdicio de memoria.
8/12/2019 Unidad 2 [Admon Memoria]
15/58
PRIMER AJUSTE [ALGORITMO]
Nmero detarea
Tl
Memoriasolicitada
10K .T2 20KT3 30K*T4 10K
Lista de memoria:Localidad Tamao del
memoria bloque de mem.Nm. tarea Tam. tarea Edo. Fragmentacin
interna10240
4096056320107520
30K
15K50K20K
Total 115Kdisponible
Tl 10K Ocupado 20K
T4 10K Ocupado 5KT2 20K Ocupado 30K
___ LibreTotal 40K
Utilizado
8/12/2019 Unidad 2 [Admon Memoria]
16/58
8/12/2019 Unidad 2 [Admon Memoria]
17/58
EJERCICIO
Considerar un sistema de intercambio en el que lamemoria posee particiones libres de tamao fijo:1000kb, 400kb, 1800kb, 700kb,900kb,1200 kb y
1500kb. Estas particiones estn en el orden dado.Se tienen tres procesos de tamaos 1200kb, 1000kby 900 kb.
Como quedaran las TDP para:
Primer ajuste
Mejor ajuste
Peor ajuste
Siguiente ajuste
8/12/2019 Unidad 2 [Admon Memoria]
18/58
DESASIGNACIN
Cuando se termina la tarea, el administrador de memoria restablece el estado delbloque de memoria, donde se asigno la tarea como libre.
Un sistema de particin dinmica utiliza un algoritmo ms complicado, ya que este
trata de combinar reas libres de memoria siempre que sea posible.
Caso 1. Cuando el bloque que se va a liberar o desasignar est junto a otrobloque libre.
Caso 2.Cuando el bloque por liberar se encuentra entre dos bloques libres.
Caso 3. Cuando el bloque que se va a liberar se encuentra aislado de otrosbloques libres.
8/12/2019 Unidad 2 [Admon Memoria]
19/58
CASO 1 UNIN DE DOS BLOQUES LIBRES
La siguiente tabla muestra como ocurre la desasignacin en un sistema deasignacin de memoria dinmico, cuando la tarea que termina esta junto a unbloque de memoria libre.
Direccin de inicio Tamao del bloque dememoria
Estado
4075 105 Libre5225 5 Libre6785 600 Libre7560 20 (Ocupado)
(7600) (200) (Ocupado)*7800 5 Libre10250 4050 Libre
15125 230 Libre24500 1000 Libre
Est es la lista libre original antes de ladesasignacin del caso 1. El asterisco indicael bloque de memoria libre vecino al bloquede memoria que pronto se liberar.
8/12/2019 Unidad 2 [Admon Memoria]
20/58
CASO 1 UNIN DE DOS BLOQUES LIBRES
Despus de desasignar, la lista libre se ve como sigue:
Caso 1. Lista libre despus de la desasignacin.
El asterisco indica la localidad donde se efectuaron cambios en elbloque de memoria libre.
Direccin de inicio Tamao del bloque dememoria
Estado
4075 105 Libre5225 5 Libre6785 600 Libre
7560 20 Libre*7600 205 Libre10250 4050 Libre15125 230 Libre24500 1000 Libre
8/12/2019 Unidad 2 [Admon Memoria]
21/58
CASO 2 UNIN DE TRES BLOQUES LIBRES
Cuando el espacio de memoria liberado est entre dos bloques de memoria libre,el proceso es similar.
Direccin de inicio Tamao del bloque dememoria
Estado
4075 105 Libre5225 5 Libre6785 600 Libre
*7560 20 Libre(7580) (20) (Ocupado)*7600 205 Libre10250 4050 Libre15125 230 Libre
24500 1000 Libre
Caso 2. Lista libre original antes de ladesasignacin. Los asteriscos indicanlos dos bloques de memoria librevecinos al bloque de memoria quepronto se va a liberar.
8/12/2019 Unidad 2 [Admon Memoria]
22/58
CASO 2 UNIN DE TRES BLOQUES LIBRES
Dado que la entrada en la localidad 7600 se combino con la entrada anterior,debemos vaciaresta entrada. Lo hacemos cambiando el estado a entrada nula,si direccin de inicio ni tamao de bloque de memoria, segn indica el asteriscode la siguiente tabla. Este vuelve innecesario tener que rearreglar la lista aexpensas de la memoria.
Direccin de inicio Tamao del bloque dememoria Estado
4075 105 Libre5225 5 Libre6785 600 Libre7560 245 Libre
* Entrada nula
10250 4050 Libre15125 230 Libre
24500 1000 Libre
Caso 2. Lista libre despus de que una tarea ha
liberado memoria.
8/12/2019 Unidad 2 [Admon Memoria]
23/58
CASO 3 DESASIGNACIN DE UN BLOQUEAISLADO
La tercera opcin es cuando el espacio por liberar est aislado de las dems reaslibres.
Para este ejemplo necesitamos saber ms sobre la forma en que estaconfigurada la lista de memoria ocupada.
Direccin de inicio Tamao del bloque dememoria
Estado
4075 105 Libre5225 5 Libre6785 600 Libre
7560 245 Libre* Entrada nula
10250 4050 Libre15125 230 Libre24500 1000 Libre
Caso 3. Lista libreoriginal antes dela desasignacin.El bloque de
memoria quepronto seliberar no estjunto a algnbloque libre.
8/12/2019 Unidad 2 [Admon Memoria]
24/58
CASO 3 DESASIGNACIN DE UN BLOQUEAISLADO
Direccin de inicio Tamao del bloque dememoria
Estado
7805 1000 Ocupado*8805 445 Ocupado9250 1000 Ocupado
Caso 3. Lista de memoria ocupada antes de la
desasignacin. La tarea que se va adesasignar es de tamao 445 y empieza en lalocalidad 8805. El asterisco indica el bloquede memoria que prontoser libre.
8/12/2019 Unidad 2 [Admon Memoria]
25/58
CASO 3 DESASIGNACIN DE UN BLOQUEAISLADO
El esquema presentado en este ejemplo crea durante el proceso deasignacin o desasignacin de la memoria entradas nulas tanto en la listaocupada como en la lista libre. En el caso 2 se present un ejemplo de unaentrada nula resultante de una desasignacin. Se da una entrada nula en lalista ocupada cuando se devuelve a la lista libre un bloque de memoria que se
encuentra entre otros bloques ocupados. Este mecanismo asegura que todoslos bloque se coloquen en las listas de acuerdo con la direccin de inicio desus localidades de memoria, desde el ms pequeo hasta el ms grande.
Direccin de inicio Tamao del bloque dememoria
Estado
7805 1000 Ocupado* Entrada nula
9250 1000 Ocupado
Caso 3. Lista ocupada despus de que la tarea liber sumemoria. El asterisco indica la nueva entrada nula en la listaocupada.
8/12/2019 Unidad 2 [Admon Memoria]
26/58
CASO 3 DESASIGNACIN DE UN BLOQUEAISLADO
Cuando se encuentra la entrada nula, la localidad de memoria de inicio deltrabajo que esta terminando se introduce en la columna de direccin deinicio, el tamao de la tarea se introduce en la columna del tamao del bloquede memoria y el estado cambia de entrada nula a libre para indicar que unnuevo bloque de memoria esta disponible.
Direccin de inicio Tamao del bloque dememoria
Estado
4075 105 Libre5225 5 Libre6785 600 Libre7560 245 Libre
*8805 445 Libre
10250 4050 Libre15125 230 Libre24500 1000 Libre
Caso 3. Lista libre despus de que la tarea libera sumemoria. El asterisco indica la entrada nuevobloque libreque reemplaza a la entrada nula.
8/12/2019 Unidad 2 [Admon Memoria]
27/58
PARTICIONES DINMICAS RELOCALIZABLES
Problema:
La fragmentacin (astillas) de las particiones fijas y dinmicas
Solucin:
Particiones dinmicas relocalizables
El sistema operativo se encarga de compactar la memoria: proceso conocidocomo recoleccin de basurao desfragmentacin
Mientras se realiza la desfragmentacin todo lo dems debe esperar
Todos los programas deben de relocalizar de manera que queden contiguos yajustar direcciones y referencias a las direcciones en todos los programas paratomar en consideracin la nueva localizacin del programa en memoria
8/12/2019 Unidad 2 [Admon Memoria]
28/58
PARTICIONES DINMICAS RELOCALIZABLES
Cundo y con que frecuencia debe efectuarse la compactacin?
1) Realizarla cuando cierto porcentaje de la memoria queda ocupada, digamos
un 75%.
2) Compactar la memoria solo cuando hayan tareas en espera de entrar
3) Compactar despus de un lapso preestablecido
8/12/2019 Unidad 2 [Admon Memoria]
29/58
A D M I N I S T R A D O R D E M E M O R I A
SISTEMAS RECIENTES
8/12/2019 Unidad 2 [Admon Memoria]
30/58
PAGINACIN
Es una tcnica de manejo de memoria en el cual los programas o tareasse dividen en unidades fsicas denominadas paginas,
Las pginasse pueden cargar de forma aleatoria en cualquier bloque dememoria denominado ahora marco de pagina, los cuales son de igualtamao
La principal ventaja de la paginacin simple es el almacenamiento nocontinuo de las paginas dentro de la memoria principal (la tarea sealmacena completa en la memoria).
Las secciones de un disco se conocen como sectores y los sectores de lamemoria principal se denominan marcos de pgina. Este esquema funcionacuando:
Pginas = Sectores =Marcos de Pgina MISMO TAMAO
8/12/2019 Unidad 2 [Admon Memoria]
31/58
PAGINACIN
Para realizar la paginacin el administrador de memoria debe realizar lassiguientes tareas:
1) Determinar el nmero de pginas de cada tarea.
2) Ubicar los marcos de pgina vacos en la memoria principal.
3) Cargar todas las pginas de la tarea en los marcos de pgina.
8/12/2019 Unidad 2 [Admon Memoria]
32/58
PAGINACIN
Debido a esto se requiere el manejo de tres tablas importantes:
1. TABLA DE MAPA DE MEMORIA (MMT): Solo existe una tabla de mapa dememoria en el sistema y contiene la direccin de inicio de los marcos depgina y su estado libre u ocupado.
2. TABLA DE TAREAS (JT): Existe una para cada tarea activa en el sistema la cualcontiene el tamao de la tarea en nmeros de pgina y la localidad dememoria donde se encuentra almacenada su tabla de mapa de pgina (PMT).
3. TABLA DE MAPA DE PAGINAS (PMT): Existe una para cada tarea activa la cualcontiene informacin vital correspondiente a cada pgina como el nmero depgina y la direccin de memoria del marco de pgina donde se encuentraalmacenada.
8/12/2019 Unidad 2 [Admon Memoria]
33/58
PAGINACIN
8/12/2019 Unidad 2 [Admon Memoria]
34/58
PAGINACIN
Las tres tablas residen en la parte de la memoria principal reservada al sistemaoperativo.
Ejemplo de tabla de tareas
Tabla de tareas
Tamao del
trabajo
Localizacin
del PMT
400 3096
200 3100
500 3150
Tabla de tareas
Tamao deltrabajo
Localizacindel PMT
400 3096
500 3150
Tabla de tareas
Tamao del
trabajo
Localizacin
del PMT
400 3096
700 3100
500 3150
8/12/2019 Unidad 2 [Admon Memoria]
35/58
PAGINACIN
Cada tarea activa tiene una tabla de mapa de pginas (PMT) que contieneinformacin correspondiente a cada pgina: el nmero de pgina y la direccinde memoria del marco de pgina correspondiente.
Ejemplo de tabla de mapa de pginas
Nmero de pgina de la tarea Nmero de marco de pgina
0 8
1 10
2 5
3 11
8/12/2019 Unidad 2 [Admon Memoria]
36/58
PAGINACIN
El desplazamiento de una lnea es le factor que se utiliza para localizarla en sumarco de pgina.
Por ejemplo, las lneas 0, 100, 200 y 300 son las primeras lneas de las pginas 0, 1,2 y 3 por lo que cada una tiene un desplazamiento igual a 0.
La primera lnea de cada pgina tiene un desplazamiento igual a 0, la segundalnea un desplazamiento de 1 y as hasta la ltima lnea que tiene un
desplazamiento de 99.
8/12/2019 Unidad 2 [Admon Memoria]
37/58
PAGINACIN
Para encontrar la direccin de una lnea de programa dada, el nmero de la lnease divide entre el tamao de la pgina y el residuo se conserva como un nmeroentero.
El cocienteresultante es el nmero de la pginay el residuoes el desplazamientodentro de dicha pgina.
8/12/2019 Unidad 2 [Admon Memoria]
38/58
PAGINACIN
Para el ejemplo anterior:
La lnea 214 esta en la pgina 2, a 15 lneas de laparte superior de la pgina.
Obtener el nmero de pgina y eldesplazamiento de la lnea 36.
La lnea 36 esta en la pgina 0, a 37 lneas de la
parte superior de la pgina.
8/12/2019 Unidad 2 [Admon Memoria]
39/58
PAGINACIN
En el primer ejemplo, buscamos una instruccin con un desplazamiento de 14 de la pgina2, para encontrar su localidad exacta en la memoria
Paso 1 : Efectuar el clculo aritmtico para determinar el nmero de pgina y eldesplazamiento de la lnea.
Numero de pgina = cociente entero de una divisin de la direccin del espacio de la tarea entreel tamao de la pgina.
Desplazamiento = residuo de la divisin del nmero de pginaPaso 2 : Referirse a la PMT de esta tarea y determinar que marco de pgina contiene lapgina 2
Paso 3 : Obtener la direccin de inicio del marco de pgina multiplicando el nmero demarco de pgina por el tamao del marco de pgina.
Dir_Inicio_Marco = Num_Marco_Pag * Tamao_Pag
Paso 4: Aadir el desplazamiento a la direccin inicial del marco de pgina para calcular lalocalidad precisa en la memoria de la lnea:
Dir_Real_Mem = Dir_Ini_Marco + despla
8/12/2019 Unidad 2 [Admon Memoria]
40/58
PAGINACIN [EJERCICIO]
1.Determinar de que tamao son los marcos
2.Generar la PMT3.Calcular el nmero de pgina y el desplazamiento de la lnea 518
4.cul es el nmero de marco de pgina para la pgina 1
5.Calcule la direccin inicial del marco de pgina
6.Calcule la direccin exacta de la instruccin en la memoria principal, sumando eldesplazamiento a la direccin inicial.
8/12/2019 Unidad 2 [Admon Memoria]
41/58
PAGINACIN
8/12/2019 Unidad 2 [Admon Memoria]
42/58
PAGINACIN POR DEMANDA
Es similar a lo visto para la paginacin simple, con la diferencia que esteesquema introdujo la idea de cargar solo una porcin del programa para suprocesamiento.
Los paginas de los procesos residen en el disco duro y solo cuando van a serejecutados deben ser cargados en memoria.
Una de las innovaciones de mayor importancia en la paginacin por demanda esque hizo posible el amplio uso de la memoria virtual, lo que permite al usuario
ejecutar tareas con menos memoria principal de lo que requerira si utilizara lapaginacin simple.
8/12/2019 Unidad 2 [Admon Memoria]
43/58
PAGINACIN POR DEMANDA
El sistema operativo se sigue apoyando en las mismas tablas que se utilizan en lapaginacin simple, pero con la adicin de tres nuevos campos para cada pginaen la Tabla de Mapa de Paginas:
Campo 1: establece si la pagina solicitada esta o no en la memoria.
Campo 2: determina si el contenido de la pgina se ha modificado.
Campo 3: define si la pgina ha sido referenciada recientemente.
8/12/2019 Unidad 2 [Admon Memoria]
44/58
PAGINACIN POR DEMANDA
Valor Significado0 No en memoria1 Reside en
memoria
Bit de estado Bit de modificacin
Bit de referencia
Valor Significado0 No modificado1 Modificado
Valor Significado0 No llamada1 Llamada
El bit de estado para todas las pginas situadas en la
memoria es 1. Una pgina debe estar en la memoria
antes que se pueda intercambiar, de manera quetodos los candidatos para intercambio tienen un 1 en
esta columna.
Los otros dos bits pueden ser 0 o 1, por lo que hay
cuatro combinaciones posibles para los bits de
referencia y de modificacin
Modif icacin Referencia Signi f icadoCaso 1 0 0 No modificada y no referidaCaso 2 0 1 No modificada pero referidaCaso 3 1 0 Modificada pero no referidaCaso 4 1 1 Modificada y referida
8/12/2019 Unidad 2 [Admon Memoria]
45/58
PAGINACIN POR DEMANDA [EJEMPLO]
Tarea 1 Memoria Principal
Tarea 2
Tarea 3
Tarea 4
Pgina 0Pgina 1Pgina 2Pgina 3
P0 S 5P1 S 9P2 S 7P3 S 12
Pgina 0Pgina 1
Pgina 0Pgina 1Pgina 2
Pgina 0Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5
P0 S 10P1 S 14
P0 S 4P1 S 8P2 S 11
P0 S 6P1 S 13P2 S 15P3 NP4 NP5 N
Sistema Operativo
Tarea 3 - P0Tarea 1 - P0Tarea 4 - P0Tarea 1 P2Tarea 3 - P1Tarea 1 - P1Tarea 2 - P0Tarea 3 - P2Tarea 1 - P3Tarea 4 - P1Tarea 2 - P1Tarea 4 - P2
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Estado
Modificacin
ReferenciaNm. de marco de pgina
S=s en memoria
N=no en memoria
8/12/2019 Unidad 2 [Admon Memoria]
46/58
POLTICAS DE REEMPLAZO
Las polticas, seleccionan la pagina que se va a eliminar polticas de reemplazode pgina
Primero en entrar, primera en salir (FIFO) La menos utilizada recientemente (LRU)
Segunda Oportunidad
Reloj
No usada recientemente (NRU)
De uso ms reciente (MRU)
Del uso menos frecuente (LFU)
8/12/2019 Unidad 2 [Admon Memoria]
47/58
POLTICAS DE REEMPLAZO
Primero en entrar, primera en salir (FIFO)
La tarea que se va a manejar necesita procesar sus pginas en el ordensiguiente: A,B,A,C,A,B,D,B,A,C,D
Pgina solicitada B A C A B D B A C D
A
Interrupcin * * * * * * * * *
Tiempo 1 2 3 4 5 6 7 8 9 10 11
Marcode
pgina 1Pgina A
Marcode
pgina 2(vaco)
DA A C C B B B A A
B B A A D D D C CB
8/12/2019 Unidad 2 [Admon Memoria]
48/58
POLTICAS DE REEMPLAZO
Para calcular la tasa de falla, dividimos el numero de solicitudes de pgina entreel nmero de interrupciones
La tasa de falla de este sistema es de 9/11=82 82% la tasa de falla
La tasa de xito es de 2/11=18 18%
Los porcentajes se deben a las limitaciones en la memoria disponible y al orden
en que se solicitan las pginas del programa
8/12/2019 Unidad 2 [Admon Memoria]
49/58
POLTICAS DE REEMPLAZO
La menos recientemente utilizada (LRU)
La tarea que se va a manejar necesita procesar sus pginas en el ordensiguiente: A,B,A,C,A,B,D,B,A,C,D
Pgina solicitada B A C A B D B A C D
A
Interrupcin * * * * * * * *
Tiempo 1 2 3 4 5 6 7 8 9 10 11
Marcode
pgina 1Pgina A
Marcode
pgina 2(vaco)
DA A A A A D D A A
B C C B B B B C CB
8/12/2019 Unidad 2 [Admon Memoria]
50/58
POLTICAS DE REEMPLAZO
La menos recientemente utilizada (LRU)
El bit de referencia, si ha sido llamada recientemente sirve alalgoritmo LRU para determinar que paginas intercambiar
El bit de modificacin indica si el contenido de la pgina ha sidoalterado y se utiliza para definir si se debe volver a escribir enalmacenamiento secundario
El bit de estadopara todas la s pginas situadas en memoria es 1,
Modif. Ref. SignificadoCaso 1 0 0 No modificada y no referidaCaso 2 0 1 No modificada pero referidaCaso 3 1 0 Modificada pero no referidaCaso 4 1 1 Modificada y referida
8/12/2019 Unidad 2 [Admon Memoria]
51/58
SEGMENTACIN
El concepto de la segmentacin se basa en la prctica comn entre losprogramadores de estructurar sus programas en mdulos: agrupamientoslgicos de cdigo.
Con la asignacin de memoria en segmentos cada tarea se divide en variossegmentos de tamaos diferentes, uno por cada mdulo que contiene piezas
que ejecutan funciones relacionadas.
8/12/2019 Unidad 2 [Admon Memoria]
52/58
SEGMENTACIN
Diferencias con respecto a paginacin:
La paginacin divide la tarea en varias pginas del mismo tamao
La memoria principal ya no se divide en marcos de pgina, porque el tamao de
cada segmento es diferente
Cuando se ensambla un programa, los segmentos se conforman de acuerdocon los mdulos estructurales del programa. Cada segmento esta numerado ypara cada tarea se genera una tabla de segmentos (SMT), que contiene:
los nmeros de segmento
su longitud los derechos de acceso,
l estado y cuando cada uno de ellos se carga en memoria
su localizacin en la misma.
8/12/2019 Unidad 2 [Admon Memoria]
53/58
8/12/2019 Unidad 2 [Admon Memoria]
54/58
SEGMENTACIN [EJEMPLO]
Programa
Principal
Subrutina A
Subrutina B
0
.
..
.
.
.
349
0
..
.
.
199
0
.
99
Nmero de
segmentoTamao Estado Acceso
Direccin
de la memoria
0 350 S E 4000
1 200 S E 7000
2 100 N E
Sistema
Operativo
Vaco
Programa
PrincipalOtros
ProgramasSubrutina A
OtrosProgramas
S= si en memoriaN= No en memoria
E= solo ejecutar
0
..
.3000
4000
.
7000
Tarea 1Memoria
Principal
Tabla de memoria
SEGMENTACIN [EJEMPLO]
8/12/2019 Unidad 2 [Admon Memoria]
55/58
SEGMENTACIN [EJEMPLO]
Tarea 1Memoria
Principal
Tabla de segmentos de
memoria para la tarea 1
Llamar
subrutina A
Llamar
subrutina B
0
..
100
..
199
0
.99
0
.
.50
.
.
.
349
Nmerode
segmentoTamao
Protecc
in
Referencia
Modificacin
Estado
Direccin de
la memoria0 350 40001 200 70002 100 6000
Sistema
OperativoVaco
Llamar subrutina APrograma Principal
Subrutina B
Subrutina ALlamar subrutina B
0
..
3000
4000
4050
4349
6000
6099
7000
7100
7199
8/12/2019 Unidad 2 [Admon Memoria]
56/58
SEGMENTACIN
El administrador de la memoria necesita controlar los segmentos de la memoriay lo hace con tres tablas, que combina aspectos de particiones dinmicas y de laadministracin de la memoria de paginacin por demanda.
1. La tabla de tareas lista todas las tareas en proceso (una para todo elsistema)
2. La tabla de mapa de segmentos lista detalles sobre cada segmento (unopor tarea)
3.La tabla de mapa de memoria vigila la asignacin de la memoria
principal (una para todo el sistema)
8/12/2019 Unidad 2 [Admon Memoria]
57/58
SEGMENTACIN
El administrador de la memoria necesita controlar los segmentos de la memoriay lo hace con tres tablas, que combina aspectos de particiones dinmicas y de laadministracin de la memoria de paginacin por demanda.
1. La tabla de tareas lista todas las tareas en proceso (una para todo elsistema)
2. La tabla de mapa de segmentos lista detalles sobre cada segmento (unopor tarea)
3.La tabla de mapa de memoria vigila la asignacin de la memoria
principal (una para todo el sistema)
8/12/2019 Unidad 2 [Admon Memoria]
58/58
SEGMENTACIN
En el esquema anterior el segmento 1 incluye toda la subrutina A, por lo que elsistema encuentra la direccin de inicio del segmento 1, direccin 7000 yempieza ah.
Si la instruccin solicitaba que el procesamiento se iniciara en la lnea 100 de la
subrutina A para localizar dicha lnea en la memoria, el administrador necesitaraagregar 100 (el desplazamiento) a 7000 (direccin de inicio del segmento 1).
LOC_MEM_ACTUAL=LOC_INICIO_SEG_MEM + DESP
El desplazamiento no puede ser ms grande que el tamao del segmento,aunque para eso el administrador debe verificar los tamaos para confirmarque no este fuera del lmite.
Recommended