administraciÓn de la memoria sistemas operativos héctor e. medellín anaya

41
ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Upload: rosario-salinas-vidal

Post on 02-Feb-2016

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

ADMINISTRACIÓN DE LA MEMORIA

Sistemas Operativos

Héctor E. Medellín Anaya

Page 2: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Contenido

Administración de la memoria sin intercambio ni paginación

Intercambio Memoria virtual Algoritmos de sustitución de páginas Aspectos de diseño para sistemas de paginación Panorama de administración de memoria en MINIX

Page 3: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Introducción

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 están en uso y cuáles no lo están, asignar memoria a los procesos cuando la necesiten y retirárselas cuando terminen, y administrar el intercambio entre la memoria central y el disco cuando la memoria central no baste para contener todos los procesos.

Page 4: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Direcciones físicas y lógicas

Las direcciones lógicas o virtuales son las generadas por la CPU.

Las direcciones físicas son las que ve la unidad de memoria.

Page 5: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Carga dinámica

En la carga dinámica una rutina no es cargada hasta que es llamada.

En enlace dinámico en lugar de posponer la carga hesta el tiempo de ejecusión, el enlace es el que se pospone.

Page 6: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Monoprogramación sin intercambio ni paginación

0XFFF...

Programadel usuario

Sistema operativoen RAM

en ROM

Manejadores dedispositivos em ROM

Sistema operativo

Programadel usuario

Programadel usuario

Sistema operativoen RAM

0

(a) (b) (c)

La memoria se divide entre el sistema operativo y un solo proceso de usuario.

Page 7: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Multiprogramación y uso de la memoria

Utilización de la unidad central de procesamiento como función del número de procesos que hay en la memoria.

Utilización de la CPU(en porcentaje)

100

80

60

40

20

0 1 2 3 4 5 6 7 8 9 10

Espera de E/S del 20%

Espera de E/S del 50%

Espera de E/S del 80%

Grado de multiprogramación

Page 8: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Análisis de rendimiento

TrabajoTiempode llegada

1

1 410:00

2

3

1

15

Minutos dela CPU quese necesitan

2

3

4 2

10:10

10:15

10:20

CPU ociosa

CPU ocupada

CPU/proceso

2 3 4

.80 .64 .51 .41

.20 .36 .49 .59

.20 .18 .16 .15

2

3

4

010 20 22 27.6 28.2 31.7

2.0 .9

.9

.8

.8

.8

.3

.3

.3

.3

.9

.9

.9

.1

.1 .7

Termina el trabajo 1

Inicia el trabajo 2Trabajo

Tiempo (relativo a la llegada del trabajo 1)

(b)

(c)

(a)

Page 9: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Particiones fijasLista de espera deentrada multiples

Partición 4

100 KSistema

(a)

Partición 3

Partición 2

Partición 1

operativo

200 K

400 K

700 K

0

Partición 4

Sistema

(b)

Partición 3

Partición 2

Partición 1

operativo

Lista de espera deentrada única

Page 10: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Intercambio: Multiprogramación con particiones variables

Sistema

(a)

A

operativoSistema

(b)

A

operativo

B

Sistema

(c)

A

operativo

B

C

Sistema

(d)

operativo

B

C

Sistema

(e)

operativo

B

C

D

Sistema

(f)

operativo

C

D

Sistema

(g)

operativo

E

C

D

Tiempo

Page 11: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Sistema

(a)

A

operativo

B

Espacio para el crecimiento

Realmente en uso

Espacio para el crecimiento

Realmente en uso

Sistema

(b)

Programa A

operativo

Programa B

Datos B

Pila B

Pila A

Datos A

Espacio para el crecimiento

Espacio para el crecimiento

Asignación de espacio

Page 12: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Mapas de bits

(a)

A B C D E

24168

11111000

111111

11111000

11

11 111100

0P 5 5H 3 8P 6

14P 4 18H 4 20P 5

26P 3 29H 3 X

Cavidad Comienza Longituden 26

Proceso

(c)

(b)

Page 13: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Administración con listas enlazadas

Primer ajuste: el administrador ratrea la lista hasta hallar una cavidad que sea lo suficientemente grande.

Siguiente ajuste: igual que el primer ajuste pero empezando en donde se quedó la vez anterior.

El que mejor ajusta: busca en toda la lista hasta encontrar la cavidad que ajusta mejor.

El que peor ajusta: toma siempre la cavidad más grande disponible.

Page 14: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

El sistema compañero

Inicialmente

Retorno A

Solicitud 70

CavidadesMemoria

Solicitud 35

Solicitud 80

Solicitud 60

Retorno B

Retorno D

Retorno C

128k 256k 384k 512k 640k 768k 896k 1M

A

A

A

B

B

B

B

C

C

C

C

C

D

D

64

64

64

64

64

64

128

128

128

128

128

128

128

128

256

256

256

512

512

512

512

512

512

512

1024

1

3

3

3

4

4

4

3

1

Page 15: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Memoria virtual

virtuales a la MMULa CPU envia direcciones

Tarjeta de CPU

CPU

MMU

La MMU envia direccionesfísicas a la memoria

MemoriaContolador

de disco

Page 16: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Paginación

dirección virtualEspacio de Direcciones de

la memoria física

2

1

6

0

4

3

X

X

X

5

X

7

X

X

X

X

0-4K4K-8K

8K-12K12K-16K16K-20K20K-24K24K-28K28K-32K32K-36K36K-40K40K-44K44K-48K48K-52K52K-56K56K-60K60K-64K

Página virtual

0-4K4K-8K8K-12K12K-16K16K-20K20K-24K24K-28K

28K-32K

Cuadro de página

Page 17: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

0123456789

1011121314

010

001

110

000

100

011

000

000

000

101

15

000

111

000

000

000

000

1

1

1

1

1

0

0

0

1

1

0

1

0

0

0

0

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

110

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Tabla depáginas

Valor de compensación

Página virtual = 2Bit presente/

ausente

Dirección virtualentrante (8196)

Dirección físicasaliente (24580)

Operación interna de la MMU

Page 18: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Algoritmos de sustitución de páginas

Sustitución de páginas óptima

Se sustituye aquella página que se vaya a referenciar dentro del tiempo más largo posible.

Sustitución de página no usada recientemente

Se mantiene dos bits R y M que indican si una página fue referenciada (R) y/o modificada (M). Se clasifican la páginas en cuatro categorías 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 página elegida al azar de la clase no vacía con la numeración inferior.

Page 19: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Sustitución de páginas donde la primera que entra es la primera que sale o FIFO

Se usa una cola ordenada en donde las más antigua esta a la cabeza y la de atrás es la más reciente. Se pueden examinar los bits R y M para eliminar la página más antigua que no haya sido modificada y referenciada primero. El algoritmo continua buscando las más antiguas de clase 1,2 y 3.

El FIFO de segunda oportunidad verifica el bit R, si es 1, pone la página en la cola con el bit R a cero y continua la búsqueda.

Sustitución de páginas

Page 20: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Anomalía de Belady

Página más reciente

Todos los cuadros de página están vacios inicialmente

0 10

2

01

3

12

0

23

1

30

4

01

4

01

4

01

2

14

3

42

3

42

Página más antigua9 fallas de páginaP P P P P P P P P

Página más reciente 0 10

2

0

132

3

0

23

0

24

1

30

2

41

3

02

4

13

0

23

1

3

Página más antigua10 fallas de páginaP P P P P P P P P

0 1 1 1 2 3 4 0 1 2

P

(a)

(b)

Page 21: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Página

0

00

1

0

01

0

01

0

00 0 0 0

(a) (b)

0 1 32

01

32

Página

0

01

0

0

01

0

11

0

10 0 0 0

0 1 32

01

32

(c)

Página

0

00

0

0

00

0

01

0

11 1 0 1

0 1 32

01

32

(d)

Página

1

01

0

1

000

0

0

01 1 0 0

0 1 32

01

32

(e)

Página

1

01

0

1

00

0

00

0

01 1 0 1

0 1 32

01

32

Página

1

01

0

0

00

0

10

0

11 0 0 1

(f) (g)

0 1 32

01

32

Página

0

00

1

0

01

0

11

0

10 0 0 1

0 1 32

01

32

(h)

Página

1

00

1

1

01

1

10

0

00 0 0 0

0 1 32

01

32

(i)

Página

1

00

1

1

00

0

00

0

01 1 0 1

0 1 32

01

32

(i)

Página

1

00

1

1

00

1

00

0

01 1 0 0

0 1 32

01

32

1

Sustitución de páginas usadas menos recientemente (LRU)

Page 22: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Se puede simular LRU mediante un algoritmo llamado algoritmo no usado frecuentemente o NFU. En cada interrupción de reloj, el sistema operativo rastrea todas las páginas que están en a memoria. Para cada página, el bit R, se suma a un contador. Cuando ocurre una falla de página, se elige la página con el contador más pequeño para su sustitución.

Se puede optar por el mecanismo de la figura siguiente, en esta, los bits se agregan después de desplazar el contador un bit a la derecha, a esto se le llama envejecimiento.

Simulación de la página usada menos recientemente en software

Page 23: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Bits R de la

0 1 0 1

(a)

0

página 0-5,pulso de reloj 0

11

10000000

1 00000000

2 10000000

3 00000000

4 10000000

5 10000000

Bits R de la

01 0 1

(b)

página 0-5,pulso de reloj 1

01

11000000

10000000

01000000

00000000

11000000

01000000

Bits R de la

01 01

(c)

página 0-5,pulso de reloj 2

11

11100000

11000000

00100000

10000000

01100000

10100000

Bits R de la

0 0 0 1

(d)

página 0-5,pulso de reloj 3

01

11110000

01100000

00010000

01000000

10110000

01010000

Bits R de la

0 1 0 0

(e)

página 0-5,pulso de reloj 4

01

01111000

10110000

10001000

00100000

01011000

00101000

Página

El algoritmo de envejecimiento simula LRU en software. Se muestran seis páginas para cinco pulsos de reloj. Los cinco pulsos de reloj se representan por los incisos de (a) a (e).

Page 24: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Sustitución de páginas

(a)(b) (c)

Edad

A0 10A1 7A2 5A3 4A4 6A5 3B0 9B1 4B2 6B3 2B4 5B5 6B6 12C0 3C1 5C2 6

A0A1A2A3A4A6B0B1B2B3B4B5B6C0C1C2

A0A1A2A3A4A5B0B1B2A6B4B5B6C0C1C2

Sustitución de páginas local contra global. (a) Configuración original. (b) Sustitución de páginas local. (c) Sustitución de páginas global.

Page 25: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Fallas de página

A

B

Número de cuadros de página asignados

Fallas depáginas/seg.

Tasa de fallas de página como función del número de cuadros de página asignados.

Page 26: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Continuación

MOVE.L 6(A1),2(A0)

MOVE Código de operación

Primer oprerando

Segundo operando

1000

1002

1004

6

2

16 bits

Instrucción que puede causar una falla de página.

Page 27: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Nivel del A.M. en MINIX

InicProceso

del usuario...

Espacio del usuario

Procesodel usuario

Procesodel usuario

Adiminstradorde la memoria

Sistemade archivo

Tarea Tarea Tarea Tareadel disco tty del reloj del sistema

...

Manejo de los procesos

Kernel(todas las tareasenlazadas en unprograma objeto)

El administrador de la memoria se ejecuta fuera del kernel, en el espacio del usuario.

Page 28: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Esquema de la memoria

La memoria se asigna mediante dos mecanismos, cuando un proceso se ramifica y mediante la llamada a exec.

640K

0MINIX

A

B

(a)

MINIX

A

B

(b)

MINIX

A

B

(c)

Proceso hijo deA

C

Page 29: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Esquema de la memoria interna de un solo proceso

Pila

Texto

Datos

El segmento de pila crece hacia abajo

El segmento de datos crece hacia arriba(o hacia abajo) cuando se hacen llamadas a BRK.

Total

Page 30: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Manejo de mensajes

Las llamadas siguientes están relacionadas con la asignación y desasignación de memoria: fork, exit, wait, brk, y exec.

Las siguientes pueden afectar el contenido de la memoria: signal, kill, alarm y pause.

Las cinco llamadas a get/set no tiene nada que ver con la administración de la memoria en absoluto.

Page 31: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Estructuras de datos y algoritmos que administran la memoria

El administrador de la memoria tiene dos estructuras de datos principales: la tabla de procesos y la tabla de cavidades.

La ranura k de la tabla de procesos se refiere al mismo proceso que la ranura k de la tabla del sistema de archivos y del kernel. Cuando se crea o se destruye un proceso, las tres partes actualizan sus tablas para reflejar la nueva situación, con el fin de mantenerlas sincronizadas.

La tabla de procesos del administrador de memoria se llama mproc. El campo más importante es el arreglo mp_seg, el cual tiene tres captaciones, para los segmentos de texto, datos y pila, respectivamente. Cada captación es una estructura que contiene la dirección virtual, la dirección física y la longitud del segmento.

Page 32: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Asignación de memoria

(a) Un proceso en la memoria. (b) Su representación en la memoria para un espacio I y D no separado. (c) Su representación en la memoria para un espacio separado para I y D.

Pila

Texto

Datos

210K (0 X 34800)

208K (0 X 34000)

207K (0 X 33C00)

203K (0 X 32C00)

200K (0 X 32000)

Dirección (Hex)0

0

00x3200

0x3200

0x3400

0x1C0

0x800x200

Virtual Física Longitud

Texto

Datos

Pila

(a)

(b)

0

0

0xC00x3200

0x32C0

0x3400

0x100

0x800x200

Virtual Física Longitud

Texto

Datos

Pila

(c)

Page 33: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Las llamadas al sistema fork, exit y wait

La creación de un proceso se efectúa por fork, que se ejecuta como una serie de pasos, como se muestra

1. Verificar si la tabla de procesos está repleta.

2. Intentar asignar memoria al proceso hijo.

3. Copiar la imagen del proceso padre en la memoria del proceso hijo.

4. Hallar una ranura del proceso libre y copiar la ranura del proceso padre en él.

5. Meter el mapa de memoria del derivado en la tabla del proceso.

6. Elegir un pid para el proceso hijo.

7. Indicar al kernel y al sistema de archivo acerca del proceso hijo.

8. Informar del mapa de la memoria del proceso hijo al kernel.

9. Enviar mensajes de contestación al proceso padre y al proceso hijo.

Page 34: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Terminación de un proceso

Un proceso termina por completo cuando ocurren dos eventos: (1) El proceso mismo ha salido (o ha sido eliminado por una señal) 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 todavía no ha realizado una llamada a wait por él, entra en un tipo de animación suspendida, que algunas veces se conoce como estado zombie. Se evita que éste se programe y tiene desactivado su cronómetro 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.

Page 35: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

continuación

INITEspera

Espera

Salida

Zombie

6 7 8

12

52 53

INIT

6 7 8 52 53

(a) (b)

(a) Situación en la que el proceso 12 está a punto de salir. (b) situación después de que ha salido.

Page 36: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

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 tamaños 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 captación de la tabla de proceso.

9. Indicar al kernel que ahora el proceso es ejecutable

Page 37: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Ejemplo de llamada a exec

Cuando un usuario teclea

ls -l f.c g.c

al shell, éste hace la llamada

execve("/bin/ls", argv, envp);

Page 38: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

continuación

(a) Los arreglos que se pasan a execv. (b) La pila construida por execv. (c) La pila después de la recolocación hecha por el adm. de la memoria. (d) La pila como figura en main al inicio de la ejecución.

(a)(c)

Arreglo del medio

0

\0 ts a/ rs u

=E MO H

/

\0 c. g

cf

\0

\0 l- \0

ls

.

028024201714

retorno=/usr/ast

Arreglo de argumentos

0g.c.f.c.-lls

\0 ts a/ rs u

=E MO H

/

\0 c. g

cf

\0

\0 l- \0

ls

.

05138

05134513051275124

4038363432302826242220181614121086420

515051485146514451425140513851365134513251305128512651245122512051185116511451125110

\0 ts a/ rs u

=E MO H

/

\0 c. g

cf

\0

\0 l- \0

ls

.

05138

05134513051275124

515051485146514451425140513851365134513251305128512651245122512051185116511451125110

51205110

4retorno

5108510651045102

envpargvargc

(b)

(d)

Page 39: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

La llamada al sistema brk

Los procedimientos de biblioteca brk y sbrk se utilizan para ajustar el límite superior del segmento de datos. El primero toma un tamaño absoluto y llama a brk. El segundo toma un incremento positivo o negativo al tamaño corriente, determina el tamaño del nuevo segmento de datos y después llama a brk.

La variable brksize, siempre contiene el tamaño corriente tal que sbrk pueda obtenerlo. La variable se inicializa a un símbolo generado por el compilador que da el tamaño inicial del texto más datos (I y D no separados) o simplemente datos (I y D separados). El nombre y, de hecho, la existencia real de tal símbolo dependen del compilador.

Page 40: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Manejo de señales

Las señales se pueden generar de dos formas: por medio de una llamada al sistema kill y por medio del kernel. Las señales originadas por el kernel que regularmente se implementan son SIGINT, SIGQUIT y SIGALRM.

El administrador de la memoria procesa todas las señales de la misma forma. Para cada proceso que deba señalarse, se hacen varias verificaciones para ver si la señal es viable. Un proceso puede señalar a otro si tienen el mismo uid y si se iniciaron desde la misma terminal. Además, no pueden señalarse ni los zombies ni los procesos que hayan llamado explícitamente a signal para ignorar la señal.

Page 41: ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Otras llamadas al sistema

El administrador de la memoria también maneja algunas otras llamadas al sistema simple: getpid, getuid, getgid, setuid y setgid. Las tres primeras llamadas simplemente buscan y entregan la información solicitada. getuid produce el uid efectivo y el real. Dependiendo de si se llamó a getuid o a geteuid, uno o el otro se extrae del mensaje y se entrega al usuario. Lo mismo sucede con gid. Estas cinco llamadas son las más simples de minix.