Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo4 IS11 PDF
Capitulo4 IS11 PDF
Sistemas Operativos
Tema 4.
Administracin de memoria.
Jerarqua de memoria:
Registros CPU del procesador
Cach (memoria rpida)
Memoria principal RAM
Almacenamiento secundario (memoria virtual)
Al bajar en la jerarqua ms capacidad pero ms lento es el
dispositivo y ms barato.
Administrador de memoria:
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria Virtual).
Sistema
Operativo Usuario
Sistema Proceso
Operativo Libre Usuario
Sistema
Operativo Particin 1 Particin 2 ... Particin N
Particiones Fijas.
Particiones con diferentes tamaos:
00000 0FFFF 3FFFF 40FFF E1FFF FFFFF
Sistema
Operativo Particin 1 Particin 2 ... Particin N
Proceso 5 Proceso 4
memoria para ejecutarse: 00000 Proceso 1 Proceso 3 ... Proceso 2 FFFFF
Podemos tener varias colas:
Cada proceso se asigna a una
Sistema
Operativo Particin 1 Particin 2 ... Particin N
cola en funcin de su tamao.
Sistema
Operativo Particin 1 Particin 2 ... Particin N
NO Interrupcin Hardware
interna al S.O.
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.
1000K
Proceso Proceso P4 P4 P4
1560K
P2 P2
1700K
300K 300K 300K
2000K
Proceso Proceso Proceso Proceso Proceso
560K
P3 P3 P3 P3 P3
2300K 260K
260K 260K 260K 260K
2560K
Particiones Variables.
Interna: NO.
Las particiones se crean con el tamao solicitado por el proceso.
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.
Particiones Variables.
S.O.
300K
P1 200K P1 200K P1 200K P1 200K
500K P2 100K P2 100K P2 100K P2 100K
600K
P3 200K
800K P4 400K
1000K P4 400K
P3 200K P3 200K
1200K
1500K
P4 400K
1900K
2100K
Cul es la mejor?
Sistemas Operativos (IS11) Tema 4 19
Paginacin.
Paginacin.
Memoria Tabla de Memoria
Ejemplos: Lgica Pginas Fsica
Pagina 0 0 1 0
1 Pagina 0
Pagina 1 1 4
2
Pagina 2 2 3 3 Pagina 2
Pagina 3 3 7 4 Pagina 1
5
6
7 Pagina 3
Memoria Tabla de Memoria 8
Lgica Pginas Fsica
0 a 0 16
Pagina 0 1 b 0 5 1 17
2 c 2 18
3 d 3 19
4 e 1 6 4 i 20 a
Pagina 1 5 f 2 1 5 j 21 b
6 g 6 k 22 c
7 h 7 l 23 d
3 2
8 i 8 m 24 e
Pagina 2 9 j 9 n 25 f
10 k 10 o 26 g
11 l 11 p 27 h
12 m 12 28
Pagina 3 13 n 13 29
14 o 14 30
15 p 15 31
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.
Para tablas grandes (millones de entradas)
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 PROCESO 3
PROCESO 2
3 1 Datos 3 3 2
4 Editor 2
5
6 Editor 3
Memoria Tabla de 7 Datos 2
Lgica Pginas
8
Editor 1 0 3
1 9
Editor 2 1 4 10
Editor 3 2 6 11
Datos 2 3 7 12
Segmentacin.
Limite SI
>d?
Interrupcin
NO Error de
direccionamiento
Segmentacin.
Ejemplo: sean 5 segmentos en memoria fsica
1400
6300
6700 Segmento 1
Segmentacin.
Ejemplo comparticin editor: Tabla de Segmentos
Proceso P1
Memoria Fsica
Limite Base
0 25286 43062
Editor 1 4425 68348 43062
Segmento 0
Datos 1 Editor
Segmento 1
68348
Memoria Lgica
Tabla de Segmentos Datos 1
Proceso P1
Proceso P2 72773
Limite Base
Memoria Lgica
Proceso P2
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.
Segmentacin Paginada.
Memoria virtual.
Recordemos que queremos:
Mantener simultneamente varios procesos en memoria para
permitir multiprogramacin.
Memoria Virtual:
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.
La memoria virtual puede implementarse sobre Paginacin
o Segmentacin paginada: se transfieren pginas.
La transferencia suele ser bajo demanda.
7 i
0 4 v Memoria
1 M corresponde Fsica
a una pgina 1 i A 0
Cargar M que no est 1
en memoria. 2 6 v B C 2 A
3
3 i D E 4 B
... F
5
6 C
7
M i 8
6 4 9 F
M+1 9 v 10
Reiniciar la Cargar
instruccin M+2 i la pgina en
memoria.
M 2 v 5
Actualizar la tabla de pginas.
Reemplazo de pginas.
Reemplazo de pginas.
Reduccin del tiempo para resolver los fallos de pgina
Fallo de pgina: dos accesos a almacenamiento secundario
Uno para guardar la pgina vctima
Otro para cargar la nueva pgina
Usar bit de modificado en la tabla de pginas
Al cargar la pgina, desde almacenamiento secundario a
memoria, el bit modificado se pone a 0 (no modificada)
Si se escribe en la pgina el bit pasa a 1 (modificado)
Si la pgina es elegida como vctima se mira su bit de
modificado
Si la pgina no ha sido modificada (bit a cero) no habr
que salvarla
Si la pgina ha sido modificada (bit a uno) se salvar
El uso de bit modificado reduce el tiempo tfp
Sistemas Operativos (IS11) Tema 4 44
Reemplazo de pginas.
7 7 7 2 2 2 5 5 5 5 5 5 7 7 7 7 7 7 5 5 5 5 2 2
3 Marcos 0 0 0 7 7 7 7 7 1 1 1 0 0 0 0 0 0 7 7 7 7 5
1 1 1 0 0 0 0 0 2 2 1 1 1 1 1 1 0 0 0 0
Fallos de pgina 2 2 2 2 2 2 1 1 1
Algoritmos ptimo.
Secuencia pginas 7 0 1 2 0 3 0 3 2 1 2
7 7 7 2 2 2 2 2 2 2 ?
3 Marcos 0 0 0 0 0 0 0 0 ? ?
1 1 1 3 3 3 3 ? ?
Fallos de pgina
1 2
Sistemas Operativos (IS11) Tema 4 48
Algoritmos LRU (Last Recently Used).
Sustituye la pgina que ms tiempo lleva sin ser usada
Implantacin mediante un contador:
Cada vez que accedemos a memoria se incrementa su valor
Se copia el valor del contador en la tabla de pginas asociado a la pgina a la
que hemos accedido
Se elimina la pgina que tiene el valor del contador ms bajo
Implementacin mediante pila:
En la base, la pgina que lleva ms tiempo, en la cima la ms nueva
Ejemplo:
Secuencia pginas 7 0 1 2 0 3 0 3 2 1 2
7 1 7 1 7 1 2 4 2 4 2 4 2 4 2 4 2 9 2 9 2 11
3 Marcos 0 2 0 2 0 2 0 5 0 5 0 7 0 7 0 7 1 10 1 10
1 3 1 3 1 3 3 6 3 6 3 8 3 8 3 8 3 8
Fallos de pgina
Cmo implementarlo?
Se usa una cola circular de las pginas residentes en memoria 0
Un puntero indica la siguiente pgina a reemplazar de la cola
Si bit referenciado = 1, lo ponemos a cero y avanzamos el puntero
Si bit referenciado =0, sustituimos esa pgina