Particiones Fijas y Variables 2
Particiones Fijas y Variables 2
Particiones Fijas y Variables 2
Administracin de memoria.
Jerarqua de memoria:
Registros CPU del procesador Cach (memoria rpida) Memoria principal RAM Almacenamiento secundario (memoria virtual)
Administracin de memoria.
Proceso de Compilacin y Carga de un Programa:
Programa Fuente Mdulo Objeto Otros Modulos Objeto Contenido de la memoria en binario Editor de Enlaces Carga Ejecucin
Compilacin y Ensamblador
Ejemplo: (enlace de direcciones) Programa ensamblador con salto a una etiqueta: ETIQ --jmp ETIQ
Sistemas Operativos (IS11) Tema 4 3
Proceso de Compilacin y Carga de Programas. En que momento se realiza el enlace o traduccin de direcciones?
Compilacin: Generando cdigo absoluto, en el momento de compilacin se sabe donde residir el programa en memoria. Carga (Reubicacin esttica): El compilador genera cdigo relocalizable. Se crean direcciones de memoria absolutas cuando se carga el programa en memoria. Ejecucin (Reubicacin dinmica) : Durante la ejecucin puede moverse el cdigo de un proceso. Necesita apoyo del hardware:
Direcciones Logicas 0 1 . . . 100 Registro Base + MEMORIA FISICA
CPU
CPU
Particiones Variables.
Particiones Fijas.
Particiones de igual tamao:
00000 0FFFF 1FFFF 2FFFF NFFFF Particin N
Sistema Operativo
Particin 1 Particin 2
...
Nivel de multiprogramacin limitado por nmero de particiones. Hay una cola con procesos que quieren utilizar memoria y ejecutarse. Hay una tabla para indicar particiones ocupadas y libres.
Particiones Fijas.
Particiones con diferentes tamaos:
00000 0FFFF Particin 1 3FFFF 40FFF E1FFF FFFFF Sistema Operativo Particin 2
...
Particin N
Particin 1
Particin 2
... ...
Podemos tener una nica cola: Cuando se libera una particin -> se asigna al primer proceso que cabe en ella. 00000
Sistema Operativo Particin 1
...
Particin 2
FFFFF
...
Particin N
10
Particiones Fijas.
Problemas que presenta este tipo de asignacin de memoria:
Debe proporcionarse reubicacin: En que particin entrar el proceso?. Existe Fragmentacin Interna y Externa: Interna: Externa:
Una particin asignada y no ocupada totalmente por el proceso. Un proceso quiere ejecutarse, hay una particin libre, pero de menor tamao que el proceso.
Necesidad de proteccin: (en sistemas multiprogramados) Un proceso no acceda al rea de memoria del otro. Si la reubicacin es dinmica puede usarse registros base-lmite.
Registro Lmite= 1000 Direccin Logica= 346 Registro Base= 14000 +
CPU
Es menor ? NO
SI
MEMORIA FISICA
11
Particiones Variables.
Funcionamiento:
Inicialmente: Toda la memoria (salvo particin del S.O.) disponible para procesos, como si fuese un gran hueco. Llega un proceso: Se introduce en un hueco libre. El espacio no ocupado ser un nuevo hueco. Cada zona de memoria ocupada -> una particin. Proceso termina: Libera su zona de memoria. Se convierte en un hueco. Dicho hueco se fusiona con los adyacentes. Se conserva una tabla de partes de memoria ocupadas y libres y la cola de entrada de procesos en memoria.
Sistemas Operativos (IS11) Tema 4 12
Particiones Variables.
Un ejemplo:los procesos se cargan en memoria, compiten por la CPU y al acabar liberan la memoria
Proceso P1 P2 P3 Memoria Requerida 600 K 1000 K 300 K S.O. Proceso P1
2160K 1560K
S.O. Proceso P1
1000K
Proceso P3
260K
13
Particiones Variables.
Fragmentacin de Particiones Variables:
Externa: SI. (memoria dividida en huecos pequeos) Suma del espacio libre en memoria suficiente para el nuevo proceso. Pero no hay huecos suficientemente grandes para l. El nuevo proceso no se carga en memoria. Interna: NO. Las particiones se crean con el tamao solicitado por el proceso.
14
Particiones Variables.
Esta asignacin de memoria se denomina: Asignacin dinmica de almacenamiento Como elegir un hueco cuando llega un nuevo proceso de tamao N? Estrategas:
Primer Ajuste: Escoge el primer hueco libre de tamao suficiente. Mejor Ajuste: Hueco ms pequeo con tamao suficiente (requiere ver toda la lista si no est ordenada). Peor Ajuste: Hueco ms grande: Pretende conseguir que los huecos que queden sean grandes (requiere ver toda la lista si no ordenada).
Sistemas Operativos (IS11) Tema 4 15
Particiones Variables.
Cul es el mejor?
Simulaciones y Estadsticas: Criterio tiempo (reduccin) y utilizacin de memoria (aprovechamiento):
Primer Ajuste y Mejor Ajuste son mejores que Peor Ajuste.
16
Particiones Variables.
Proteccin de Memoria: se utiliza cdigo reubicable
Si cdigo reubicable -> se pueden usar registros base y lmite.
Registro Lmite= 500 Direccin Logica= 346 S.O. Registro Base= 1400 + Proceso P5 Proceso P4
Es menor ? NO
SI
CPU
1900K Proceso P3
17
Particiones Variables.
Compactacin: intenta solucionar fragmentacin ext.
Consiste en desplazar las particiones ocupadas para que estn juntas en memoria: Queda un solo hueco libre de mayor tamao. Es una solucin al problema de fragmentacin externa. Slo es posible si la reubicacin es dinmica (en ejecucin). Ejemplo: S.O. S.O. 400K 400K Proceso Proceso 100+300+260= P5 P5 900K 900K Hueco de 660k 1000K
Proceso P4 1700K 2000K 2300K 2560K Proceso P3 Proceso P4 1600K 1900K 2560K Proceso P3
18
Particiones Variables.
Problemas de la Compactacin:
Consume tiempo: Desplazar zonas de memoria. Difcil seleccionar una estrategia de compactacin ptima.
(1) S.O. P1 200K 500K P2 100K 600K 800K 1000K 1200K 1500K P4 400K 1900K 2100K P3 200K 300K P1 200K P2 100K P3 200K P4 400K P1 200K P2 100K P4 400K P3 200K P1 200K P2 100K (2) (3)
Cul es la mejor?
Sistemas Operativos (IS11) Tema 4 19
Paginacin.
Paginacin: (solucin a fragmentacin externa)
Permite que la memoria de un proceso no sea contigua. Hay una distincin entre direcciones lgicas y fsicas. La memoria fsica la dividimos en bloques de tamao fijo: marcos. La memoria lgica: La dividimos en bloques llamados: pginas. De igual tamao que el marco. Las pginas de un proceso se cargan en los marcos de la memoria principal que estn disponibles: Tenemos trozos del proceso all donde la memoria est disponible.
Sistemas Operativos (IS11) Tema 4 20
Paginacin.
Hardware de paginacin: para traduccin de direcciones
Direccin Lgica CPU Tabla de Pginas P D 0 1 2 P M D Direccin Fsica
...
M
La direccin lgica generada consta de dos partes: Nmero de Pagina (P). Desplazamiento dentro de la pgina (D). La tabla de pginas: (contiene la direccin base en memoria fsica) Permite establecer una correspondencia entre el nmero de pgina y un nmero de marco de memoria fsica. La direccin fsica es el nmero de marco y el desplazamiento.
Sistemas Operativos (IS11) Tema 4 21
Paginacin.
Ejemplos:
Memoria Lgica Pagina 0 Pagina 1 Pagina 2 Pagina 3 0 1 2 3 Tabla de Pginas 1 4 3 7 0 1 2 3 4 5 6 7 Pagina 3 Pagina 2 Pagina 1 Pagina 0 Memoria Fsica
Tabla de Pginas 5 6 1 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Memoria Fsica 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
i j k l m n o p
a b c d e f g h
22
Paginacin.
Tamao de pginas y marcos definidos por Hardware. Normalmente se escoge un tamao de pgina potencia de 2:
Ya que es ms fcil la traduccin de direcciones lgicas a fsicas.
Direccin Lgica CPU Tabla de Pginas 0010 000000 0 1 2 3 4 5 6 7 8 010 001 110 011 110 000000 Direccin Fsica
011
Tamao memoria lgica 2 n tamao pgina 2 (bytes o palabras) P ndice en tabla de pginas D desplazamiento
...
M-n bits altos de la direccin lgica= P n bits bajos de la direccin lgica = D
23
Paginacin.
El SO traduce direcciones usando una copia de la tabla pginas en memoria Implementacin Hardware de la Tabla de Pginas:
1) Un conjunto de registros (circuitos lgicos de alta velocidad): Habr que cargar estos registros en un cambio de contexto. Se usa para pocas entradas (unas 256) 2) Tabla en memoria principal y registro base cuyo contenido apunta a la tabla de pginas: Para cambiar de tabla de pginas -> Basta cambiar de registro base. Menor tiempo de cambio de contexto pero mayor de acceso a memoria
Accedemos dos veces a memoria para obtener un dato en memoria.
Paginacin.
3) Registros Asociativos (TLB): (pequea cach de acceso rpido), (translation look-aside buffers) Los registros contienen solo unas pocas entradas de una T.pginas 2 partes en cada registro:
Una clave (nmero de pgina). Y un valor (nmero de Marco). Si la clave est: Proporciona el nmero de marco asociado. Si no est: Se accede a la tabla de pginas de memoria.
Direccin Lgica CPU P D TLB clave M
0 1 2 P
Direccin Fsica
Tabla de Pginas
...
M
25
Paginacin.
Ventaja: Pginas Compartidas:
La paginacin permite compartir cdigo comn entre varios procesos: Slo si el cdigo es reentrante (no se modifica durante ejecucin). El rea de datos de los procesos sera diferente. Ejemplo: varios procesos ejecutan el mismo editor de textos
PROCESO 1 Memoria Lgica Editor 1 Editor 2 Editor 3 Datos 1 0 1 2 3 Tabla de Pginas 3 1 4 6 1 PROCESO 3 Memoria Lgica Editor 1 Editor 2 Editor 3 Datos 3 0 1 2 3 Tabla de Pginas 3 1 4 6 2 0 1 2 3 4 5 6 Memoria Lgica Editor 1 Editor 2 Editor 3 Datos 2 0 1 2 3 Tabla de Pginas 3 1 4 6 7 7 8 9 10 11 12 Editor 3 Datos 2 Datos 1 Datos 3 Editor 1 Editor 2 Memoria Fsica
PROCESO 2
26
Paginacin.
Proteccin de memoria en entorno con paginacin:
En la tabla de pginas pueden encontrarse unos bits de proteccin asociados a cada marco indican si la pgina es de slo lectura o lectura y escritura. Cuando se consulta el nmero de marco, se consultan adems los bits de proteccin. Se debe controlar que el nmero de pgina no supere el total de pginas usadas por el proceso (sera una direccin incorrecta).
27
Segmentacin.
Otro esquema de asignacin memoria: Segmentacin
El espacio de direcciones lgicas se compone de un conjunto de segmentos: Cada uno tiene un nombre y una longitud. Para el usuario las direcciones especifican el nombre del segmento y el desplazamiento dentro de l. El nombre del segmento se numera (es un nmero). <nmero segmento, desplazamiento> El procesador Intel 8086 usa segmentacin, los programas se separan en: Segmento de Cdigo. Segmento de Datos. Segmento de Pila. Hay una divisin lgica del proceso en diferentes segmentos.
Sistemas Operativos (IS11) Tema 4 28
Segmentacin.
Hardware de segmentacin mediante Tabla de segmentos:
Establece la correspondencia entre direcciones fsicas y lgicas. Se busca en la tabla de acuerdo con el nmero de segmento. Cada entrada 2 registros:
base (dir. Fsica inicial del segmento en memoria) lmite de segmento (longitud del segmento)
Se compara lmite del segmento con desplazamiento. Si desplazamiento vlido, se suma a la direccin el registro base.
Direccin Lgica CPU Tabla de Segmentos S d 0 1 2
S Limite Base
...
Limite >d? NO
29
Segmentacin.
Ejemplo: sean 5 segmentos en memoria fsica
1400 Limite Datos Subrrutina 1 Segmento 0 Segmento 4 Programa Principal Segmento 2 Segmento 3 Pila 5700 6300 6700 0 1 2 3 4 1000 400 400 1100 1000 Base 1400 6300 4300 3200 4700 Segmento 3 4300 4700 Segmento 2 Segmento 4 2400 3200 Segmento 0
Subrrutina 2 Segmento 1
Segmento 1
Segmentacin.
Implementacin Hardware de la tabla de segmentos:
Puede ubicarse en registros rpidos o memoria (como paginacin). Si est en memoria: Un registro base STBR (segment table base register) indica inicio de la tabla de segmentos en memoria. Un registro lmite indica longitud de la tabla de segmentos. Bits de proteccin: Segmento de slo lectura o lectura y escritura. Se consultan antes de acceder al segmento. Puede realizarse a nivel de segmento (cdigo o datos). Cada proceso tendr una tabla de segmentos. Compartir un segmento significa que una entrada de la tabla de segmentos coincide en varios procesos (igual posicin fsica).
Sistemas Operativos (IS11) Tema 4 31
Proteccin:
Comparticin de cdigo:
Segmentacin.
Ejemplo comparticin editor:
Editor Segmento 0 Datos 1 Segmento 1 Memoria Lgica Proceso P1 68348 Tabla de Segmentos Proceso P2 72773 Limite Base 0 1 25286 8550 43062 90003 90003 98553 Datos 2 Datos 1 Tabla de Segmentos Proceso P1 Limite 0 1 25286 4425 Base 43062 68348 43062 Editor Memoria Fsica
Si compartimos un segmento todos los procesos que lo comparten deben definir dicho segmento con el mismo cdigo. Direccin ( S , desplazamiento )
Sistemas Operativos (IS11) Tema 4 32
Segmentacin.
Fragmentacin:
Los segmentos son de tamao variable: Puede haber fragmentacin externa. Bloques de memoria demasiado pequeos para contener un segmento. Solucin: Se puede compactar la memoria (segmentacin usa reubicacin dinmica). Problema de fragmentacin, casos extremos: Cada proceso un segmento, igual esquema que en particiones variables. Cada palabra (byte) un segmento:
No habra fragmentacin externa. Necesitamos una tabla de segmentos del tamao de la memoria.
Sistemas Operativos (IS11) Tema 4 33
Segmentacin Paginada.
Otro esquema de asignacin de memoria es: Segmentacin paginada
La Memoria lgica est dividida en bloque llamados segmentos que contienen las regiones de un proceso. Direccin lgica=<n segmento, desplazamiento>=<S,d> Los segmento estn divididos en pginas de igual tamao que los marcos (potencias de 2). Las pginas de un proceso se cargan en marcos de la memoria principal. Cada segmento tiene asociada una tabla de pginas Se usa un registro lmite y base de la tabla de pginas para cada segmento
34
Segmentacin Paginada.
Esquema de traduccin de direcciones
Direccin lgica=<n segmento, desplazamiento>=<S,d> S= entrada de la tabla de segmentos: Tabla de Segmentos Contiene el lmite 0 del segmento Tabla de Pginas 1 Direccin Contiene la del Segmento S Lgica direccin base ... Limite Base Tabla S d + m de una tabla de S de Pginas pginas. CPU Habr una tabla Direccin de pginas por SI Fsica Limite m d' P d' cada segmento. >d? El desplazamiento d es: Interrupcin NO Error de Un nmero de pgina P. direccionamiento Un nuevo desplazamiento dentro de la pgina d.
Sistemas Operativos (IS11) Tema 4 35
Memoria virtual.
Recordemos que queremos: Memoria Virtual:
Mantener simultneamente varios procesos en memoria para permitir multiprogramacin.
La memoria virtual puede implementarse sobre Paginacin o Segmentacin paginada: se transfieren pginas. La transferencia suele ser bajo demanda.
Sistemas Operativos (IS11) Tema 4
Permite separar la memoria lgica del usuario de la memoria fsica. Un proceso en ejecucin no tiene porque encontrarse totalmente en memoria principal (slo parte). Ahora un proceso puede ser mayor que la memoria fsica. Permite transferencia de informacin entre memoria principal y secundaria (2 niveles consecutivos de la jerarqua de memoria). Usa un dispositivo de almacenamiento secundario (disco) como dispositivo de intercambio.
36
Si el proceso accede a pginas residentes en memoria (bit de presencia vlido): la ejecucin prosigue normalmente Si accede a una pgina no residente (bit presencia invlido)
Ocurre una interrupcin o fallo de pgina , Control al SO
37
...
38
39
40
Reemplazo de pginas.
Utilizando Memoria Virtual:
Los procesos tienen parte de sus pginas cargadas en memoria. En un instante, la totalidad de los marcos de memoria estn ocupados.
Qu ocurre si ante un fallo de pgina no existe un marco libre en memoria principal? Posibles soluciones que aplicara el S.O. :
Abortar el proceso de usuario (no es una buena solucin). Descargar otro proceso y llevarlo a almacenamiento secundario liberando sus marcos (se puede hacer). Reemplazar pginas:
Encontramos un marco que no se est utilizando y lo liberamos.
Sistemas Operativos (IS11) Tema 4 41
Reemplazo de pginas.
Fallo de pgina con reemplazo de pginas:
Se busca la pgina deseada en almacenamiento secundario. Se busca un marco libre.
LO HAY: lo utilizamos. NO LO HAY: reemplazo de pgina
usar un algoritmo de reemplazo de pginas para seleccionar un marco vctima que genere el menor nmero de fallos de pgina Pasamos el contenido del marco a almacenamiento secundario. Actualizamos la tabla de pginas.
Ya disponemos de un marco libre. Se lee la pgina de almacenamiento secundario y se copia en el marco libre. Se actualiza la tabla de pginas. Se reinicia la instruccin interrumpida.
Sistemas Operativos (IS11) Tema 4 42
Rendimiento
Frecuencia de Fallo de pgina
Sea p la probabilidad de que una referencia a memoria provoque un fallo de pgina (0<p<1)
Si p=0, nunca hay fallos de pgina Si p=1, hay fallo de pgina en todas las referencias
Sea tm el tiempo de acceso a memoria principal Sea tfp el tiempo para resolver un fallo de pgina, que depende de:
Tiempo de transferencia entre almacenamiento secundario y memoria Tiempo de actualizacin de tablas de pginas Tiempo de reinicio de la ejecucin del proceso
El tiempo efectivo de acceso a memoria TEAM vendr dado por: TEAM=(1-p).tm + p.tfp