You are on page 1of 24

Sistemas operativos

ADMINISTRACION DE LA MEMORIA
AGENDA
Administracin de la memoria
Asignacin de almacenamiento contiguo y no contiguo
Asignacin contigua de memoria para un solo usuario
Multiprogramacin con particiones fijas(MFT)
Fragmentacin interna y externa
Multiprogramacin con numero variables de tareas(MVT)
Asignacin no contigua de memoria
Paginacin
Segmentacin
Administracin de la memoria
Sin memoria los procesos no pueden existir.
Objetivos de la gestin de memoria:
La tarea del administrador de memoria es:
Permitir que los procesos funcionen en diversas zonas de memoria.
Llevar el control de las zonas en uso y de aquellas que no estn.
Asignar memoria a procesos cuando la solicitan y retira la memoria cuando terminan.
Administracin de la memoria
La memoria, a nivel fsico, tiene una estructura lineal, pero a la hora de la programacin se puede realizar
una abstraccin.
Asignacin de almacenamiento contiguo y no
contiguo
Nombre de la tarea: tarea
Cantidad: 4
tarea1
tarea1

tarea2 tarea2

tarea3

tarea4 tarea4

tarea3
Asignacin contigua de memoria para un
solo usuario
DOS
Ej. Si se dispone de 128 kb de memoria, el sistema operativo utiliza 32 kb, Qu espacio quedara
disponible si un programa de 64 kb se va a ejecutar?
0 kb
0 kb S.O.
S.O. (32 kb)
(32 kb)
32 kb w1.
32 kb
(64 kb)
96 kb
USUARIO W1
(96 kb) Libre
(64 kb)
(32 kb)
128 kb
128 kb
Multiprogramacin con particiones fijas(MFT)
Se divide la memoria en n partes, del mismo o diferentes tamaos.
Lo uso el sistema operativo IBM OS/360, actualmente en desuso.
Cola nica/ mltiples colas
Problema fragmentacin interna
Multiprogramacin con particiones fijas(MFT)
Colas de entrada independiente para cada particin:
Cada regin tiene su propia cola de trabajo, cuando llega un trabajo, se le coloca en una cola de tamao mas pequeo
que lo puede contener.

S.O.
Cola de trabajos para la particin 1 (32 kb)

Particion1

Cola de trabajos para la particin 2


Particion2

Cola de trabajos para la particin 3


Particion3
Multiprogramacin con particiones fijas(MFT)
Una sola cola de trabajo:
Un proceso que se encuentra al frente de la cola, se asigna a la particin libre mas pequea, pero capaz de
contenerlo.

S.O.

Particion1

Cola de trabajo
Particion2

Particion3
Fragmentacin interna y externa
Fragmentacin interna:
Ocurre cuando un proceso no ocupa toda la memoria asignada
Por ejemplo.
Un trabajo de 200 kb se encuentra en una particin de 256 kb, se desperdicia 56 kb (256 200), esta
diferencia se denomina fragmentacin interna.
Fragmentacin interna y externa
Fragmentacin externa:
Ocurre cuando una particin permanece disponible y no se utiliza por ser demasiado pequea para
cualquier trabajo que se halle en espera.
Por ejemplo.
Supongamos que tenemos tres particiones de 128 kb , 256 kb, 512 kb, y tres trabajos de 500 kb, 120 kb,
400 kb.
Solucin:
-El trabajo de 500 kb es asignado a la particin 512 kb, obteniendo una fragmentacin interna de 12 kb.
-120 kb es asignado a la particin de 128 kb, obteniendo una fragmentacin interna de 8 kb.
-La particin 256 kb permanece disponible, pero es pequeo para el trabajo de 400 kb, entonces se
produce una fragmentacin externa.
Multiprogramacin con numero variables de tareas(MVT)
El problema del MFT consiste en definir particiones de tamao adecuado para todos los trabajos que se
debe tratar. La solucin a este problema consiste en permitir que las particiones varen dinmicamente.
Multiprogramacin con numero variables de tareas(MVT)
El problema del MFT consiste en definir particiones de tamao adecuado para todos los trabajos que se
debe tratar. La solucin a este problema consiste en permitir que las particiones varen dinmicamente.
Por ejemplo, supongamos que tenemos 1024 kb de memoria disponible y un sistema operativo de 128
kb.
Trabajo Memoria
1 250 kb
2 350 kb
3 100 kb
4 250 kb
5 150 kb
6 120 kb
7 200 kb
Multiprogramacin con numero variables de tareas(MVT)
Trabajo Memoria
0 kb S.O 0 kb S.O
0 kb S.O
1 250 kb
128 kb w1 128 kb w1
2 350 kb
128 kb w1 (250 kb) (250 kb)
3 100 kb (250 kb) 378 kb
378 kb w2
4 250 kb w2
378 kb (350 kb)
(350 kb)
5 150 kb 728 kb w3
728 kb (100 kb)
6 120 kb Libre
(646 kb) Libre 828 kb
7 200 kb (296 kb) Libre
(196 kb)
1024 kb 1024 kb
1024 kb

W1 asignado W2 asignado W3 asignado


Asignacin no contigua de memoria
Asigna memoria en forma discontinua, para lo cual emplea dos tcnicas: la paginacin y segmentacin.
Paginacin
Es una tcnica de gestin que permite asignar memoria en forma discontinua. Dividen los programas en pequeas paginas.
La memoria lgica se divide en bloques del mismo tamao denominado paginas. La memoria fsica se divide en bloques del mismo
tamao denominado marcos de pagina o celdas.
Cuando hay que ejecutar un programa, se cargan sus paginas en cualquier marco disponible.
Asignacin no contigua de memoria
Paginacin
Cada pagina generada por la CPU se divide en dos partes : un numero de pagina (np) y un desplazamiento de la pagina (d). Que viene hacer
la direccin lgica.
El hardware de paginacin emplea la tabla de pginas para obtener la direccin fsica( numero de marco, desplazamiento).
La tabla de pagina tiene una entrada para cada pagina. El dato np se utiliza como un ndice en la tabla de pagina para obtener el marco
correspondiente. Permite establecer una correspondencia entre el nmero de pgina y un nmero de marco de memoria fsica (al numero
de pagina np le corresponde el numero de marco m)
La direccin fsica es el nmero de marco (m) y el desplazamiento (d).
Asignacin no contigua de memoria
Tamao de pginas y marcos definidos por Hardware.
Normalmente se escoge un tamao de pgina potencia de 2:
Ya que es ms fcil la traduccin de direcciones lgicas a fsicas.
CALCULO DEL TAMAO DE MARCO:
tamao de marco de pagina(mp) mp=mf/p
tamao de la memoria fsica (mf)
tamao de pagina(p) La direccin fsica se obtiene: Donde :
DF=tp[np]* p + d DF: direccin fsica
Calculo de np: DL: direccin lgica
np= DL div p np= nmero de pagina
Calculo de d: d= desplazamiento
d= DL Mod p div= divisin entera
mod= residuo

Si la longitud de una pgina es de 2n unidades de direccionamiento (bytes o palabras), los n bits designa el desplazamiento.
Tamao de la direccin lgica: 2m bits
Tamao de pginas: 2n bits
La direccin lgica es de m bits.
El desplazamiento es de n bits,
El nmero de pginas es de (m-n) bits
Paginacin

Ejemplo 01:
Si tenemos direcciones de 16 bits, el tamao dela pgina es de pgina es de 1kb= 1024 bytes =
210 bytes, se necesitan 10 bits para el desplazamiento y 6 bits para el numero de pgina.
El programa podr tener como mximo 26= 64 pginas de 1 kb cada uno.
Paginacin

Ejemplo 02:
La tabla de pgina indica que la pagina 2 tiene asociado en el marco nmero 4, el tamao de
pgina es de 1kb. Cul es la direccin fsica para la direccin virtual (2; 326) dado en el formato
(nmero de pgina, desplazamiento)
Solucin:
Segmentacin
La segmentacin es otra forma de dividir el programa. Un programa y sus datos asociados se
dividen en un conjunto de segmentos de diferentes tamaos.
La segmentacin elimina la fragmentacin interna. Existe fragmentacin externa, pero en grado
menor.
Dentro del programa cada direccin lgica consta de un numero de segmento y de un
desplazamiento dentro del segmento, el hardware de segmentacin emplea la tabla de segmento
para obtener la direccin fsica.
La direccin fsica es la suma de la direccin del comienzo del segmento mas el desplazamiento,
es decir:
DF= base + d
Segmentacin
Con respecto a la direccin lgica(numero de segmento, desplazamiento) se expresa en potencia 2.
Supongamos:
Tamao de direccin lgica:2m bits
Tamao del segmento: 2n bits
Segmentacin
Ejemplo. En un sistema que utiliza gestin de memoria segmentada, se tiene la siguiente tabla de
segmentos:
Nro de base Longitud
segmento
0 500 300
1 1800 600
2 100 320
3 2634 650
4 900 45

A que direcciones fsicas corresponden las siguientes direcciones virtuales?(0, 128)(3, 558)(0, 950)
Segmentacin
A que direcciones fsicas corresponden las siguientes direcciones virtuales?(0, 128)(3, 558)(0, 950)
SOLUCION: Nro de base Longitud
segmento
Una referencia al segmento 0 =>(0, 128) se transforma en:
0 500 300
DF= base del segmento + desplazamiento=500 +128=628
1 1800 600
Una referencia al segmento 3 =>(3, 558) se transforma en: 2 100 320
DF= base del segmento + desplazamiento=2634 +558=3229 3 2634 650

Una referencia al segmento 0 =>(0, 950) ocasiona un error de 4 900 45

Direccionamiento ya que el segmento 0 tiene una longitud de 300.


Actividad por desarrollar
1. sea un sistema por particiones mltiples con una sola cola de trabajo, tiene tres particiones
de 128 kb, 256 kb, y 512 kb. Como queda la cola de trabajo suponiendo que llega tres trabajos
500 kb, 120 kb, 400 kb, 110 kb.
2. Explique la diferencia entre fragmentacin interna y externa.
3. Considere un espacio de direccionamiento lgico de 8 paginas de 1024 palabras que se
vuelcan en una memoria fsica de 32 celdas.
A) Cuantos bits hay en la direccin lgica?
B) Cuantos bits hay en la direccin fsica ?

You might also like