La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 10: Administración de la Memoria

Presentaciones similares


Presentación del tema: "Tema 10: Administración de la Memoria"— Transcripción de la presentación:

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

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

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

4 Tema 10: Administración de la Memoria
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 00…0 00…0 Proceso SO (RAM) SO (ROM) Proceso Proceso SO (RAM) Vars. Sistema FF…F FF…F FF…F

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

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

7 Tema 10: Administración de la Memoria
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 Aclarar que tanto los solapamientos como la ejecución en cadena no son técnicas del Sistema Operativo, sino de los propios procesos, implementados en mayor o menor medida por el programador Posibilidades para programas más grandes que memoria disponible: Solapamientos Ejecución en cadena

8 Tema 10: Administración de la Memoria
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 El stub contiene el punto de entrada y rutinas y datos globales Cada solapamiento puede contener rutinas y datos que pertenezcan a un módulo específico del programa Espacio necesario para ejecutar programa: stub + mayor de los solapamientos Un solapamiento puede estar a su vez solapado (solapamientos en árbol) reduciendo aún mas el espacio necesario para ejecutar el programa Algunos compiladores (ej: Borland C++ 3.0) gestionaban la carga y descarga de solapamientos. El programador sólo indicaba qué pertenecía al STUB, y cada fichero .c que no fuese del stub, era un solapamiento. Stub Programa Solap. 1 Stub 3 Solap. 3.1 Solap. 2 Solap. 3.2 Solap. 3 Solap. 4 Solap. 1

9 Tema 10: Administración de la Memoria
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 Espacio necesario: el del mayor programa resultante Programa 1 Programa Programa 2 Programa 3 Programa 4 Programa 5 Programa 6

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

11 Tema 10: Administración de la Memoria
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 proc. 01000… SO proc. proc. proc. FF…F

12 Tema 10: Administración de la Memoria
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 Gran flexibilidad, pues se pueden definir áreas no contiguas asignadas a SO y a proceso… si bien esto no tiene por qué ser necesario.

13 Tema 10: Administración de la Memoria
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 Gran flexibilidad, pues se pueden definir áreas no contiguas asignadas a SO y a proceso… si bien esto no tiene por qué ser necesario. Al registro valla sólo puede acceder el SO Se permiten acceso de SO a SO y de Proc a Proc, incluso (click) de SO a proc, pero (click) se controlan los de Proc a SO Posible mejora: permitir lectura o ejecución del sistema operativo 00…0 SO 1F00 Proceso 1F00 FF…F

14 Tema 10: Administración de la Memoria
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 Respecto al inconveniente, al fin y al cabo en la mayoría de las ocasiones sólo vamos a tener dos áreas

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

16 Tema 10: Administración de la Memoria
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 El tamaño de las particiones son fijas una vez arrancado el sistema Suele haber particiones de diversos tamaños escalonados Una de las particiones (típicamente la de dirección más baja) ocupada por sistema operativo El espacio de una partición no ocupado por un proceso: se desperdicia 00…0 SO Proceso 1 Proceso 2 Proceso 3 FF…F

17 Tema 10: Administración de la Memoria
2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria Problemas a resolver: Gestión de la memoria ¿Qué direcciones están libres u ocupadas? Protección Proteger al Sistema Operativo frente al proceso Problemas a resolver: 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? Criterio de asignación de procesos a particiones Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí

18 Tema 10: Administración de la Memoria
2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria Problemas a resolver: 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? Criterio de asignación de procesos a particiones Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí

19 Tema 10: Administración de la Memoria
2.1 Gestión de la memoria Tema 10: Administración de la Memoria Tabla de particiones 00…0 SO inicio tamaño estado pid T0 ocupada - T1 pid1 T2 libre T3 pid2 T4 pid3 Proceso 1 1 2 Nótese que la partición ocupada por SO no tiene PID (o tendría un valor especial para indicar SO) Proceso 2 1 3 2 Proceso 3 4 FF…F 3 4

20 Tema 10: Administración de la Memoria
2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria Problemas a resolver: 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? Criterio de asignación de procesos a particiones Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí

21 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria Tipos de criterios: Estáticos: cada partición tiene su cola de procesos en espera Dinámicos: una única cola para todas las particiones Nótese que con un criterio estático pueden haber procesos esperando a particiones, mientras que hay particiones en las que podrían ejecutarse (si cupiesen, claro) que están libres. En criterio dinámico, cuando una partición queda libre se elige al proceso que la ocupará 00…0 SO P4 P5 P1 P2 P3 P6 FF…F

22 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria Criterios: Mejor ajuste estático Primer ajuste Mejor ajuste dinámico Mayor que quepa, con aplazamiento limitado Subparticiones Solo el primer criterio es estático. Los demás son dinámicos. Las subparticiones son una idea, más que un criterio propiamente dicho

23 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria Primer ajuste Cuando una partición queda libre → se le asigna primer proceso que quepa Objetivo: inmediatez en la selección Ventajas: Rapidez Este criterio y todos los que siguen, por ser dinámicos, usan una única cola para todas las particiones Mal aprovechamiento, pues puede dar particiones grandes a procesos pequeños Puede perjudicar a procesos grandes pues los chicos se ejecutan tanto en particiones grandes como chicas, mientras que los grandes sólo en particiones grandes. Por tanto, los chicos le pueden quitar las oportunidades a los grandes. Inconvenientes: Posible mal aprovechamiento del espacio Puede perjudicar a procesos grandes

25 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Nótese que a diferencia de su versión estática, puede que la partición en la que menos espacio desperdicie ese proceso no esté libre, con lo que este método puede desperdiciar más memoria que su versión estática. Inconvenientes: Hay que recorrer la lista completa Puede perjudicar a procesos que más difieren del tamaño de las particiones

26 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
2.2 Criterios de asignación Tema 10: Administración de la Memoria 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. Si no hay un proceso que pueda aprovechar partición madre: se asignan las subparticiones a procesos pequeños Si llega un proceso grande: procesos pequeños se vuelcan a disco y se asigna partición madre SO P1 P4 P2 P1 P2 P3 P3

28 Tema 10: Administración de la Memoria
2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria Problemas a resolver: 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? Criterio de asignación de procesos a particiones Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí

29 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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: Supongamos que F708 es la dirección en la que se encuentra la variable “variable”, y que E000 es la dirección en que se encuentra la rutina rutina() variable=0; rutina(); MOVE F708H, 0 CALL E000H Si proceso no se carga en direcciones previstas: ¡catástrofe!

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

31 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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 Ejemplo: los archivos .COM de MS-DOS 00…0 7000 SO 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 7000 MOVE 7800H, 0 CALL 8000H FF…F

32 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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. Ejemplo: los archivos .EXE heredados de MS-DOS 00…0 0000 SO MOVE 0800H, 0 CALL 1000H Inconvenientes: Una vez cargado el proceso no se puede reubicar en otra partición 7000 MOVE 7800H, 0 CALL 8000H FF…F

33 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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 00…0 0000 SO MOVE 0800H, 0 CALL 1000H Dos tipos de direcciones: Lógicas (las que el proceso ve) Físicas (las que salen al bus) 7000 MOVE 0800H, 0 CALL 1000H A000 7000 Base A000 FF…F

34 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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 En la reubicación dinámica, el espacio de direcciones lógico de un proceso está comprendido entre las direcciones 0 y su tamaño (click, primera animación?. ¿Dónde está el sistema operativo, si hiciese falta acceder a él? Supongamos (click, segunda animación) que el SO está entre 0 y límite y que se va a cargar el proceso en la partición que empieza en BASE Vamos a conseguir que el espacio de memoria del proceso sea (click, tercera animación) entre 0 y LIMITE el SO, y de LIMITE + 1 en adelante el proceso Eso lo vamos a conseguir (click, cuarta animación) añadiendo un límite al registro base que ya teníamos en el hardware. Límite apunta a donde acaba el SO y BASE apunta al comienzo de la partición donde se carga el proceso Nota: esto no sería necesario si las llamadas al sistema se hiciesen mediante interrupciones 0000 00…0 00…0 SO SO LÍMITE LÍMITE LÍMITE+1 TAM BASE LIMITE FF…F BASE

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

36 Tema 10: Administración de la Memoria
2.3 Colocación de los procesos en memoria Tema 10: Administración de la 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: Dirección Lógica: …1 BASE X + MEMORIA

37 Tema 10: Administración de la Memoria
2. Sist. Multiprog. con Particiones Fijas Tema 10: Administración de la Memoria Problemas a resolver: 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? Criterio de asignación de procesos a particiones Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí

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

39 Tema 10: Administración de la Memoria
2.4 Protección Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
2.4 Protección Tema 10: Administración de la Memoria Ampliación bits de protección Aplicación: 00…0 SO 0000 0000 0000 0000 Cada partición debe tener un tamaño múltiplo de 2K Hay 16 particiones posibles, una de ellas para el SO La del SO debe usar la autorización 0000 De esta forma, puede acceder tanto a su propio espacio, como al de cualquier proceso. Se guarda el nº de partición en los registros de protección de los bloques que comprende Cuando se produce una conmutación de procesos, el SO escribe en el registro de autorización el nº de la partición del proceso De esta forma, ese proceso sólo puede acceder a su partición Si proceso accede fuera de partición: excepión 0001 P1 0001 0001 0001 0001 Reg. Autorización: 0001 0000 0001 0010 P2 0010 0010 0010 FF…F

41 Tema 10: Administración de la Memoria
2.4 Protección Tema 10: Administración de la Memoria 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 LÍMITE INFERIOR LÍMITE SUPERIOR ¿DIR. < LIMITE? ¿DIR. > LIMITE? NO NO MEMORIA DIRECCIÓN SI SI ERROR ERROR

42 Tema 10: Administración de la Memoria
2.4 Protección Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
Índice: Sistemas Monoprogramados Sistemas Multiprogramados con Particiones Fijas Sistemas Multiprogramados con Particiones Variables 43

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

45 Tema 10: Administración de la Memoria
3. Sist. Multiprog. con Particiones Variables Tema 10: Administración de la Memoria Problemas a resolver: Gestión de la memoria ¿Qué posiciones están libres? ¿y cuáles ocupadas? Las ocupadas, ¿a qué procesos están asignadas? Criterio de asignación de memoria a procesos Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí En relación con la colocación de procesos en memoria y la protección, todo lo dicho para particiones fijas vale, al igual que todo lo que se dirá en el próximo capítulo

46 Tema 10: Administración de la Memoria
3. Sist. Multiprog. con Particiones Variables Tema 10: Administración de la Memoria Problemas a resolver: Gestión de la memoria ¿Qué posiciones están libres? ¿y cuáles ocupadas? Las ocupadas, ¿a qué procesos están asignadas? Criterio de asignación de memoria a procesos Colocación de los procesos en memoria Procesos capaces de ejecutarse en cualquier partición Protección Proteger a SO frente a procesos Proteger a procesos entre sí En relación con la colocación de procesos en memoria y la protección, todo lo dicho para particiones fijas vale, al igual que todo lo que se dirá en el próximo capítulo

47 Tema 10: Administración de la Memoria
3.1 Gestión de la memoria Tema 10: Administració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 Tema 10: Administración de la Memoria
3.1 Gestión de la memoria Tema 10: Administración de la Memoria Mapas de bits A cada tick del espacio a gestionar, se asocia un bit: 1 = tick ocupado 0 = tick libre 111….100…011…100….0 00…0 Para asignar un trozo de memoria de un tamaño T dado: Determinar el n = nº de bits necesarios, dividiendo por exceso T/tamaño del tick Buscar, de acuerdo a algún criterio, n bits a 0 en el mapa (hueco) Poner dichos bits a 1 (ocupar el hueco) Determinar la dirección del bloque a partir de la posición del primer bit del hueco en el mapa, del tamaño del tick, y de la dirección de comienzo de la memoria que gestiona el mapa. Para liberar un bloque de memoria de un nº determinado de ticks a partir de una dirección: determinar la posición del primer bit del mapa a partir de la dirección, del tamaño del tick y de dónde comienza la memoria gestionada Poner a 0 tantos bits como ticks haya que liberar Ojo al dato, todo esto es aritmética de bits. SO P1 P3 FF…F

49 Tema 10: Administración de la Memoria
3.1 Gestión de la memoria Tema 10: Administració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 Asignación: Se recorre la lista hasta encontrar un bloque con tamaño suficiente, y se elige uno según algún criterio El nodo correspondiente a dicho bloque se divide en dos nodos: uno ocupado que representa al espacio asignado, y otro libre (normalmente) que corresponde al trozo libre sobrante Para liberar un bloque, es necesario conocer su dirección (tamaño no es necesario): El campo estado pasa a valer “libre” Se comprueba si hay que fusionar con nodo anterior y/o siguiente Para ayudar a fusión: normalmente, lista doblemente enlazada Idea: que el nodo de control forme parte del bloque de memoria (MS-DOS) SO P2 dirección: tamaño: T1 estado: LIBRE proceso: - dirección: tamaño: T1+T2+T3 estado: LIBRE proceso: - dirección: tamaño: T2 estado: LIBRE proceso: - dirección: tamaño: T2 estado: OCUPADO proceso: P2 dirección: tamaño: T3 estado: LIBRE proceso: - FF…F

50 Tema 10: Administración de la Memoria
3.1 Gestión de la memoria Tema 10: Administració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. Sobre el último punto, nótese que para liberar un bloque con listas de control basta conocer su dirección. Para liberarlo con mapas de bits, hay que conocer su tamaño también. Algunos algoritmos de asignación necesitarán que se usen listas de control

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

52 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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. Idea importada de particiones fijas. Lo ideal es que el bloque tuviese el mismo tamaño que lo que se requiere. 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 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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. No está claro que produzca menor fragmentación que mejor ajuste 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 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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) Cuando se asigna, el bloque libre se divide en bloque ocupado y bloque libre resultante. Puede ser necesario reubicar estos bloques en otras listas (el libre, seguro) según su tamaño. Para liberar, se cambia estado de bloque y… ¿cómo se fusiona? Doble enlace, uno por lista según tamaño, otra por dirección de memoria. Para fusionar: doble enlace por dirección ascendente 0 < t < 10 10 ≤ t < 20 OCUPADO Liberación: ¿Y si hay que fusionar? t > 200

58 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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 Asignación: Para bloque de tamaño T, se buscan el a lista k de la primera potencia de 2 que sea igual o mayor que T Si no hay ninguno, se corta por la mitad un bloque de la lista superior (2k+1) y se divide por la mitad: una parte se asigna y la otra se inserta en la lista del k correspondiente 2k 2k+1

59 Tema 10: Administración de la Memoria
3.2 Criterios de asignación Tema 10: Administración de la Memoria 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 2K: 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. x…x 0…00 n k+1 k k-1 x…x 1 0…00 0…0 1 0…00 n k+1 k k-1

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

61 Fontana di Trevi, Roma, Italia. Abril de 2007.


Descargar ppt "Tema 10: Administración de la Memoria"

Presentaciones similares


Anuncios Google