Professional Documents
Culture Documents
Reubicacin
Proteccin
Comparticin
Organizacin lgica
Organizacin fsica
Requisitos. Reubicacin
el programador no sabe donde se
colocar el programa en memoria
cuando se ejecute
mientras el programa se est
ejecutando, se puede descargar a disco
y volver en una direccin de memoria
diferente
las referencias de memoria deben ser
traducidas a direcciones reales de
memoria
Direccionamiento
Requisitos. Proteccin
los procesos no deberan poder
referenciar localidades de memoria
de otros procesos sin permiso
imposible chequear direcciones
dentro de los programas puesto
que se pueden reubicar
se debe chequear durante la
ejecucin
Requisitos. Comparticin
permitir a varios procesos acceder
a la misma porcin de memoria
Ejemplos:
acceder a la misma copia del programa en
lugar de tener su propia copia
acceder a una estructura de datos
compartida
Gestin de Memoria
Particiones
Particionamiento fijo
Divisin de la memoria en
particiones de tamao fijo
Se puede colocar cualquier proceso
cuyo tamao sea menor o igual que
el de la particin
Algoritmo de ubicacin
Particiones del mismo tamao
Algoritmo trivial
Cola nica
Mayor aprovechamiento en uso de todas las
particiones
Algoritmo de ubicacin
Traduccin y carga absoluta
Desperdicio del almacenamiento
S.O.
Proceso nuevos
Algoritmo de ubicacin
Traduccin y carga con reubicacin
Los programas se pueden contener en cualquier particin
disponible lo suficientemente grande.
S.O.
Procesos
nuevos
Particionamiento dinmico
las particiones son de tamao y nmero
variable
los procesos ocupan tanto espacio como
necesiten, no hay fragmentacin interna
se van generando huecos, esto se llama
fragmentacin externa
se debe usar compactacin que malgasta
tiempo de procesador y requiere
capacidad de reubicacin dinmica
Particionamiento dinmico.
Ejemplo
OS (8M)
P2
P1
(14M)
(20M)
Empty (6M)
Empty
P4(8M)
P2
(56M)
(14M)
Empty (6M)
P3
(18M)
Empty (4M)
Figura 7.4
Algoritmo de ubicacin
Estrategia del mejor ajuste
asigna el menor hueco disponible
al quedar huecos ms pequeos, hay que
compactar ms frecuentemente
Estrategia del peor ajuste
asigna el mayor hueco disponible
mejor que la anterior en cuanto a
compactacin
Algoritmos de ubicacin
Estrategia del primer ajuste
asigna el primer hueco disponible
ms rpida
puede tener muchos procesos cargados en el
extremo inferior de la memoria, los cuales hay
que traspasar para llegar al hueco disponible.
Algoritmos de ubicacin
Estrategia del siguiente ajuste
variante del primer ajuste, empieza a buscar
desde donde termin la bsqueda anterior
se fragmenta ms el gran espacio libre del
final de la memoria
se requiere compactacin ms frecuente que
la anterior
Algoritmos de ubicacin
Ejemplo
Ultimo bloque
asignado (14K)
8K
8K
12K
22K
siguiente ajuste
18K
Requisito 16K
6K
2K
8K
8K
asignados
6K
6K
libres
mejor ajuste
17K
peor ajuste
36K
1K
20K
antes
despus
Sistema buddy
Sistema buddy
Reubicacin
Cuando un programa se carga en la
memoria se determinan las direcciones
un proceso puede ocupar diferentes
particiones (o sea diferentes direcciones
absolutas) durante la ejecucin (por
intercambio)
La compactacin tambin causa que un
programa tenga que ocupar diferentes
particiones.
Direcciones
direcciones virtuales (lgicas)
direcciones a las cuales hacen referencia los
procesos independientemente de la asignacin actual
mecanismos de hardware hacen la traduccin a
direcciones reales (fsicas)
direcciones relativas
direcciones expresadas en relacin a algn punto
conocido
direcciones reales (fsicas)
direcciones actuales de memoria
BCP
Registro base
suma
Registro de lmites
comp
programa
Direccin
absoluta
datos
Interrupcin al S.O.
pila
Imagen del proceso
en memoria principal
Paginacin
La memoria principal se divide en un nmero
de marcos de igual tamao.
Cada proceso se divide en un nmero de
pginas del mismo tamao que los marcos.
Un proceso se carga colocando todas sus
pginas en marcos disponibles, no
necesariamente contiguos.
Paginacin
El sistema operativo mantiene una tabla de
pginas por cada proceso
contiene la direccin del marco
correspondiente a cada pgina en el proceso
la direccin de memoria est dada por el
nmero de pgina y el desplazamiento dentro
de la pgina
Tablas de pginas
0
---
1
2
3
1
2
3
1
2
-----
1
2
3
8
9
10
1
2
3
5
6
11
12
Proceso A
Proceso B
Proceso C
Proceso D
13
14
Lista de marcos
libres
Segmentacin
Cada proceso se divide en un nmero de
segmentos
la direccin se expresa como nmero de
segmento y desplazamiento
similar a particiones variables, pero no
necesitan estar en forma contigua
Direcciones lgicas
Paginacin
Segmentacin
Memoria virtual
Organizacin
Caractersticas de paginacin y
segmentacin
Traduccin dinmica de direcciones en
tiempo de ejecucin, lo que permite carga
en distintas regiones
Asignacin no contigua
No es necesario que todos los segmentos
o pginas estn en memoria durante la
ejecucin
Ejecucin de un programa
El sistema operativo trae a memoria
principal unos pocos fragmentos del
proceso incluido el comienzo del
programa
conjunto residente: porcin de proceso
que est en memoria principal
Se genera interrupcin cuando no se
encuentra la direccin lgica en memoria
principal. Fallo de acceso a memoria
Ejecucin de un programa
Fragmento de proceso que contiene la direccin
lgica se trae a memoria principal
el proceso pasa a bloqueo solicitando E/S a disco
otro proceso se despacha mientras la E/S toma lugar
se genera una interrupcin cuando se completa la
E/S a disco lo que causa que el SO cambie el estado
del proceso a listo
Ventajas de fragmentar
procesos
Ms procesos se pueden mantener en
memoria principal
solamente se cargan algunos fragmentos
de cada proceso
Ventajas de fragmentar
procesos
El programador trata con memoria del
tamao del disco duro
Se cargan en memoria los fragmentos
que se necesitan
Se ahorra tiempo porque no se cargan y
descargan fragmentos que no se usen
Hiperpaginacin (thrashing)
Intercambio hacia afuera de un bloque de
un proceso justo antes de que se necesite
El procesador gasta la mayor cantidad de
su tiempo intercambiando los bloques en
lugar de ejecutando las instrucciones.
Principio de cercana
Las referencias a datos y programas
dentro de un proceso tienden a agruparse.
Solamente algunas partes de un proceso
se necesitarn por un periodo breve de
tiempo.
Es posible adivinar inteligentemente cules
bloques se necesitarn en el futuro.
Principio de cercana
Localidad espacial
tendencia a referenciar localidades cercanas
entre s.
Secuencias lineales de cdigo, recorridos de
vectores, definiciones de variables afines cercanas
unas a otras
Principio de cercana
Localidad temporal
tendencia a referenciar la misma posicin
varias veces durante breves intervalos
ciclos, subrutinas, pilas, variables utilizadas para
cuenta y totalizacin
Paginacin
Cada proceso tiene su propia tabla.
Cada entrada de la tabla de pginas
contiene el nmero de marco de la pgina
correspondiente en memoria principal.
Se necesita un bit para indicar si la pgina
est o no en memoria principal.
Paginacin
Direccin virtual
Nmero de pgina
Desplazamiento
Traduccin de direcciones en
sistemas de paginado
Direccion virtual
p
Marco p
Registro de origen de la
tabla de corr. de pginas
b
b
Tabla de
correspondencia
de pginas
d
Marco de
Pgina p
programa
paginado
Memoria principal
Tablas de correspondencia de
pginas
Pueden ser muy grandes y necesitar
mucha memoria.
Las tablas tambin se almacenan en
memoria virtual.
Cuando un proceso se ejecuta, parte de
su tabla est en memoria principal.
Correspondencia
Cada referencia a una direccin virtual
puede causar dos accesos a memoria
fsica.
Uno para leer la tabla
uno para leer el dato
TLB
Contiene las entradas de la tabla de
pginas que han sido usadas ms
recientemente.
Trabaja parecido a la cache de memoria
principal.
TLB
Dada una direccin virtual, el procesador
examina el TLB.
Si se encuentra la entrada de la pgina
(hit), se obtiene el nmero del marco y se
forma la direccin real.
Si no se encuentra la entrada de la pgina
(miss), se usa el nmero de pgina para
indexar la tabla de pginas del proceso.
TLB
Primero comprueba si la pgina est en
memoria principal.
Si no, se avisa un fallo de pgina.
Se actualiza el TLB para incluir la nueva
entrada.
Direccion virtual
p
d
Memoria
secundaria
TLB
Pag
P M Control Marco P
TLB hit
cargar
pgina
p
d
Direccin real
Fallo de pgina
INICIO
Operacin de TLB
CPU prueba
la TLB
Entrada
pgina en
TLB?
No
Acceder tabla
pginas
No
Rutina de
fallo de pgina
Pgina en
mem real?
S
Actualizar TLB
CPU genera
direccin
fsica
Rutina de fallo
de pgina
Memoria
llena?
No
SO ordena a la
CPU a traer la
pg. desde disco
CPU activa
dispos. E/S
Pgina transferida
desde el disco a
memoria principal
Actualizar
tabla pg.
Realizar
reemplazo
pgina
Tamao de pginas
A menor tamao, menor fragmentacin interna.
Con menor tamao, se requieren ms pginas
por procesos. Esto quiere decir, tablas mayores.
Mayores tablas, grandes porciones de tablas en
memoria virtual.
La memoria secundaria est diseada para
transferir grandes bloques de datos
eficientemente, por lo tanto mayores tamaos
de pginas es mejor.
Tamao de pgina
Pequeo tamao, mayor nmero de pginas se
encontrarn en memoria principal
A medida que sigue la ejecucin, las pginas en
memoria contendrn porciones del proceso trado
recientemente a memoria, por lo tanto disminuyen los
fallos de pgina
Mltiples tamaos de pgina proveen la flexibilidad
necesaria para usar efectivamente el TLB
Pginas grandes se pueden usar para
instrucciones de programa
Pginas pequeas se pueden usar para hilos
Segmentado
Puede ser dinmico
Simplifica el manejo de estructuras que
crecen.
Permite alterar los programas y
recompilarlos independientemente.
Se usa para compartir datos entre
procesos.
Fcil proteccin.
Tablas de correspondencia de
segmentos
Cada entrada contiene la direccin de comienzo
del correspondiente segmento en memoria
principal.
Cada entrada contiene la longitud del segmento.
Se necesita un bit para determinar si el
segmento est o no en memoria principal.
Se necesita un bit para determinar si el
segmento ha sido modificado desde la ltima vez
que se carg.
Segmentado
Direccin virtual
Nmero segmento
desplazamiento
Longitud
Traduccin de direcciones en
sistemas segmentados
Direccin virtual
s
Tabla segmentos
Base + d
Registro base
b
s
P MControl long
Programa
Segmento
Tabla segmentos
Base
Segmentacin
Memoria principal
Sistemas de
paginacin/segmentacin
Sistemas de
paginacin/segmentacin
Direccin virtual
Nmero segmento
Nmero de pgina
desplazamiento
Longitud
Nmero de marco
Tabla
segmentos
Tabla pginas
Despl.t
P M Contl Marc P
Marco
pgina
Programa
Segmentacin
Paginacin
Memoria principal
Memoria virtual
Estrategias de Gestin
Polticas
Lectura (tambin polticas de vaciado)
cundo se debe transferir una pgina (segmento)
Ubicacin
dnde colocar la nueva pgina (segmento)
Reemplazo
cul pgina (segmento) desalojar de memoria
Asignacin
qu cantidad de memoria real se asigna a cada proceso
activo
Control de carga
Grado de multiprogramacin
Polticas de lectura
determina cundo traer una pgina a
memoria
paginacin por demanda
paginacin anticipada
Polticas de lectura
Demanda
el paginado por demanda trae solo las
pginas cuando se hacen las referencias
garantiza que las nicas pginas que se
transfieren son las requeridas
esperas ms costosas
Polticas de lectura
Paginacin anticipada
trae ms pginas que las que se necesitan
acelera tiempos de ejecucin de un proceso
ms eficiente cuando las pginas son contiguas en el
disco, se usa en la carga inicial.
no se puede predecir el uso de estas pginas
Polticas de ubicacin
determina dnde ubicar un bloque en
memoria real
irrelevante en el caso de paginacin
iguales estrategias que en particiones
variables para segmentacin
primer ajuste
mejor ajuste
siguiente ajuste
Polticas de reemplazo
bloqueo de marcos
para el kernel, estructuras de control del
sistema operativo, buffers I/O
bit de bloqueo asociado a cada marco
Polticas de reemplazo
algoritmos de reemplazo
ptimo
LRU (menos recientemente utilizada)
NUR (no utilizada recientemente)
buffering de pginas
Polticas de reemplazo
ptima
selecciona aquella pgina que tardar ms
tiempo en volver a ser utilizada
imposible predecir el futuro
Polticas de reemplazo
First In, First Out (FIFO)
Reemplaza la pgina que ha estado ms
tiempo en almacenamiento primario
lista tipo buffer circular (cola FIFO)
la ms simple de implementar
la pgina ms antigua puede ser la ms
usada
anomala de Belady
Polticas de reemplazo
Least Recently Used (LRU)
Reemplaza la pgina que no ha sido utilizada por el
mayor tiempo
Principio de localidad
pasado reciente indicador de futuro cercano
implementacin difcil
contador de tiempo utilizado
lista ordenada en cada referencia (no en cada fallo de
pgina)
Polticas de reemplazo
Not Recently Used (NRU)
aproximacin de LRU
utiliza dos bits de hardware
uso
modificacin
Polticas de reemplazo
Reloj o segunda oportunidad
aproximacin de FIFO mejorando el
rendimiento a travs del bit de uso
se reemplaza el primer marco cuyo bit de uso
sea 0
en la bsqueda cada bit de uso en 1 se
cambia a 0
n
Pag. 9
uso = 1
Pag. 19
uso = 1
1
Pag. 1
uso = 0
.
.
puntero al
prox. marco
Pag. 45
uso = 1
Pag. 191
uso = 1
Pag. 222
uso = 0
Pag. 556
uso = 0
Pag. 33
uso = 1
Pag. 67
uso = 1
7
6
Pag. 13
uso = 0
5
n
Pag. 9
uso = 1
Pag. 19
uso = 1
1
Pag. 1
uso = 0
.
.
Pag. 45
uso = 0
Pag. 222
uso = 0
Pag. 191
uso = 0
Pag. 727
uso = 1
Pag. 33
uso = 1
Pag. 67
uso = 1
7
6
Pag. 13
uso = 0
5
Polticas de
reemplazo.Ejemplo
Buffering de pginas
Algoritmo FIFO
la pgina no se reemplaza
inmediatamente, se agrega a una de dos
listas
lista de marcos libres si la pgina no ha sido
modificada
lista de pginas modificadas
Polticas de asignacin
Factores a tener en cuenta
menor cantidad de memoria para un proceso, mayor
cantidad de procesos residentes. Disminuye el
tiempo perdido en intercambios.
Pequea cantidad de pginas residentes, aumento de
tasa de fallos de pginas.
Despus de una cierta cantidad de marcos asignados
no hay efecto en la tasa de fallos de pgina
Polticas de asignacin
Asignacin fija
nmero fijo de marcos asignados a un proceso en
forma anticipada
pgina a reemplazar debe ser elegida entre los
marcos asignados a ese proceso
Se usan los algoritmos de reemplazo vistos
Desventajas:
Asignacin muy pequea: alto grado de fallos de pgina
Asignacin muy grande: bajo grado de multiprogramacin
Polticas de asignacin
Asignacin variable
nmero variable de marcos asignados a un proceso,
manteniendo el conjunto de trabajo
reemplazo
local: se elige la pgina a reemplazar entre los marcos
asignados a ese proceso
global: se elige la pgina a reemplazar entre los marcos
disponibles
Polticas de asignacin
Asignacin variable con alcance global
Ventaja:
Fcil de implementar
Desventaja
Quita marcos de otros procesos activos
Polticas de asignacin
Asignacin variable con alcance local
Asignacin de un cierto nmero de marcos al
proceso
Cuando se produce un fallo se selecciona un
marco del proceso
De vez en cuando se vuelve a evaluar la
asignacin otorgada
Conjunto de trabajo
Conjunto de pginas que deben estar en
almacenamiento principal para que un
proceso se ejecute con eficiencia
basado en el principio de cercana
W(t,w) conj. de pginas a las que hizo
referencia el proceso en el intervalo t-w
Conjunto de trabajo
Polticas de asignacin basadas en conjuntos
de trabajo
intentan mantener el conjunto de trabajo de los
procesos activos en memoria real
si no se mantiene:
sobreutilizacin de la memoria real (cantidad de marcos >
conj. de trabajo)
hiperpaginacin (cantidad de marcos < conj. de trabajo)
Conjuntos de trabajo
Problemas:
los conjuntos de trabajo de un proceso son
transitorios
medir el conjunto de trabajo de cada proceso
es imprctico
el tamao ptimo de la ventana no se conoce
Algoritmo de frecuencia de
fallas de pgina
Ajusta el conjunto de pginas residentes de
un proceso
frecuencia de fallas de pgina o,
tiempo entre fallas
> lmite superior
liberan pginas no referenciadas ltimamente
Polticas de vaciado
Vaciado por demanda
una pgina se escribe en disco solamente
cuando ha sido seleccionada para reemplazo
Prevaciado
las pginas se escriben por lotes
Polticas de vaciado
Buena solucin usando buffering de pginas
las pginas reemplazadas se colocan en dos listas
modificadas o sin modificar
Control de carga
Determina el nmero de procesos que
estarn residentes en la memoria principal
Muy pocos procesos, muchas ocasiones
en que el procesador estar desocupado
porque no hay procesos listos
Demasiados procesos activos,
hiperpaginacin
Suspensin de procesos
Procesos con la prioridad ms baja
Procesos con fallos de pginas
este proceso no tiene su conjunto de trabajo en
memoria, por lo tanto se bloquear de cualquier
manera
Suspensin de procesos
Procesos con el conjunto residente ms chico
este proceso requiere el menor esfuerzo futuro para
volver a cargarse
Proceso ms grande
se obtiene la mayor cantidad de marcos libres
Manejo de memoria en
Windows
Asignacin de memoria
Espacio de direcciones virtual por proceso 2
gigabytes
Manejo de memoria en
Windows