Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Rosa Ortíz Acosta Modificado hace 8 años
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.