La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

Presentaciones similares


Presentación del tema: "1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)"— Transcripción de la presentación:

1 1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

2 2 Índice: 1.Sistemas Monoprogramados 2.Sistemas Multiprogramados con Particiones Fijas 3.Sistemas Multiprogramados con Particiones Variables 2 Tema 10: Administración de la Memoria

3 3 Índice: 1.Sistemas Monoprogramados 2.Sistemas Multiprogramados con Particiones Fijas 3.Sistemas Multiprogramados con Particiones Variables 3 Tema 10: Administración de la Memoria

4 4 1. Sistemas Monoprogramados Tema 10: Administración de la Memoria  Importante: sólo trataremos la asignación de memoria a procesos  Gestión de memoria interna de los procesos: mismos métodos que en particiones variables  Sistemas monoprogramados: memoria dividida en:  Memoria del sistema  Memoria del proceso 00…0 FF…F Proceso SO (RAM) 00…0 Proceso SO (RAM) FF…F 00…0 FF…F Proceso SO (ROM) Vars. Sistema

5 5 1. Sistemas Monoprogramados Tema 10: Administración de la Memoria  Problemas a resolver: 1.Gestión de la memoria  ¿Qué direcciones están libres u ocupadas? 2.Protección  Proteger al Sistema Operativo frente al proceso

6 6 1. Sistemas Monoprogramados Tema 10: Administración de la Memoria  Problemas a resolver: 1.Gestión de la memoria  ¿Qué direcciones están libres u ocupadas? 2.Protección  Proteger al Sistema Operativo frente al proceso

7 7 1.1 Gestión de la memoria Tema 10: Administración de la Memoria  Trivial: toda la memoria no ocupada por SO está libre para el proceso  Ante un proceso: ¿Cabe?  Sí: se carga y se ejecuta  No: se rechaza  Posibilidades para programas más grandes que memoria disponible:  Solapamientos  Ejecución en cadena

8 8 1.1 Gestión de la memoria Tema 10: Administración de la Memoria Solapamientos  Programas divididos en:  Parte fija (stub), siempre cargada en memoria  Fragmentos (overlays o solapamientos) que se cargan cuando son necesarios Programa Stub Solap. 1 Solap. 2 Solap. 3 Solap. 4 Solap. 1 Stub 3 Solap. 3.1 Solap. 3.2

9 9 1.1 Gestión de la memoria Tema 10: Administración de la Memoria Ejecución en cadena  Programas se dividen en programas independientes  Cada programa cuando termina ejecuta el siguiente Programa Programa 1 Programa 2 Programa 3 Programa 4 Programa 5 Programa 6

10 10 1. Sistemas Monoprogramados Tema 10: Administración de la Memoria  Problemas a resolver: 1.Gestión de la memoria  ¿Qué direcciones están libres u ocupadas? 2.Protección  Proteger al Sistema Operativo frente al proceso Bits de protección Registros valla

11 11 1.2 Protección Tema 10: Administración de la Memoria Bits de protección  En una memoria separada:  Un bit asociado a cada palabra de memoria principal  Si bit de protección = 1 → posición pertenece a SO  Si bit de protección = 0 → posición pertenece a proceso  Circuitería externa que por cada acceso:  Comprueba si desde posición de proceso se accede a SO  En dicho caso: genera excepción (fallo de protección)  Posible mejora: permitir lecturas o ejecución 00…0 FF…F 01000… … proc. SO proc.

12 12 1.2 Protección Tema 10: Administración de la Memoria Bits de Protección  Ventajas:  Gran flexibilidad  Inconvenientes:  Coste de la memoria y de la circuitería externa

13 13 1.2 Protección Tema 10: Administración de la Memoria Registros valla  Aplicable si memoria dividida en sólo dos áreas (una para SO y otra para proceso)  Hardware:  Registro que contiene dirección límite de SO  Circuitería que compara respecto a registro valla las direcciones de las que se leen las direcciones con las direcciones a las que acceden  Si instrucción leída en el lado de proceso accede a lado de SO del registro valla → excepción 00…0 FF…F Proceso SO 1F00

14 14 1.2 Protección Tema 10: Administración de la Memoria Registros Valla  Ventajas:  Hardware mucho más simple  Inconvenientes:  Menor flexibilidad: sólo dos áreas de memoria

15 15 Índice: 1.Sistemas Monoprogramados 2.Sistemas Multiprogramados con Particiones Fijas 3.Sistemas Multiprogramados con Particiones Variables 15 Tema 10: Administración de la Memoria

16 16 2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria  Memoria dividida en particiones cuyo tamaño se establece:  Al compilar el sistema operativo  Al instalar el sistema operativo  Al arrancar el sistema operativo  A cada proceso se le asigna una partición 00…0 FF…F Proceso 1 SO Proceso 2 Proceso 3

17 17 Tema 10: Administración de la Memoria 2. Sist. Multiprog. con Particiones Fijas  Problemas a resolver: 1.Gestión de la memoria  ¿Qué particiones hay? ¿dónde empiezan y acaban?  ¿Cuáles están libres?  ¿Por qué procesos están ocupadas las que no están libres? 2.Criterio de asignación de procesos a particiones 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí  Problemas a resolver: 1.Gestión de la memoria  ¿Qué direcciones están libres u ocupadas? 2.Protección  Proteger al Sistema Operativo frente al proceso

18 18 Tema 10: Administración de la Memoria 2. Sist. Multiprog. con Particiones Fijas  Problemas a resolver: 1.Gestión de la memoria  ¿Qué particiones hay? ¿dónde empiezan y acaban?  ¿Cuáles están libres?  ¿Por qué procesos están ocupadas las que no están libres? 2.Criterio de asignación de procesos a particiones 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

19 19 Tema 10: Administración de la Memoria 2.1 Gestión de la memoria  Tabla de particiones 00…0 Proceso 1 SO Proceso 2 Proceso 3 FF…F iniciotamañoestadopid T0T0 ocupada- T1T1 pid 1 T2T2 libre- T3T3 ocupadapid 2 T4T4 ocupadapid 3 0 1 2 3 4 0 1 2 3 4

20 20 Tema 10: Administración de la Memoria 2. Sist. Multiprog. con Particiones Fijas  Problemas a resolver: 1.Gestión de la memoria  ¿Qué particiones hay? ¿dónde empiezan y acaban?  ¿Cuáles están libres?  ¿Por qué procesos están ocupadas las que no están libres? 2.Criterio de asignación de procesos a particiones 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

21 21 Tema 10: Administración de la Memoria 2.2 Criterios de asignación  Tipos de criterios:  Estáticos: cada partición tiene su cola de procesos en espera  Dinámicos: una única cola para todas las particiones 00…0 P1 SO P2 P3 FF…F P4P5 P6

22 22 Tema 10: Administración de la Memoria 2.2 Criterios de asignación  Criterios:  Mejor ajuste estático  Primer ajuste  Mejor ajuste dinámico  Mayor que quepa, con aplazamiento limitado  Subparticiones

23 23 Tema 10: Administración de la Memoria 2.2 Criterios de asignación Mejor ajuste estático  Se adjudica cada proceso a la menor partición en que quepa  Objetivo: minimizar espacio desperdiciado  Ventajas:  Se garantiza que siempre que se ejecuta un proceso, desperdicio es mínimo  Inconvenientes:  Pueden haber procesos esperando para ejecutarse mientras hay particiones libres en las que podrían hacerlo

24 24 Tema 10: Administración de la Memoria 2.2 Criterios de asignación Primer ajuste  Cuando una partición queda libre → se le asigna primer proceso que quepa  Objetivo: inmediatez en la selección  Ventajas:  Rapidez  Inconvenientes:  Posible mal aprovechamiento del espacio  Puede perjudicar a procesos grandes

25 25 Tema 10: Administración de la Memoria 2.2 Criterios de asignación Mejor ajuste dinámico  Cuando una partición queda libre → se le asigna proceso más grande que quepa  Objetivo: minimizar espacio desperdiciado, pero evitando obligar a esperar a los procesos si hay particiones libres útiles  Ventajas:  Buen aprovechamiento de la memoria  Evita esperas a los procesos  Inconvenientes:  Hay que recorrer la lista completa  Puede perjudicar a procesos que más difieren del tamaño de las particiones

26 26 Tema 10: Administración de la Memoria 2.2 Criterios de asignación Mayor que quepa con aplazamiento limitado  Mismo método que anterior, pero…  Se cuenta el nº de veces que un proceso se ve perjudicado  Cuando se llega a un nº de veces preestablecido: primera partición en la que quepa será para él.  Objetivo: paliar principal inconveniente método anterior  Ventajas:  Mismas que método anterior  Inconvenientes:  Hay que recorrer la lista completa

27 27 Tema 10: Administración de la Memoria 2.2 Criterios de asignación Subparticiones  Idea a aplicar junto anteriores criterios  Tipo especial de particiones: particiones madre  Una partición madre se puede dividir en múltiples varias particiones menores. SO P4 P1 P2 P3 P1 P2 P3

28 28 Tema 10: Administración de la Memoria 2. Sist. Multiprog. con Particiones Fijas  Problemas a resolver: 1.Gestión de la memoria  ¿Qué particiones hay? ¿dónde empiezan y acaban?  ¿Cuáles están libres?  ¿Por qué procesos están ocupadas las que no están libres? 2.Criterio de asignación de procesos a particiones 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

29 29 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria  Cuando montador de enlaces genera un ejecutable, no se conoce a priori en qué dirección se va cargar  Problema: programa contiene referencias a memoria: … variable=0; rutina(); … MOVE F708H, 0 CALL E000H …  Si proceso no se carga en direcciones previstas: ¡catástrofe!

30 30 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria  Métodos:  Montaje absoluto  Carga con reubicación  Reubicación dinámica  Reubicación dinámica parcial  Espacios separados de memoria

31 31 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Montaje absoluto  Montador de enlace genera un ejecutable imagen de memoria  Es necesario conocer de antemano la dirección en que se cargará el ejecutable SO 00…0 FF…F 7000 … MOVE 7800H, 0 CALL 8000H … 7000 … MOVE 7800H, 0 CALL 8000H …  Inconvenientes:  Sólo es viable con criterios estáticos en que se conozca la dirección de carga al crear el ejecutable

32 32 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Carga con reubicación  Montador de enlace genera un ejecutable en el que:  Las referencias a memoria suponen carga en dirección 0  Hay información adicional para el cargador indicando cuáles son dichas referencias.  Durante la carga el cargador suma a dichas referencias la dirección inicial. SO 00…0 FF…F 7000 … MOVE 0800H, 0 CALL 1000H … 0000 … MOVE 7800H, 0 CALL 8000H …  Inconvenientes:  Una vez cargado el proceso no se puede reubicar en otra partición

33 33 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Reubicación Dinámica  Montador de enlace genera un ejecutable con todas las direcciones referidas a partir de 0  El hardware tiene:  Un registro en el que se escribe la dirección base de la partición del proceso activo  Un sumador que suma dicha base a las direcciones generadas por el programa SO 00…0 FF…F 7000 … MOVE 0800H, 0 CALL 1000H … 0000 … MOVE 0800H, 0 CALL 1000H … A000 Base 7000 A000  Dos tipos de direcciones:  Lógicas (las que el proceso ve)  Físicas (las que salen al bus)

34 34 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Reubicación Dinámica Parcial  Inconveniente reubicación dinámica: ¿dónde está el Sistema Operativo?  Reubicación dinámica parcial:  Añade un registro límite al hardware SO 00…0 FF…F BASE 0000 LIMITE BASE TAM LÍMITE SO 00…0 LÍMITE LÍMITE+1

35 35 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Reubicación Dinámica Parcial SO 00…0 LIMITE BASE SO 00…0 LÍMITE LÍMITE+1 DIR. LÓGICA LIMITE ¿D.L. > LIMITE? DIR. FISICA= D.L. – LIMITE + BASE MEMORIA NO SI DIR FISICA= D.L.

36 36 Tema 10: Administración de la Memoria 2.3 Colocación de los procesos en memoria Espacios de direcciones separados  Dos tipos de direcciones, diferenciadas por bit de mayor peso de dirección:  0: Dirección de sistema operativo  1: Dirección de proceso  El hardware tiene:  Un registro con la dirección base del proceso activo  Una circuitería sumadora condicional: 1001101010…1 Dirección Lógica: BASE X + MEMORIA

37 37 Tema 10: Administración de la Memoria 2. Sist. Multiprog. con Particiones Fijas  Problemas a resolver: 1.Gestión de la memoria  ¿Qué particiones hay? ¿dónde empiezan y acaban?  ¿Cuáles están libres?  ¿Por qué procesos están ocupadas las que no están libres? 2.Criterio de asignación de procesos a particiones 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

38 38 Tema 10: Administración de la Memoria 2.4 Protección  Es necesario proteger:  Sistema operativo frente a procesos  Procesos entre sí  Métodos:  Ampliación bits de protección  Ampliación registros valla

39 39 Tema 10: Administración de la Memoria 2.4 Protección Ampliación bits de protección  Ejemplo: IBM/360  Cada bloque de memoria de 2K tiene asociado un registro de protección de 4 bits  En CPU se tiene el registro de autorización actual de 4 bits (en el PSW)  Sólo sistema operativo puede modificar registro de autorización  Si en un acceso el registro de autorización no coincide con registro de protección → excepción  Si en registro de autorización valor 0000: se puede acceder a cualquier dirección de memoria

40 40 Tema 10: Administración de la Memoria 2.4 Protección Ampliación bits de protección  Aplicación: 00…0 FF…F … 0000 0001 0010 … Reg. Autorización: SO P1 P2 00000001

41 41 Tema 10: Administración de la Memoria 2.4 Protección Ampliación de los registros valla  En lugar de un registro límite, dos:  Límite inferior de la partición  Límite superior de la partición DIRECCIÓN LÍMITE INFERIOR ¿DIR. < LIMITE? MEMORIA NO SI LÍMITE SUPERIOR ¿DIR. > LIMITE? NO SI ERROR

42 42 Tema 10: Administración de la Memoria 2.4 Protección Ampliación de los registros valla  Si se usa reubicación dinámica:  Añadir al mismo dispositivo de reubicación un registro con el tamaño de la partición

43 43 Índice: 1.Sistemas Monoprogramados 2.Sistemas Multiprogramados con Particiones Fijas 3.Sistemas Multiprogramados con Particiones Variables 43 Tema 10: Administración de la Memoria

44 44 Tema 10: Administración de la Memoria 3. Sist. Multiprog. con Particiones Variables  La memoria se particiona y asigna en trozos del tamaño requerido por los procesos  Problema: ¡fragmentación! 00…0 FF…F SO P1 P2 P3  Compactación:  Requiere mecanismo de reubicación dinámica  Costosa en tiempo

45 45 Tema 10: Administración de la Memoria 3. Sist. Multiprog. con Particiones Variables  Problemas a resolver: 1.Gestión de la memoria  ¿Qué posiciones están libres? ¿y cuáles ocupadas?  Las ocupadas, ¿a qué procesos están asignadas? 2.Criterio de asignación de memoria a procesos 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

46 46 Tema 10: Administración de la Memoria 3. Sist. Multiprog. con Particiones Variables  Problemas a resolver: 1.Gestión de la memoria  ¿Qué posiciones están libres? ¿y cuáles ocupadas?  Las ocupadas, ¿a qué procesos están asignadas? 2.Criterio de asignación de memoria a procesos 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

47 47 Tema 10: Administración de la Memoria 3.1 Gestión de la memoria  Gestión más complicada que con particiones fijas  Memoria se gestiona en unidades de asignación (ticks de memoria)  16, 32, 64 bytes…  Métodos:  Mapas de bits  Listas de control

48 48 Tema 10: Administración de la Memoria 3.1 Gestión de la memoria Mapas de bits  A cada tick del espacio a gestionar, se asocia un bit:  1 = tick ocupado  0 = tick libre 00…0 FF…F SO P3 P1 111….100…011…100….0

49 49 Tema 10: Administración de la Memoria 3.1 Gestión de la memoria Listas de control  Por cada bloque libre u ocupado, un nodo con:  Dirección inicial del bloque  Tamaño (en ticks, normalmente)  Estado (libre u ocupado)  Proceso al que está asignado  Lista ordenada por dirección 00…0 FF…F SO P2 dirección: tamaño: T1 estado: LIBRE proceso: - dirección: tamaño: T2 estado: OCUPADO proceso: P2 dirección: tamaño: T3 estado: LIBRE proceso: - dirección: tamaño: T2 estado: LIBRE proceso: - dirección: tamaño: T1+T2+T3 estado: LIBRE proceso: -

50 50 Tema 10: Administración de la Memoria 3.1 Gestión de la memoria Listas de control vs. Mapas de bits  Listas de control:  Más fácil buscar un hueco de un tamaño dado  Permite gestionar más información (proceso asignado)  Más complicado liberar un bloque (fusión)  Eficiencia espacio y tiempo: depende de fragmentación  Mapas de bits:  Algoritmos complicados  Eficiencia en espacio ocupado: constante  Eficiencia en tiempo: depende de fragmentación  Sólo almacena información sobre el estado de cada tick.

51 51 Tema 10: Administración de la Memoria 3. Sist. Multiprog. con Particiones Variables  Problemas a resolver: 1.Gestión de la memoria  ¿Qué posiciones están libres? ¿y cuáles ocupadas?  Las ocupadas, ¿a qué procesos están asignadas? 2.Criterio de asignación de memoria a procesos 3.Colocación de los procesos en memoria  Procesos capaces de ejecutarse en cualquier partición 4.Protección  Proteger a SO frente a procesos  Proteger a procesos entre sí

52 52 Tema 10: Administración de la Memoria 3.2 Criterios de asignación  Deseable:  Eficiencia  Minimizar la fragmentación  Criterios:  Primer ajuste  Siguiente ajuste  Mejor ajuste  Peor ajuste  Ajuste rápido Método de los compañeros

53 53 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Primer ajuste  Se asigna primer bloque libre con el que se pueda satisfacer la petición  Ventajas:  Eficiente: no es necesario explorar mapa/lista completa  Inconvenientes:  No tiene en cuenta la fragmentación producida  Eficiencia disminuye con el tiempo Posible solución: añadir un enlace entre bloques libres

54 54 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Siguiente ajuste  Se asigna primer bloque libre tras el último asignado, con el que se pueda satisfacer la petición.  Cuando se llega al final de mapa/lista, se sigue por principio  Ventajas:  Eficiente: no es necesario explorar mapa/lista completa  Ya no se degrada con el tiempo  Inconvenientes:  Sigue sin tener en cuenta la fragmentación

55 55 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Mejor ajuste  Se asigna el bloque más pequeño con el que se pueda satisfacer la petición  Si hubiese algún bloque del mismo tamaño, sería el elegido.  Inconvenientes:  Hay que procesar toda la lista/mapa Posible solución: un enlace adicional ordenado por tamaño  ¿Realmente funciona? ¡Tiende a dejar fragmentos muy pequeños!

56 56 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Peor ajuste  Se asigna el mayor bloque que haya (si se puede satisfacer la petición)  Objetivo: dejar residuos lo más grandes (aprovechables) posible.  Inconvenientes:  Hay que procesar toda la lista/mapa (misma posible solución)  Algunas secuencias de peticiones que se pueden satisfacer por mejor ajuste, no se pueden satisfacer por peor ajuste

57 57 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Ajuste rápido  Varias listas de bloques libres según rango de tamaño  Asignación:  se busca en lista correspondiente por tamaño de petición  Si no se encuentra bloque para sastifacer petición en esa lista: se recurre a la(s) siguiente(s) 0 < t < 10 10 ≤ t < 20 … t > 200  Liberación:  ¿Y si hay que fusionar? OCUPADO

58 58 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Método de los compañeros  Los bloques son de tamaño potencia de 2  Asignación: igual que método anterior, pero se asignan bloques completos 1 2k2k … 2 k+1 …

59 59 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Método de los compañeros  Liberación:  Cada bloque sólo se puede fusionar con su compañero  bloques compañeros de tamaño 2 K : sus direcciones tiene la siguiente estructura:  Para encontrar la dirección del compañero: se hace o- exclusivo con:  Se busca compañero en lista correspondiente, y se fusiona, repitiéndose el proceso para el posible compañero del bloque obtenido. 0…00 k-1 0 k x…x n k+1 0 0…001x…x 0…00 k-1 1 k 0…0 n k+1 0

60 60 Tema 10: Administración de la Memoria 3.2 Criterios de asignación Método de los compañeros  Inconveniente:  ¡Desperdicio de memoria de hasta casi el 50%!

61 61


Descargar ppt "1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)"

Presentaciones similares


Anuncios Google