Documentos de Académico
Documentos de Profesional
Documentos de Cultura
So 4
So 4
MEMORIA
Sistemas Operativos
Hctor E. Medelln Anaya
Contenido
Administracin de la memoria sin intercambio ni
paginacin
Intercambio
Memoria virtual
Algoritmos de sustitucin de pginas
Aspectos de diseo para sistemas de paginacin
Panorama de administracin de memoria en MINIX
Introduccin
La ley de Parkinson dice que "los programas se expanden con el
fin de llenar la memoria disponible para contenerlos".
La parte del sistema operativo que se encarga de la memoria se
llama administrador de memoria.
Su labor es llevar el control de qu partes de la memoria estn
en uso y cules no lo estn, asignar memoria a los procesos
cuando la necesiten y retirrselas cuando terminen, y
administrar el intercambio entre la memoria central y el disco
cuando la memoria central no baste para contener todos los
procesos.
Direcciones fsicas y lgicas
Programa
Programa
del usuario Programa
del usuario
del usuario
40
20
0 1 2 3 4 5 6 7 8 9 10
Grado de multiprogramacin
Anlisis de rendimiento
Minutos de
Tiempo la CPU que
Trabajo de llegada se necesitan 1 2 3 4
1 10:00 4 CPU ociosa .80 .64 .51 .41
2 10:10 3 CPU ocupada .20 .36 .49 .59
3 10:15 2 CPU/proceso .20 .18 .16 .15
4 10:20 2
(b)
(a)
Termina el trabajo 1
2.0 .9 .8 .3
1
.9 .8 .3 .9 .1
2
.8 .3 .9
Trabajo 3
Inicia el trabajo 2
.3 .9 .1 .7
4
0
10 15 20 22 27.6 28.2 31.7
Tiempo (relativo a la llegada del trabajo 1)
(c)
Particiones fijas
Lista de espera de
entrada multiples
Particin 4 Particin 4
700 K
Lista de espera de
entrada nica
Particin 3 Particin 3
400 K
Particin 2 Particin 2
200 K
Particin 1 Particin 1
100 K
Sistema Sistema
operativo operativo
0
(a) (b)
Intercambio: Multiprogramacin con
particiones variables
Tiempo
C C C C C
B B B B E
A A A
D D D
Sistema Sistema Sistema Sistema Sistema Sistema Sistema
operativo operativo operativo operativo operativo operativo operativo
Pila B
Espacio para el crecimiento
Espacio para el crecimiento
Datos B
B
Realmente en uso
Programa B
Pila A
Espacio para el crecimiento
Espacio para el crecimiento
Datos A
A
Realmente en uso
Programa A
Sistema Sistema
operativo operativo
(a) (b)
Mapas de bits
A B C D E
8 16 24
(a)
1111 10 00
P 0 5 H 5 3 P 8 6
1111 11 11
11 00 11 11
1111 10 00 P 14 4 H 18 4 P 20 5
(b)
P 26 3 H 29 3 X
Tarjeta de CPU
CPU
Contolador
Memoria
de disco
MMU
Espacio de Direcciones de
direccin virtual
la memoria fsica
0-4K 2 0-4K
4K-8K 1 4K-8K
8K-12K 6 8K-12K
12K-16K 0 12K-16K
16K-20K 4 16K-20K
20K-24K 3 20K-24K
24K-28K X 24K-28K
28K-32K X 28K-32K
32K-36K X
36K-40K 5
40K-44K X Cuadro de pgina
44K-48K 7
48K-52K X
52K-56K X
56K-60K X Pgina virtual
60K-64K X
Operacin interna de la MMU
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 Direccin virtual
entrante (8196)
Pgina virtual = 2
0 010 1 Bit presente/
1 001 1 ausente
2 110 1 110
3 000 1
4 100 1
5 011 1 Valor de compensacin
6 000 0
7 000 0
Tabla de
8 000 0
pginas
9 101 1
10 000 0
11 111 1
12 000 0
13 000 0
14 000 0
15 000 0
Direccin fsica
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 saliente (24580)
Algoritmos de sustitucin de
pginas
Sustitucin de pginas ptima
Se sustituye aquella pgina que se vaya a referenciar dentro del tiempo ms
largo posible.
Sustitucin de pgina no usada recientemente
Se mantiene dos bits R y M que indican si una pgina fue referenciada (R) y/o
modificada (M). Se clasifican la pginas en cuatro categoras de acuerdo:
Clase 0: no referido, no modificado
Clase 1: no referido, modificado
Clase 2: referido, no modificado
Clase 3: referido, modificado
Se retira una pgina elegida al azar de la clase no vaca con la numeracin
inferior.
Sustitucin de pginas
Sustitucin de pginas donde la primera que entra es la
primera que sale o FIFO
Se usa una cola ordenada en donde las ms antigua esta a la
cabeza y la de atrs es la ms reciente. Se pueden examinar
los bits R y M para eliminar la pgina ms antigua que no
haya sido modificada y referenciada primero. El algoritmo
continua buscando las ms antiguas de clase 1,2 y 3.
El FIFO de segunda oportunidad verifica el bit R, si es 1,
pone la pgina en la cola con el bit R a cero y continua la
bsqueda.
Anomala de Belady
Pgina ms reciente 0 1 2 3 0 1 4 4 4 2 3 3
0 1 2 3 0 1 1 1 4 2 2
Pgina ms antigua 0 1 2 3 0 0 0 1 4 4
P P P P P P P P P 9 fallas de pgina
(a)
Pgina ms reciente 0 1 2 3 3 3 4 0 1 2 3 3
0 1 2 2 2 3 4 0 1 2 3
0 1 1 1 2 3 4 0 1 2
Pgina ms antigua 0 0 0 1 2 3 4 0 1
P P P P P P P P P P 10 fallas de pgina
(b)
Sustitucin de pginas usadas menos
recientemente (LRU)
(a)
(b) (c)
Fallas de pgina
Tasa de fallas de pgina como funcin del nmero de cuadros
de pgina asignados.
Fallas de
A
pginas/seg.
MOVE.L 6(A1),2(A0)
16 bits
1000 MOVE Cdigo de operacin
1002 6 Primer oprerando
1004 2
Segundo operando
Nivel del A.M. en MINIX
C
Proceso hijo de
A
B B B
A A A
Pila
Total
Texto
Manejo de mensajes
Un proceso termina por completo cuando ocurren dos eventos: (1) El proceso
mismo ha salido (o ha sido eliminado por una seal) y (2) su proceso padre ha
ejecutado una llamada al sistema wait para saber lo que sucedi. Un proceso
que ha salido o ha sido eliminado, pero cuyo padre todava no ha realizado
una llamada a wait por l, entra en un tipo de animacin suspendida, que
algunas veces se conoce como estado zombie. Se evita que ste se programe y
tiene desactivado su cronmetro de alarma (si estaba activado), pero no se
elimina de la tabla de procesos. Su memoria no se libera, aunque pudiera
haberse hecho. Cuando finalmente el proceso padre realiza una llamada a wait,
se libera la ranura de la tabla de procesos y la memoria, y se informa al
sistema de archivo y al kernel.
continuacin
Espera
INIT
INIT
6 7 8
6 7 8 52 53
Espera
12
Salida
52 53 Zombie
(a) (b)
La llamada al sistema exec
Esta ejecuta su trabajo en una serie de pasos, como se muestra
1. Verificar las autorizaciones (es ejecutable el archivo?)
2. Leer los encabezados para obtener los tamaos del segmento y del total.
3. Capturar los segmentos y el medio del solicitante.
4. Liberar la memoria anterior y asignar la nueva.
5. Copiar la pila en al nueva imagen de la memoria.
6. Copiar los segmentos de texto y datos en la nueva imagen de la memoria.
7. Verificar y manejar los bits setuid, setgid.
8. Fijar la captacin de la tabla de proceso.
9. Indicar al kernel que ahora el proceso es ejecutable
Ejemplo de llamada a exec