Algoritmos de reemplazo de paginas - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritmos de reemplazo de paginas

Description:

... en el tope de la pila ... es posible emplear esquema asignaci n proporcional en el que la asignaci n de ... el uso de procedimientos NO SI ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 58
Provided by: Dr231504
Category:

less

Transcript and Presenter's Notes

Title: Algoritmos de reemplazo de paginas


1
La memoria virtual
If its there and you can see it - its
real If its not there and you can see it -
its virtual If its there and you cant see
it - its transparent If its not there and you
cant see it - you erased it! IBM poster
explaining virtual memory, circa 1978
2
Características memoria virtual
computadora 512K en RAM
Programas muy grandes no caben en memoria
disponible solución dividir programa en
partes (capas) capa 0 se ejecuta
primero termina se llama la capa 1 Capas
se mantienen en disco (zona de swap) y se
intercambian con la memoria por medio del
sistema operativo
3
Aspectos a tomar en cuenta
  • Responsabilidades
  • Intercambio capas disco/memoria sist. operativo
  • Dividir programa programador
  • Originalidad
  • división programa responsabilidad del sistema
  • método diseñado por Fotheringham (1961)
  • método conocido como memoria virtual
  • Principio
  • Sistema operativo mantiene en memoria aquellas
    partes del programa que se usen (referencien) y
    el resto permanece en disco
  • direcciones generadas dentro de un programa
    mediante índices, registros base, de segmento y
    otros, se denominan espacio direcciones virtuales
  • las direcciones de la memoria disponible (memoria
    física) se conocen con el nombre de direcciones
    físicas

4
  • si no hay memoria virtual
  • la dirección virtual es la dirección física
  • con memoria virtual
  • es necesario saber que dirección física le
    corresponde a la dirección virtual
  • Métodos
  • paginación
  • segmentación

5

6
La paginación
- Espacio direcciones virtuales se divide en
unidades llamadas páginas. - Las unidades
correspondientes en memoria física se llaman
marcos para páginas - Las páginas y los marcos
tienen siempre el mismo tamaño. - Fallo de
página pagina no asociada con algún marco
7
pag 0
pag 1
pag 2
. . . .
pag n
mapa de memoria
memoria física
memoria virtual
disco
8
0
1
2
marca
válido no - válido
A
3
0
A
4
B
1
0
4
v
5
C
i
1
2
6
C
6
v
2
D
3
7
i
3
A
B
8
E
4
i
4
D
E
C
F
9
F
9
v
5
5
i
10
F
6
G
6
i
11
7
H
7
12
tabla de páginas
memoria lógica
13
disco
memoria física (RAM)
14
15
9
programa A
12
13
14
15
programa B
20
21
22
23
memoria RAM
disco
10
bit de validez / no validez
marco
0
3
v
1
monitor
4
v
0
2
5
v
1
3
i
D
2
B
Tabla de páginas para el usuario 1
H
3
cargar M
4
bit de validez / no validez
marco
J
5
0
M
A
3
v
6
A
1
B
4
v
E
7
C
2
5
v
memoria física
D
3
i
memoria lógica para el usuario 2
Tabla de páginas para el usuario 1
11
Intercambiar a disco la página víctima
bit de validez / no validez
marco
cambiar a no válido
0
i
víctima
f
v
f
restablecer la tabla por la nueva página
tabla de páginas
Inter cambiar a la memoria la página adecuada
memoria física
12

Ejemplo paginación
Direcciones en la
Espacio de
memoria fisica
direcciones virtuales
0- 4k
0- 4k
2
1
4K- 8K
4K- 8K
6
8K-12K
8K-12K
0
12K-16K
12K-16K
4
16K-20K
16K-20K
3
20K-24K
20K-24K
x
24K-28K
24K-28K
x

28K-32K
28K-32K
x
32K-36K
5
36K-40K
x
40K-44K
7
44K-48K
Marco para página
x
48K-52K
Página virtual
x
52K-56K
x

56K-60K
x
60K-64K
13

0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
Página virtual 2 se utiliza
como un índice en la tabla de
Dirección virtual
páginas.
de entrada (16 bits)
Bit presente/ausente
(8196)
0
010 1
001 1
1
110
110 1
2
000 1
3
100 1
4
El ajuste de 12
011 1
5
bits se copia en
forma directa
6
000 0
de la entrada a
000 0
7
la salida
Tabla de
000 0
8
páginas
101 1
9
000 0
10
111 1
11
12
000 0
000 0
13
000 0
14
000 0
15
16 páginas de 4K
Dirección física
Dirección física
Dirección física
de salida
de salida
de salida (15 bits)
(24580)
(24580)
(24580)
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15
14

Tabla de páginas
de segundo nivel
Hacia las
páginas
Tabla superior c/entrada 4M gt se tienen 4G
de direcciones virtuales 232 4,294,967,296 4G
Tabla de páginas
de nivel superior
0
1
Bits
2
10
10
12
3
4
PT 1
PT 2
Offset
5
6
7
(a)
1023
0
1
2
3
Tabla de
4
páginas para
5
los 4 M supe-
riores de la
6
memoria
7
1023
(b)
(a) Una dirección de 32 bits con dos campos para
la tabla de páginas.
(b) Tablas de páginas de dos niveles
15
Ejemplo direccionamiento

Espacio direcciones virtuales 232
4,294,967,296 4G Ejemplo dirección virtual
0x00403004 0000 0000 0100 0000 0011 0000 0000
0100 gt PT1 1 PT2 3 Offset 4
4M
12292 (dir. abs 4,206,592) a 16383 (dir. abs 4,
210,687)
x
PT2 3
8M
x contiene el número de marco de la página con
dirección 0x00403004
tabla 1

tabla 1023
16
Compartiendo páginas
- Posibilidad de compartir código en común -
Importante en tiempo compartido
Tabla Páginas de p1
Contexto del proceso p1
0
1
2
3
4
Tabla Páginas de p2
5
Contexto del proceso p2
6
7
8
9
10
Tabla Páginas de p3
Contexto del proceso p3
17
Desempeño paginación por demanda
  • Paginación por demanda puede tener un efecto
    importante sobre el desempeño de un sistema
  • Necesario calcular el tiempo de acceso efectivo
  • Tiempo acceso memoria (am) varía entre 10 y 200
    nanosegundos
  • Si no hay fallos tiempo acceso efectivo es el
    mismo que el tiempo de acceso a memoria
  • Si ocurre un fallo hay que leer del disco la
    página y luego acceder a la palabra deseada
  • Entonces
  • si p es la probabilidad de que ocurra un fallo,
  • cabe esperar que esta probabilidad es cercana a 0
  • el tiempo efectivo de acceso (tea) es
  • Para calcular lo anterior necesitamos saber
    cuánto tiempo toma resolver un fallo de página

18
Secuencia fallo de página
  • 1. Notificación al sistema operativo
  • 2. Guardar los registros del usuario y estado del
    proceso
  • 3. Determinar que la interrupción fue un fallo de
    página
  • 4. Verificar que la referencia a la página fue
    válida y determinar la posición de la página en
    disco
  • 5. Leer del disco a un marco libre
  • a. Esperar en la fila de espera de este
    dispositivo, hasta que se atienda la solicitud
    de lectura
  • b. Esperar durante el tiempo de búsqueda y/o
    latencia del dispositivo
  • c. Iniciar la transferencia de la página a un
    marco libre
  • 6. Durante la espera asignar la CPU a algún otro
    usuario
  • 7. Interrupción del disco (E/S terminada)
  • 8. Guardar los registros y el estado de proceso
    del otro usuario (si se llevó a cabo el paso 6)
  • 9. Determinar que la interrupción vino del disco
  • 10. Corregir la tabla de páginas y las demás
    tablas de modo que indiquen que la página ya esta
    en memoria
  • 11. Esperar que la CPU se asigne otra vez a este
    proceso
  • 12. Restaurar los registros de usuario, el estado
    de proceso y la nueva tabla de páginas y reanudar
    la ejecución interrumpida

19
Tiempo servicio fallo página
  • Tiene tres componentes
  • Atender la interrupción de fallo de página
  • Traer la página a la memoria
  • Reiniciar los procesos
  • Primera y última tarea podrían tomar entre 1 y
    100 microsegundos cada una
  • Tiempo intercambio
  • promedio latencia disco duro 15 microsgs
  • tiempo de búsqueda 8 milisgs
  • tiempo de transferencia 1 milisg
  • total 24 milisgs
  • Tiempo total paginación aprox. 25 milisgs
  • Solo se considera tiempo de servicio
  • si hay una cola de procesos hay que considerar el
    tiempo de espera para que el dispositivo este
    libre
  • Si tiempo acceso memoria es de 100 nanosegs, el
    tiempo de acceso efectivo es
  • tae (1-p) x (100) p ( 25 milisegs)
  • (1-p) x 100 p x 25,000,000
  • 100 24, 999,900 x p

20
Entonces ???
  • Tiempo de acceso efectivo es directamente
    proporcional a la frecuencia de los fallos de
    página
  • Si un acceso de cada 1000 causa un fallo de
    página, el tiempo de acceso efectivo será de 25
    microsegs
  • Desempeño se reduce en un factor de 250 a
    causa de la paginación por demanda !!!
  • Si se desea una degradación de menos del 10, se
    necesita que
  • 110 gt 100 25,000,000 x p
  • 10 gt 25,000,000 x p
  • p gt 0.0000004
  • Para mantener en un nivel razonable la reducción
    del desempeño sólo se puede permitir fallos de
    página en menos de uno de cada 2,500,000 accesos
    a memoria
  • Es importante mantener baja la frecuencia de
    fallos de página, de lo contrario el tiempo de
    acceso aumentará y frenará la ejecución de
    procesos,
  • Ejemplos disco fragmentado y poca RAM en
    Windows 95 vs área de swap en Linux

21
El reemplazo de páginas
  • Adoptan el enfoque si no hay marcos libres, se
    busca uno ocupado pero que no se este usando y lo
    liberamos
  • Un marco se libera escribiendo su contenido en el
    espacio de intercambio y modificando la tabla de
    páginas (y todas las demás) de tal forma que
    indiquen que la página ya no esta en la memoria
  • La rutina de atención de fallos de página se
    modifica de la siguiente forma
  • 1. Encontrar la página deseada en el disco
  • 2. Hallar un marco libre
  • a. Si hay un marco libre usarlo
  • b. Si no, usar un algoritmo de reemplazo de
    páginas para escoger un marco víctima
  • c. Escribir la página víctima en el disco
    modificar de manera acorde las tablas de páginas
    y de marcos
  • 3. Leer la página deseada y colocarla en el marco
    recién liberado modificar las tablas de páginas
    y de marcos
  • 4. Reiniciar el proceso usuario interrumpido
  • Si no hay marcos libres, se requieren dos
    transferencias de página (hacia afuera y hacia
    adentro), lo que duplica el tiempo de servicio
  • solución usar un bit de modificación o bit sucio

22
Estructura tabla de páginas

caching páginas asociadas a registros de
dispositivos referenciado 1 cuando se hace una
referencia a una página para leer o
escribir modificado recuperación marco, si
página no ha sido modificada no se escribe a
disco protección tipo acceso permitido, (0
lec/esc, 1 solo lectura) presente/ausente 1
entrada valida y puede ser utilizada 0
página no cargada en memoria
23
Algoritmos de reemplazo de páginas y algoritmos
de asignación de marco
  • Dos aspectos a cuidar en la implementación de la
    paginación por demanda
  • desarrollar un algoritmo de asignación de marco
  • desarrollar un algoritmo de reemplazo de páginas
  • En el primero, si se tienen varios procesos en
    memoria, hay que decidir cuántos marcos se
    asignarán a cada uno
  • En el último, si hay que reemplazar páginas hay
    que seleccionar cuales se reemplazarán

24
Algoritmos de reemplazo de páginas
  • Cómo escoger un algoritmo de reemplazo
    específico?
  • En general lo que se busca es el algoritmo con la
    frecuencia de fallos de página más baja
  • Evaluación
  • Se ejecuta con una serie específica de
    referencias a memoria y se calcula el número de
    fallos de página
  • serie específica serie de referencias
  • serie se puede generar en forma aleatoria o a
    partir del rastreo de un sistema dado
  • también se necesita saber el número de marcos que
    se dispone
  • a medida que aumenta el número de marcos, el
    número de fallos disminuye,
  • la adición de memoria física incrementa el número
    de marcos

25
Algoritmo Optimo

  • Cuando ocurre fallo página cierto conjunto de
    páginas se encuentran en memoria
  • En la siguiente instrucción se hará referencia a
    una de estas páginas (la página que contenga la
    dirección de uno de los operandos de la
    instrucción)
  • Otras páginas no se usarán hasta 20, 200 o 1500
    instrucciones más adelante
  • Cada página se va a etiquetar con
  • - Número de instrucciones a ejecutar antes de
    hacer la primera referencia a dicha página
  • Principio algoritmo
  • - Eliminar página con la máxima etiqueta
  • - Si una instrucción no va a ejecutarse durante
    8 millones de instrucciones y otra página se
    usará hasta dentro de 6 millones eliminar
    primera retrasa el fallo de página lo más
    posible
  • - Eliminar la página que más se va a tardar en
    ser referenciada

26
Algoritmo según el uso no tan reciente (NRU)

Computadoras tiene dos bits de estado asociados a
cada página R se activa si se hace
referencia a la página M se activa cuando se
escribe en la página Bits actualizados en cada
referencia a memoria. Si tales bits no existen en
hardware se pueden simular en software. Principio
Algoritmo - Al iniciar un proceso el S.O.
asigna 0 a R y M de todas las páginas -
En forma periódica se limpia el bit R, (para
distinguir páginas que no tengan referencia
de las que sí). - Fallo de página S.O.
inspecciona todas las páginas y las divide
en cuatro categorías, (según valores R y M
) caso 0 no referenciada, no
modificada caso 1 no referenciada, pero ha
sido modificada caso 2 se ha hecho
referencia, pero no modificada caso 3 se ha
hecho referencia y ha sido modificada
27
Algoritmo NRU (cont)
  • Algoritmo NRU elimina página de la primera clase
    no vacía con el número más pequeño, (número de
    clase).
  • Si todas tienen el mismo nivel se elimina el que
    llego primero
  • Hipótesis implícita
  • Es mejor eliminar una página modificada sin
    referencia en al menos un intervalo de reloj, que
    una página en blanco de uso frecuente.
  • Ventajas
  • Fácil de comprender
  • Implantación eficiente
  • Rendimiento que, aún sin ser el óptimo, sí es
    adecuado con mucha frecuencia.

28
Algoritmo FIFO
  • Principio los primeros en entrar, son los
    primeros en salir.
  • S.O. tiene una lista de todas las páginas en
    memoria, siendo la primera página la más antigua
    y la última la más reciente.
  • En un fallo de página se elimina la primera
    página y se añade la nueva al final de
    la lista.
  • FIFO es muy pocas veces usada en su forma más
    pura.

página que se cargó en 1er. lugar (1a. página en
salir)
página de carga más reciente (última página en
salir)
29
Algoritmo de la Segunda Oportunidad

Modificación simple de FIFO evita deshacerse de
una página de uso frecuente inspeccionando el
bit R de la página más antigua. si (R 0)
gt página antigua y no utilizada se
reemplaza en forma inmediata si (R1) gt el
bit se limpia la página se coloca al final de
la lista su tiempo de carga se actualiza

página que se cargó en 1er. lugar
página de carga más reciente
Una variante del algoritmo es usar dos bits M y R
para decidir si se da una segunda oportunidad
30
Algoritmo de Reemplazo de Reloj

Mantener páginas en una lista circular con forma
de reloj. Una manecilla apunta hacia la página
más antigua.
Al ocurrir un fallo de página se inspecciona la
página a la que apunta la manecilla. Si bit R 0
gt página se retira de memoria se
inserta nueva página en su lugar en el reloj
manecilla avanza una posición si no se busca
una página con R 0. Difiere del anterior sólo
por la implementación
31

Algoritmo de la menor uso reciente (LRU)
Páginas uso frecuente en las últimas
instrucciones se utilizan con cierta probabilidad
en las siguientes. Es probable que las páginas
que no hayan sido utilizadas durante mucho tiempo
permanezcan sin uso por bastante tiempo. Esto
induce al siguiente algoritmo al ocurrir un
fallo de página se elimina la página que no haya
sido utilizada durante el tiempo más
grande. Nombre estrategia LRU LRU realizable
en teoría, no es barato. Implementación
necesario mantener una lista de todas las páginas
en memoria, en donde la página de uso más
reciente este al pri ncipio de la lista y la de
uso menos reciente al final. Dificultad la
lista debe actualizarse en cada referencia a la
memoria. Búsqueda de la página en la lista, su
eliminación y posterior traslado al frente de la
misma NO puede ser una operación muy lenta.
32
1a. Solución caso más sencillo

Requiere de un contador de 64 bits, C, en
hardware. se incrementa en forma automática
después de cada instrucción. Cada entrada en
tabla de páginas debe contener espacio necesario
para almacenar el contador. Después de cada
referencia el valor actual de C se almacena en la
entrada de la tabla de páginas correspondiente a
la página a la que se hizo referencia. Fallo de
página gt S.O. examina todos los contadores de
la tabla de páginas y elige el mínimo,
(i.e. página de uso más reciente).
33
Ejemplo solución

Valor inicial cont 0
Referencias P0, P1, P3, P1
cont 1
cont 2
cont 3
cont 4
(42)
Página más recientemente usada P1, (cont
6) Página menos usada P2 , (cont 0)
34

2a. Solución caso más sencillo
Máquina con n marcos para página, hardware LRU
puede matriz de n x n, matriz inicializada en
cero. Referencia al marco k hardware primero
activa todos los bits del renglón k desactiva
después todos los bits de la columna k. En
cualquier instante renglón con valor binario
mínimo es de uso menos frecuente, renglón con
el siguiente valor más pequeño es el segundo
de uso menos reciente, etc.
35
Ejemplo de LRU con uso de una matriz

Máquina con cuatro marcos, con referencias a las
páginas en el orden 0, 1, 2, 3, 2, 1, 0, 3,
2, 3 Después hacer referencia a la página 0
tenemos la situación siguiente
36

Simulación LRU en software
LRU utiliza hardware especial. Si no existe tal
hardware gtgtgt solución implantar en
software Posibilidad usar algoritmo de uso no
frecuente o NFU necesita un contador en software
asociado a c/página valor inicial 0 En cada
interrupción de reloj, el S.O. examina todas las
páginas de la memoria el bit R (0 o 1) se suma
al contador (contadores son un intento por
llevar un registro de la frecuencia de
referencia de la página ). Principal problema
NFU nunca olvida.
37
Implementación LRU con pila
  • Mantener una pila de números de página
  • Cuando se hace referencia a una página se saca de
    la pila y se coloca arriba
  • De este modo, en el tope de la pila siempre esta
    la página más recientemente utilizada
  • Ya que es necesario sacar entradas de en medio de
    la pila, la mejor forma de implementar la pila es
    con una lista doblemente encadenada y con
    apuntadores al principio y al final
  • Cada actualización es costosa, pero no hay que
    buscar la página a reemplazar, uno de los
    apuntadores señala la página LRU
  • Implementación en software o microcódigo
  • Ejemplo serie referencias 4 7 0 7 1 0 1 0 1 2 1
    2 7 1 2

a b
pila antes de a
pila después de b
38
Algoritmos de conteo
  • Se podría mantener un contador del número de
    referencias que se han hecho a cada página
  • Se tienen dos esquemas LFU y MFU
  • Algoritmo LFU
  • Eliminar páginas menos frecuentemente usadas (no
    confundir LFU con LRU)
  • exige reemplazar la página con la cuenta más baja
  • una página que se ha usado activamente debe tener
    una cuenta de referencias grande
  • algoritmo castiga a páginas que se usaron mucho
    durante la fase inicial y luego no se vuelven a
    usar
  • Algoritmo MFU
  • eliminar páginas más frecuentemente usadas
  • se basa en el argumento de que la página con la
    cuenta más baja probablemente se acaba de traer a
    la memoria y todavía no se usa
  • Ni el algoritmo MFU ni el LFU son comunes
  • La implementación de estos algoritmos es
    relativamente costosa

39
Algoritmo colocación páginas en buffers
  • Muchos sistemas mantienen una reserva de marcos
    libres
  • Cuando ocurre un fallo de página, se escoge un
    marco víctima igual que antes
  • sin embargo la página deseada se coloca en un
    marco libre de la reserva antes de escribir la
    víctima en el disco
  • este procedimiento permite al proceso reiniciarse
    lo más pronto posible, sin esperar a que la
    página víctima se escriba en el disco
  • cuando la víctima termina de escribirse en el
    disco, su marco se añade a la reserva de marcos
    libres
  • Una variante es mantener una lista de páginas
    modificadas
  • siempre que dispositivo de paginación este
    ocioso, se escoge una página modificada y se
    escribe en el disco
  • después de lo cual se apaga su bit de
    modificación
  • esquema aumenta probabilidad de que una página
    este limpia cuando se le escoja para ser
    reemplazada, y no tenga que reescribirse

40
  • Otra variantes es mantener una reserva de marcos
    libres, pero recordar cuál página estaba en cada
    marco
  • el contenido de un marco no se modifica cuando la
    página que contiene se escribe en el disco
  • entonces es posible reutilizar la página vieja
    directamente de la reserva de marcos libres si
    llega a necesitarse antes de que vuelva a usarse
    ese marco
  • en tal caso, no habrá que efectuar E/S
  • cuando ocurre un fallo de página, primero se
    determina si la página deseada está en la reserva
    de marcos libres
  • so no es así, se escoge un marco libre y se
    coloca en él la nueva página

41

Algoritmo de maduración
Bits R para las páginas 0-5, en la marca de
reloj
Bits R para las páginas 0-5, en la marca de reloj
Bits R para las páginas 0-5, en la marca de reloj
Bits R para las páginas 0-5, en la marca de
reloj
Bits R para las páginas 0-5, en la marca de
reloj
Página
11000000
11100000
11110000
10000000
01111000
11000000
01100000
10110000
00100000
00010000
10001000
10000000
01000000
00100000
01100000
10110000
01011000
10100000
01010000
00101000
(a)
(b)
(c)
(d)
(e)
42
Asignación de marcos
  • Como repartir la cantidad fija de memoria libre
    entre los distintos procesos
  • Si se tienen 93 marcos libres y dos procesos
    cuantos marcos recibe cada proceso?
  • Caso más sencillo monousuario
  • memoria 128K y páginas de 1K
  • sistema operativo ocupa 35K gt 93 marcos libres
  • 93 marcos se colocan en lista de marcos libres
  • proceso inicia y va a recibir los 93 marcos,
    cuando requiera un 94, se aplica un algoritmo de
    reemplazo
  • al final proceso regresa los 93 marcos
  • otras opciones si sistema operativo no usa su
    espacio de buffers y tablas estos podrían apoyar
    la paginación de usuarios
  • resumiendo estrategia se asigna cualquier marco
    libre al proceso del usuario

43
Número mínimo de marcos
  • No es posible asignar más del total de marcos
    disponibles (a menos que se compartan las
    páginas)
  • Existe un número mínimo de marcos que se pueden
    asignar
  • número definido por la arquitectura del conjunto
    de instrucciones
  • contener páginas a las que una sola instrucción
    pueda hacer referencia (evitar reiniciar
    instrucción)
  • situación grave arquitecturas que permiten
    múltiples niveles de indirección
  • instrucción carga sencilla puede hacer referencia
    a una dirección indirecta (en otra página) que
    también puede hacer referencia a una dirección
    indirecta (en otra página)
  • solución indirecciones limitar los niveles de
    indirección, a través de un contador,
  • Número mínimo de marcos por proceso esta definido
    por la arquitectura, mientras que el número
    máximo esta definido por la cantidad de memoria
    física disponible
  • Menos marcos gt más fallos de página

44
Algoritmos de asignación
  • Asignación equitativa
  • La forma más fácil de dividir m marcos entre n
    procesos es dar a cada proceso una porción de m/n
    marcos
  • Por ejemplo 93 marcos y cinco procesos cada
    proceso recibirá 18 marcos, los tres marcos
    restantes pueden usarse como reserva
  • Asignación proporcional
  • diferentes procesos requieren diferentes
    cantidades de memoria
  • si un proceso (p1) requiere 10K y otro (p2) 127K
    y hay 62 marcos no es lógico asignar 31 marcos a
    cada uno
  • se asigna memoria disponible a cada proceso según
    su tamaño, entonces

45
  • Se debe ajustar ai de modo que sea un entero
    mayor que el número mínimo de marcos requeridos
    por el conjunto de instrucciones y que la
    sumatoria no exceda m
  • En el ejemplo anterior
  • 10/137 x 62 4 (p1 tendrá 4 marcos)
  • 127/137 x 62 57 (p2 tendrá 10 marcos)
  • Los procesos comparen recursos de acuerdo a su
    necesidad
  • Tanto en asignación equitativa como en
    proporcional la asignación a cada proceso puede
    variar según el nivel de multiprogramación
  • si el nivel se incrementa cada procesos perderá
    algunos marcos para proporcionar al nuevo proceso
  • si el nivel disminuye los marcos que se habían
    asignado al proceso que salió se pueden repartir
  • Tanto en asignación equitativa como proporcional
    un proceso de alta prioridad se trata igual que
    uno de baja prioridad
  • Para dar prioridad es posible emplear esquema
    asignación proporcional en el que la asignación
    de marcos no dependa de tamaños relativos de los
    procesos si no de su nivel de prioridad

46
Asignación global o local
  • Otro factor importante de como se asignan los
    marcos es el reemplazo de páginas
  • Si hay varios procesos compitiendo por los
    marcos, es posible clasificar algoritmos de
    reemplazo en reemplazo global y reemplazo local
  • Reemplazo global
  • permite a un proceso seleccionar un marco de
    reemplazo del conjunto de todos los marcos,
  • incluso si ese marco esta asignado a otro
    proceso, un proceso puede arrebatarle un marco a
    otro
  • por ejemplo, procesos con más prioridad
  • problema un proceso no puede controlar su propia
    frecuencia de fallos de página (proceso sólo
    selecciona marcos asignados a otros procesos)
  • Reemplazo local
  • el número de marcos asignado a un proceso no
    cambia
  • el conjunto de páginas de un proceso que están en
    la memoria sólo depende del comportamiento de
    paginación de ese proceso
  • podría obstaculizar ejecución de un proceso por
    no dejar que aproveche otras páginas de memoria
    de poco uso
  • Reemplazo global generalmente aumenta el
    rendimiento de un sistema, y es el más usado

47
La segmentación
- Paginación espacio direcciones
unidimensional, (0..max) - Dotar máquina de
varios espacios independientes de direcciones,
desde 0 hasta cierto máximo. - Los distintos
segmentos pueden tener longitudes distintas. -
La longitud de cada segmento puede ser
distinta - La longitud de un segmento puede
variar durante su ejecución - Acceso se hace en
dos partes número de segmento y una dirección
dentro de este - Un segmento puede tener la
protección adecuada para el tipo de objeto
almacenado
48

Espacio de direcciones virtuales
La tabla de símbolos se
Tabla de
ha encimado en la tabla
símbolos
del texto fuente
Texto fuente
Espacio de direcciones utilizado en este
momento por la tabla de constantes
Tabla de constantes
Espacio de direcciones
asignado a la tabla de
Libre
constantes
árbol léxico
Llamadas a la pila
49

Constantes
0
Una memoria segmentada permite que cada tabla
crezca o se reduzca en
forma independiente de las demás
50
La tabla de segmentos
Tabla de Segmentos
limite base
s
Memoria Principal
CPU
( s, d)
si
no
trap, error direccionamiento
51
Ejemplo segmentación
Espacio direcciones virtuales
1400
segmento 0
2400
segmento 3
segmento 0
3200
segmento 1
segmento 3
segmento 4
segmento 2
4300
segmento 2
4700
segmento 4
5700
6300
segmento 1
Memoria Principal
6700
52
Compartiendo Segmentos
Memoria Virtual
Tabla Segmentos P1
limite base 0 25286 43062 1
4425 68348
43062
editor
Espacio direcciones virtuales de P1
68348
datos 1
72773
90003
datos 2
98553
Espacio direcciones virtuales de P2
53
Combinando paginación y segmentación
dirección virtual
d
s
STBR s
no
trap
(base tabla) p
Memoria Principal
f
f d
dirección física
Tabla de páginas para segmento s
54
Esquema MULTICS
- Direcciones virtuales 18 bits de número de
segmento 16 bits de offset - Necesarias igual
número de entradas en tabla segmentos y
segmentos (no debe de haber entradas vacías) -
Segmentos palabras de 64K - Paginar los
segmentos cualquier marco vacío puede ser usado
para una determinada página
Descriptor del segmento
18
9
1 1 1
3
3
Direcciones en memoria princi- pal de la tabla de
paginación
Longitud del seg- mento (en páginas)
bits diversos
bits protección
Dirección virtual 34 bits
18
6 10
55
Interpretación de una dirección en MULTICS
Dirección lógica
tabla de páginas de la tabla de segmentos
página de la tabla de segmentos
tabla de páginas del segmentos
página del segmento
56
Comparación paginación segmentación
Motorola 68000 paginación Intel 8086
segmentación
57

Cerrado en un
bit de
memoria
Solicitando
En tránsito
Entrada del mapa central
Libre
Texto / datos / pila
Código del orden del bloque
Indice en la tabla de procesos
Número de bloque en disco
Ajuste dentro del segmento
Número del dispositivo en disco
Indice de la siguiente entrada
Indice de la entrada superior
Entradas del mapa
central, uno por
cada marco de página
3
2
1
Núcleo de UNIX
4.3BSD
Memoria para páginas
Memoria para páginas
Memoria para páginas
0
Memoria para páginas
Memoria principal
Write a Comment
User Comments (0)
About PowerShow.com