Sistemas Operativos
BENÍTEZ, ANA MARÍA
FERNANDEZ HUNKO, DIEGO
1
Profesorado Universitario de Computación
AGENDA
 Memoria Virtual Paginada
 Paginación por demanda
 Fallo de página
 Tabla de páginas.
 Reemplazo de página.
 Algoritmos de reemplazo
 Ejemplos de implementación en Linux y Windows 10.
2
Jerarquía de Memoria del
computador
3
VELOCIDAD
COSTE POR BIT
CAPACIDAD
Memoria Virtual
4
• Técnica que permite la ejecución de procesos que no se
encuentran cargados en memoria principal.
• La idea es mantener en memoria principal sólo los
fragmentos de cada proceso que se estén utilizando.
• La MMU se encarga de mapear las direcciones virtuales
a físicas
Implementación
5
Ventajas de MV
Los programas no estarán restringido por la cantidad de
memoria física disponible.
Ejecutar mayor cantidad de programas al mismo tiempo.
Menos operaciones de E/S para cargar o intercambiar
cada programa de usuario.
Libera al programador de la preocupación de que sus
programas quepan en memoria.
Optimiza el uso de memoria.
6
Desventajas de MV
El sistema puede comportarse de manera más lenta debido a
la gran carga de los datos.
Ocupa un área de disco duro que queda reservada solo para
ella y el resto del sistema no puede contar con ella.
No resulta fácil implementarla
7
Esquema general de Memoria Virtual
8
Espacio de direcciones virtuales
9
 De un proceso hace referencia a la
forma lógica de almacenar un proceso
en memoria.
 Esta forma consiste en que el proceso
comienza en una cierta dirección lógica
(ejemplo, dirección 0) y está almacenado
de forma contigua en la memoria.
Espacio de direcciones virtuales
Paginación bajo demanda
 Trae una página a memoria sólo cuando hace falta
 La E/S se reduce
 Se requiere menos memoria
 La respuesta es más rápida
 Puede haber más procesos en memoria
 Se necesita una página  la página es referenciada
 referencia inválida  aborta
 no está en memoria  se trae a memoria
 “Intercambiador” perezoso
 El intercambiador que trabaja con páginas es un paginador
10
Bit de Validez
 En cada entrada de la tabla de páginas hay un bit de validez
v  en memoria,
 i  no en memoria o acceso ilegal
 Al comienzo el bit de validez es inicializado a i en todas las entradas
 Ejemplo de tabla de páginas:
 Durante la traducción de direcciones, si el bit de validez de la entrada
de la tabla de páginas es i  fallo de página 11
Tabla de Páginas
12
Son una parte integral del Sistema
de Memoria Virtual en sistemas
operativos, cuando se utiliza
paginación.
Permite marcar una entrada como
inválida mediante un bit válido-
inválido o mediante un valor
especial de una serie de bits de
protección.
Tabla de páginas cuando algunas páginas no se
encuentran en MP
¿Qué sucede si se trata de acceder a una página
y esta no está en memoria?
13
Fallo de Página
Fallo de Página
14
Procedimiento para el manejo de un Fallo de
Páginas
15
16
17
18
19
20
21
Hardware necesario para soportar
Paginación bajo demanda
Tabla de página: Permite marcar una entrada como inválida
mediante un bit válido-inválido o mediante un valor especial de
una serie de bits de protección.
Memoria secundaria: Almacena aquellas páginas que no están
presentes en memoria principal.
Disco de alta velocidad  dispositivo de intercambio
Sección  espacio de intercambio
22
Rendimiento de la paginación bajo
demanda
Es crucial mantener una tasa de fallos de página baja en
los sistemas de paginación bajo demanda.
Si no es así, el tiempo efectivo de acceso incrementa,
ralentizando enormemente la ejecución de los procesos.
23
Sustitución de páginas
Utiliza la siguiente técnica:
Si no hay ningún marco libre, localiza uno que no
esté siendo actualmente utilizado y lo liberamos.
Podemos liberar escribiendo su contenido en el
espacio de intercambio y modificando la tabla de
página (y demás tablas) para indicar que esa
página ya NO se encuentra en memoria.
24
Sustitución de Páginas
25
Rutina de servicio del fallo de
página
26
1. Hallar la ubicación de la página deseada dentro del disco.
2. Localizar un marco libre:
a) Si hay marco libre, utilizarlo
b) Si no hay marco libre, usar un algoritmo de reemplazo de página
para escoger un marco víctima.
c) Escribir la página víctima en el disco y actualizar tablas
3. Leer la página del disco y colocarla en el marco recién liberado y
actualizar tablas
4. Finalmente reiniciar el proceso de usuario.
Sustitución de Páginas
Si NO hay marco libre se necesitan 2 transferencias de páginas:
Una de carga y otra de descarga.
Duplica el tiempo de servicio del fallo de página e incrementa
correspondientemente el tiempo efectivo de acceso.
.
Podemos reducir la sobrecarga por transferencias de páginas
# Se usa el bit de modificación ( o bit sucio): sólo las páginas
modificadas se escriben a disco
Activado
No Activada
27
Sustitución de páginas
• Con la paginación bajo demanda, el tamaño del espacio
lógico de direcciones ya no está restringido por la memoria
física.
• Dos problemas a resolver cuando utilizamos paginación
bajo demanda:
•  Algoritmo de asignación de marcos
 Algoritmo de sustitución de páginas
• Probablemente cada SO tenga su propio esquema de
sustitución
28
Algoritmos de Reemplazo de Páginas
Los algoritmos se EVALUAN ejecutándolos sobre una
cadena de referencias a memoria y calculando el
número de fallos de página producidos con esa cadena.
29
¿Cómo podemos seleccionar un algoritmo de sustitución concreto?
TASA DE FALLOS DE PÁGINAS MÁS BAJA
Generar cadenas de referencias
Forma artificial
(generador de número aleatorios)
# Obtener una traza de un sistema
determinado y
registrar la dirección de cada
referencia de memoria
Número de fallos de página
Cadena de referencias
Algoritmo de sustitución
Número de Marcos de página disponible.
Incrementa el número de marcos, reduce el
número de fallos de páginas.
30
Fallos de página en función del
número de marcos de Página
Cadena de referencia: 1, 4, 1, 6, 1, 6, 1, 6, 1
3 o más marcos de páginas  3 fallos de página
Uno para la primera referencia a cada página.
1 solo marco  11 fallos de página
Tendríamos una sustitución por cada referencia
31
Gráfica fe fallos de página
en función de número de
marcos
Algoritmo FIFO (First-In-First-Out)
Primero en entrar, primero en salir
32
• Es el algoritmo más sencillo para el reemplazo de página.
• Asocia a cada página el momento en que ésta fue traída a memoria.
• Cuando una página debe ser reemplazada
• se selecciona a la más antigua.
• Una cola FIFO: almacenar todas las páginas en memoria y sustituir la
situada al principio de la cola.
Es fácil de entender y programar Su rendimiento no es bueno
Reemplazo de Páginas FIFO
33
• Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
• 3 marcos de páginas
• 15 fallos de páginas.
Reemplazo de Páginas FIFO
34
• Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
• 3 marcos de páginas
• 15 fallos de páginas.
Cadena de referencia: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
35
• 3 marcos de páginas  9 fallos de páginas
• 4 marcos de páginas  10 fallos de páginas
Anomalía de Belady
36
Algoritmo Óptimo
Reemplaza la página que no será usada por el período
de tiempo más largo.
Ejemplo con 4 marcos
Garantiza la tasa de fallos de página más baja posible.
37
• 3 marcos de páginas  9 fallos de páginas
• Mucho mejor ya que solo 9 fallos de páginas ante 15 de FIFO
Algoritmo Óptimo
Reemplaza la página que no será usada por el período
de tiempo más largo.
Ejemplo con 4 marcos
Garantiza la tasa de fallos de página más baja posible.
38
• 3 marcos de páginas  9 fallos de páginas
Este algoritmo se usa para estudiar los accesos futuros a memoria el rendimiento
de otros. Ya que no se puede implementar.
Algoritmo LRU (Least Recently Used)
Menos usadas recientemente
39
• 3 marcos de páginas  12 fallos de páginas
• Mucho mejor ya que solo 12 fallos de páginas ante 15 de FIFO
Problema de Algoritmo LRU
40
Implementaciones
Contadores Pila
Algoritmo LRU - Contadores
41
Implementaciones
 Caso más sencillo.
 Cada entrada de página tiene un contador, cada ves que la página es
referenciada se copia la hora en el contador.
 Cundo una pagina necesita ser cambiada, se miran los contadores para
determinar cúal se cambia.
 Requiere una búsqueda en la tabla de páginas para localizar la menos
usada recientemente
Algoritmo LRU - Pila
42
 Se mantiene una pila de números de páginas:
 cada vez que se hace referencia a una página, se extrae esa página de la pila
y se coloca en la parte superior.
 La página más recientemente usada estará siempre en la parte superior
 La menos recientemente utilizada en la inferior.
43 / 7
Aproximación LRU
Concepto básico
Bit de referencia, si el valor del bit es 1 la página
fue accedida (lectura o escritura.)
Después un tiempo se puede determinar qué
páginas fueron usadas examinando el bit de
referencia, pero no en que orden.
44 / 7
Algoritmo de los bits de
referencia adicionales
Para cada página se tienen p.e. 8 bits, a intervalos
regulares se modifica un bit marcando si se
referenció la pág. transformado a decimal el
valor más chico se selecciona para reemplazar.
45 / 7
Algoritmo de segunda
oportunidad (del Reloj)
Se evalúa su bit de referencia:
 Si es 1, la pág se usó, se cambia a 0 y se pasa a la
siguiente página.
 Si es 0 se reemplaza esa página
 Implementación con una cola circular, el puntero
apunta a la posible víctima.
46 / 7
Algoritmo de segunda
oportunidad mejorado
Al bit de referencia se le agrega un bit de modificación.
Tomados como par ordenado:
 (0,0) no referenciada y no modificado, víctima ideal,
 (0,1) no usada recientemente pero modificada, no tan
buena, hay que descargarla al disco
 (1,0) se usó pero no se modificó, posiblemente se vuelva a
usar
 (1,1) referenciada y modificada, posiblemente se use y hay
que escribirla a disco.
47 / 7
Reemplazo basado en contador
LFU (Least Frecuently Used, menos frecuentemente
usado) la pág. con el contador más chico se
reemplaza. Contador alto pagina en uso activo.
MFU (Most Frecuently Used, mas frecuentemente
usado), se reemplaza la que tenga el contador
más alto. Contador bajo página recién cargada.
48 / 7
¿Cómo asignamos los marcos a los procesos?
49 / 7
Asignación equitativa

Es fácil

Dado m marcos disponibles y n procesos,
asignamos m/n marcos a cada proceso.

¿Problema?
 Un proceso puede no necesitar tantos marcos
los cuales se desperdician.

¿Solución?
50 / 7
Asignación proporcional

Se asignan dependiendo del tamaño del proceso.
 A cada proceso pi
se le asignan ai
= (si
/S) x m
marcos,
 Donde :
 si
: tamaño de la memoria virtual para pi
 S: total de marcos necesarios (S = Σ si
)

m: total de marcos disponibles
51 / 7
Asignación proporcional (cont.)
 ai
tiene que ser un número mayor que número mínimo
de marcos requeridos, sin exceder la suma de m.

Si se incrementa la multiprogramación los procesos
reciben menos marcos.

Procesos de alta y baja prioridad tratados de igual
manera.
 Asignar según la prioridad o una combinación de
tamaño y prioridad
52 / 7
Asignación global y local

Reemplazo global: se escoge para reemplazar
un marco de cualquier proceso, un proceso
puede tomar un marco de otro

Reemplazo local: se escoge para reemplazar un
marco del proceso que necesita la página
53 / 7
Sobrepaginación,
Hiperpaginación, Thrashing

Un proceso pasa más tiempo paginando que
ejecutándose

El uso de CPU cae

El SO agrega un nuevo proceso para aumentar la
multiprogramación.
54 / 7
Hiper-paginación: soluciones
 Reducir el grado de multi-programación.
 Utilizar algoritmo de sustitución local.
 Asignar tantas páginas como necesite.
 ¿Cómo saber?
55 / 7
Conjunto de trabajo
 Basado en la localidad de un programa
 Dado Δ, que es una ventana del conjunto de
trabajo
 Éste será igual a las últimas Δ referencias.
 Si Δ es pequeño, el conjunto no abarca la
localidad completa. Muy grande, solapamiento de
localidades. Infinito conjunto es igual a las págs.
utilizadas.
56 / 7
Conjunto de trabajo (cont.)
 Propiedad importante, tamaño del conjunto de
trabajo WSSi
, para cada proceso.
 Si la demanda total D = Σ WSSi
es mayor a m
habrá sobre hiper-paginación.
 D < m, se puede agregar un nuevo proceso, sino
el SO suspende uno y reasigna sus marcos.
57 / 7
Frecuencia de fallos de página
 Dada una tasa de fallos de página, establecer un
límite superior y uno inferior
 Por encima del límite superior asignar más
marcos
 Por debajo quitar marcos a ese proceso.
Ejemplos de Sistemas Operativos
58
Windows 10
• Sistemas de 32 bits
 el espacio de direcciones virtuales predeterminado de un proceso es de 2
GB, puede ampliarse a 3 GB.
 Admiten 4GB de memoria Física
Implementa la mayoría de las características de administración de memoria:
 Bibliotecas compartidas
 Paginación a demanda
 Copia en escritura, paginación
 Compresión de memoria....
• Sistemas de 64 bits
 el espacio de direcciones virtuales predeterminado de un proceso es de 128
TB, puede ampliarse a 3 GB.
 Admiten 24 TB de memoria Física
Ejemplos de Sistemas Operativos
59
Windows 10
• Implementa paginación de demanda con agrupamiento.
• Administración de conjuntos de trabajos.
• Usa el algoritmo de reloj de aproximación LRU, con una
combinación de políticas de reemplazo de página locales y
globales. El administrador de memoria virtual mantiene una lista
de marcos de página libres

memoria virtual clase sistemas operativos

  • 1.
    Sistemas Operativos BENÍTEZ, ANAMARÍA FERNANDEZ HUNKO, DIEGO 1 Profesorado Universitario de Computación
  • 2.
    AGENDA  Memoria VirtualPaginada  Paginación por demanda  Fallo de página  Tabla de páginas.  Reemplazo de página.  Algoritmos de reemplazo  Ejemplos de implementación en Linux y Windows 10. 2
  • 3.
    Jerarquía de Memoriadel computador 3 VELOCIDAD COSTE POR BIT CAPACIDAD
  • 4.
    Memoria Virtual 4 • Técnicaque permite la ejecución de procesos que no se encuentran cargados en memoria principal. • La idea es mantener en memoria principal sólo los fragmentos de cada proceso que se estén utilizando. • La MMU se encarga de mapear las direcciones virtuales a físicas
  • 5.
  • 6.
    Ventajas de MV Losprogramas no estarán restringido por la cantidad de memoria física disponible. Ejecutar mayor cantidad de programas al mismo tiempo. Menos operaciones de E/S para cargar o intercambiar cada programa de usuario. Libera al programador de la preocupación de que sus programas quepan en memoria. Optimiza el uso de memoria. 6
  • 7.
    Desventajas de MV Elsistema puede comportarse de manera más lenta debido a la gran carga de los datos. Ocupa un área de disco duro que queda reservada solo para ella y el resto del sistema no puede contar con ella. No resulta fácil implementarla 7
  • 8.
    Esquema general deMemoria Virtual 8
  • 9.
    Espacio de direccionesvirtuales 9  De un proceso hace referencia a la forma lógica de almacenar un proceso en memoria.  Esta forma consiste en que el proceso comienza en una cierta dirección lógica (ejemplo, dirección 0) y está almacenado de forma contigua en la memoria. Espacio de direcciones virtuales
  • 10.
    Paginación bajo demanda Trae una página a memoria sólo cuando hace falta  La E/S se reduce  Se requiere menos memoria  La respuesta es más rápida  Puede haber más procesos en memoria  Se necesita una página  la página es referenciada  referencia inválida  aborta  no está en memoria  se trae a memoria  “Intercambiador” perezoso  El intercambiador que trabaja con páginas es un paginador 10
  • 11.
    Bit de Validez En cada entrada de la tabla de páginas hay un bit de validez v  en memoria,  i  no en memoria o acceso ilegal  Al comienzo el bit de validez es inicializado a i en todas las entradas  Ejemplo de tabla de páginas:  Durante la traducción de direcciones, si el bit de validez de la entrada de la tabla de páginas es i  fallo de página 11
  • 12.
    Tabla de Páginas 12 Sonuna parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginación. Permite marcar una entrada como inválida mediante un bit válido- inválido o mediante un valor especial de una serie de bits de protección. Tabla de páginas cuando algunas páginas no se encuentran en MP
  • 13.
    ¿Qué sucede sise trata de acceder a una página y esta no está en memoria? 13
  • 14.
  • 15.
    Procedimiento para elmanejo de un Fallo de Páginas 15
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    Hardware necesario parasoportar Paginación bajo demanda Tabla de página: Permite marcar una entrada como inválida mediante un bit válido-inválido o mediante un valor especial de una serie de bits de protección. Memoria secundaria: Almacena aquellas páginas que no están presentes en memoria principal. Disco de alta velocidad  dispositivo de intercambio Sección  espacio de intercambio 22
  • 23.
    Rendimiento de lapaginación bajo demanda Es crucial mantener una tasa de fallos de página baja en los sistemas de paginación bajo demanda. Si no es así, el tiempo efectivo de acceso incrementa, ralentizando enormemente la ejecución de los procesos. 23
  • 24.
    Sustitución de páginas Utilizala siguiente técnica: Si no hay ningún marco libre, localiza uno que no esté siendo actualmente utilizado y lo liberamos. Podemos liberar escribiendo su contenido en el espacio de intercambio y modificando la tabla de página (y demás tablas) para indicar que esa página ya NO se encuentra en memoria. 24
  • 25.
  • 26.
    Rutina de serviciodel fallo de página 26 1. Hallar la ubicación de la página deseada dentro del disco. 2. Localizar un marco libre: a) Si hay marco libre, utilizarlo b) Si no hay marco libre, usar un algoritmo de reemplazo de página para escoger un marco víctima. c) Escribir la página víctima en el disco y actualizar tablas 3. Leer la página del disco y colocarla en el marco recién liberado y actualizar tablas 4. Finalmente reiniciar el proceso de usuario.
  • 27.
    Sustitución de Páginas SiNO hay marco libre se necesitan 2 transferencias de páginas: Una de carga y otra de descarga. Duplica el tiempo de servicio del fallo de página e incrementa correspondientemente el tiempo efectivo de acceso. . Podemos reducir la sobrecarga por transferencias de páginas # Se usa el bit de modificación ( o bit sucio): sólo las páginas modificadas se escriben a disco Activado No Activada 27
  • 28.
    Sustitución de páginas •Con la paginación bajo demanda, el tamaño del espacio lógico de direcciones ya no está restringido por la memoria física. • Dos problemas a resolver cuando utilizamos paginación bajo demanda: •  Algoritmo de asignación de marcos  Algoritmo de sustitución de páginas • Probablemente cada SO tenga su propio esquema de sustitución 28
  • 29.
    Algoritmos de Reemplazode Páginas Los algoritmos se EVALUAN ejecutándolos sobre una cadena de referencias a memoria y calculando el número de fallos de página producidos con esa cadena. 29 ¿Cómo podemos seleccionar un algoritmo de sustitución concreto? TASA DE FALLOS DE PÁGINAS MÁS BAJA Generar cadenas de referencias Forma artificial (generador de número aleatorios) # Obtener una traza de un sistema determinado y registrar la dirección de cada referencia de memoria
  • 30.
    Número de fallosde página Cadena de referencias Algoritmo de sustitución Número de Marcos de página disponible. Incrementa el número de marcos, reduce el número de fallos de páginas. 30
  • 31.
    Fallos de páginaen función del número de marcos de Página Cadena de referencia: 1, 4, 1, 6, 1, 6, 1, 6, 1 3 o más marcos de páginas  3 fallos de página Uno para la primera referencia a cada página. 1 solo marco  11 fallos de página Tendríamos una sustitución por cada referencia 31 Gráfica fe fallos de página en función de número de marcos
  • 32.
    Algoritmo FIFO (First-In-First-Out) Primeroen entrar, primero en salir 32 • Es el algoritmo más sencillo para el reemplazo de página. • Asocia a cada página el momento en que ésta fue traída a memoria. • Cuando una página debe ser reemplazada • se selecciona a la más antigua. • Una cola FIFO: almacenar todas las páginas en memoria y sustituir la situada al principio de la cola. Es fácil de entender y programar Su rendimiento no es bueno
  • 33.
    Reemplazo de PáginasFIFO 33 • Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 • 3 marcos de páginas • 15 fallos de páginas.
  • 34.
    Reemplazo de PáginasFIFO 34 • Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 • 3 marcos de páginas • 15 fallos de páginas.
  • 35.
    Cadena de referencia:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 35 • 3 marcos de páginas  9 fallos de páginas • 4 marcos de páginas  10 fallos de páginas
  • 36.
  • 37.
    Algoritmo Óptimo Reemplaza lapágina que no será usada por el período de tiempo más largo. Ejemplo con 4 marcos Garantiza la tasa de fallos de página más baja posible. 37 • 3 marcos de páginas  9 fallos de páginas • Mucho mejor ya que solo 9 fallos de páginas ante 15 de FIFO
  • 38.
    Algoritmo Óptimo Reemplaza lapágina que no será usada por el período de tiempo más largo. Ejemplo con 4 marcos Garantiza la tasa de fallos de página más baja posible. 38 • 3 marcos de páginas  9 fallos de páginas Este algoritmo se usa para estudiar los accesos futuros a memoria el rendimiento de otros. Ya que no se puede implementar.
  • 39.
    Algoritmo LRU (LeastRecently Used) Menos usadas recientemente 39 • 3 marcos de páginas  12 fallos de páginas • Mucho mejor ya que solo 12 fallos de páginas ante 15 de FIFO
  • 40.
    Problema de AlgoritmoLRU 40 Implementaciones Contadores Pila
  • 41.
    Algoritmo LRU -Contadores 41 Implementaciones  Caso más sencillo.  Cada entrada de página tiene un contador, cada ves que la página es referenciada se copia la hora en el contador.  Cundo una pagina necesita ser cambiada, se miran los contadores para determinar cúal se cambia.  Requiere una búsqueda en la tabla de páginas para localizar la menos usada recientemente
  • 42.
    Algoritmo LRU -Pila 42  Se mantiene una pila de números de páginas:  cada vez que se hace referencia a una página, se extrae esa página de la pila y se coloca en la parte superior.  La página más recientemente usada estará siempre en la parte superior  La menos recientemente utilizada en la inferior.
  • 43.
    43 / 7 AproximaciónLRU Concepto básico Bit de referencia, si el valor del bit es 1 la página fue accedida (lectura o escritura.) Después un tiempo se puede determinar qué páginas fueron usadas examinando el bit de referencia, pero no en que orden.
  • 44.
    44 / 7 Algoritmode los bits de referencia adicionales Para cada página se tienen p.e. 8 bits, a intervalos regulares se modifica un bit marcando si se referenció la pág. transformado a decimal el valor más chico se selecciona para reemplazar.
  • 45.
    45 / 7 Algoritmode segunda oportunidad (del Reloj) Se evalúa su bit de referencia:  Si es 1, la pág se usó, se cambia a 0 y se pasa a la siguiente página.  Si es 0 se reemplaza esa página  Implementación con una cola circular, el puntero apunta a la posible víctima.
  • 46.
    46 / 7 Algoritmode segunda oportunidad mejorado Al bit de referencia se le agrega un bit de modificación. Tomados como par ordenado:  (0,0) no referenciada y no modificado, víctima ideal,  (0,1) no usada recientemente pero modificada, no tan buena, hay que descargarla al disco  (1,0) se usó pero no se modificó, posiblemente se vuelva a usar  (1,1) referenciada y modificada, posiblemente se use y hay que escribirla a disco.
  • 47.
    47 / 7 Reemplazobasado en contador LFU (Least Frecuently Used, menos frecuentemente usado) la pág. con el contador más chico se reemplaza. Contador alto pagina en uso activo. MFU (Most Frecuently Used, mas frecuentemente usado), se reemplaza la que tenga el contador más alto. Contador bajo página recién cargada.
  • 48.
    48 / 7 ¿Cómoasignamos los marcos a los procesos?
  • 49.
    49 / 7 Asignaciónequitativa  Es fácil  Dado m marcos disponibles y n procesos, asignamos m/n marcos a cada proceso.  ¿Problema?  Un proceso puede no necesitar tantos marcos los cuales se desperdician.  ¿Solución?
  • 50.
    50 / 7 Asignaciónproporcional  Se asignan dependiendo del tamaño del proceso.  A cada proceso pi se le asignan ai = (si /S) x m marcos,  Donde :  si : tamaño de la memoria virtual para pi  S: total de marcos necesarios (S = Σ si )  m: total de marcos disponibles
  • 51.
    51 / 7 Asignaciónproporcional (cont.)  ai tiene que ser un número mayor que número mínimo de marcos requeridos, sin exceder la suma de m.  Si se incrementa la multiprogramación los procesos reciben menos marcos.  Procesos de alta y baja prioridad tratados de igual manera.  Asignar según la prioridad o una combinación de tamaño y prioridad
  • 52.
    52 / 7 Asignaciónglobal y local  Reemplazo global: se escoge para reemplazar un marco de cualquier proceso, un proceso puede tomar un marco de otro  Reemplazo local: se escoge para reemplazar un marco del proceso que necesita la página
  • 53.
    53 / 7 Sobrepaginación, Hiperpaginación,Thrashing  Un proceso pasa más tiempo paginando que ejecutándose  El uso de CPU cae  El SO agrega un nuevo proceso para aumentar la multiprogramación.
  • 54.
    54 / 7 Hiper-paginación:soluciones  Reducir el grado de multi-programación.  Utilizar algoritmo de sustitución local.  Asignar tantas páginas como necesite.  ¿Cómo saber?
  • 55.
    55 / 7 Conjuntode trabajo  Basado en la localidad de un programa  Dado Δ, que es una ventana del conjunto de trabajo  Éste será igual a las últimas Δ referencias.  Si Δ es pequeño, el conjunto no abarca la localidad completa. Muy grande, solapamiento de localidades. Infinito conjunto es igual a las págs. utilizadas.
  • 56.
    56 / 7 Conjuntode trabajo (cont.)  Propiedad importante, tamaño del conjunto de trabajo WSSi , para cada proceso.  Si la demanda total D = Σ WSSi es mayor a m habrá sobre hiper-paginación.  D < m, se puede agregar un nuevo proceso, sino el SO suspende uno y reasigna sus marcos.
  • 57.
    57 / 7 Frecuenciade fallos de página  Dada una tasa de fallos de página, establecer un límite superior y uno inferior  Por encima del límite superior asignar más marcos  Por debajo quitar marcos a ese proceso.
  • 58.
    Ejemplos de SistemasOperativos 58 Windows 10 • Sistemas de 32 bits  el espacio de direcciones virtuales predeterminado de un proceso es de 2 GB, puede ampliarse a 3 GB.  Admiten 4GB de memoria Física Implementa la mayoría de las características de administración de memoria:  Bibliotecas compartidas  Paginación a demanda  Copia en escritura, paginación  Compresión de memoria.... • Sistemas de 64 bits  el espacio de direcciones virtuales predeterminado de un proceso es de 128 TB, puede ampliarse a 3 GB.  Admiten 24 TB de memoria Física
  • 59.
    Ejemplos de SistemasOperativos 59 Windows 10 • Implementa paginación de demanda con agrupamiento. • Administración de conjuntos de trabajos. • Usa el algoritmo de reloj de aproximación LRU, con una combinación de políticas de reemplazo de página locales y globales. El administrador de memoria virtual mantiene una lista de marcos de página libres

Notas del editor

  • #3 La mayoría de los ordenadores se organizan en cinco tipos de memoria: registros en la CPU , la memoria cache, la memoria RAM, el disco duro. Y también unidades de almacenamiento En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad. Este detalle impacta en la performance el proceso de Memoria Virtual. La MV utiliza dos niveles de la jerarquía: La MP y Disco duro o disco de respaldo. Para su funcionamiento la MV exige una gestión automática entre estos dos niveles.
  • #4 Una de las principales ventajas de este esquema es los programas pueden tener un tamaño mayor que la propia memoria física. Además, la memoria virtual abstrae la memoria principal, transformándola conceptualmente en una matriz uniforme y extremadamente grande de posiciones de almacenamiento, separando así la memoria lógica de la física. Cada proceso tiene su propio espacio de direccionamiento virtual (o lógico) y la UNIDAD DE GESTION DE MEMORIA (MMU) es la que se encarga de Mapear las direcciones virtuales a físicas.
  • #5 La memoria virtual se puede implementar por Paginación bajo demanda O Segmentación bajo demanda
  • #6 Proporciona un mecanismo eficiente para la creación de procesos.
  • #7 Si no se utiliza adecuadamente puede reducir sustancialmente el rendimiento del sistema. Jamás una configuración de Más memoria virtual podrá ser mejor que una ampliación de memoria RAM
  • #8 Entonces la MV es la Separación de la memoria lógica, tal como la percibe el usuario, con respecto a la memoria física. Proporciona una memoria virtual extremadamente grande, solo cuando está disponible una memoria física de menor tamaño.
  • #9 La memoria física puede estar organizada en marcos de páginas y estos estar asignados a un proceso pueden no ser contiguas. Es responsabilidad de la UNIDAD DE GESTION DE MEMORIA MMU establecer la correspondencia entre esas páginas lógicas y los marcos de pagina física de la memoria.
  • #10 Es una estrategia que consiste en cargar inicialmente las páginas únicamente cuando sean necesarias. Se utiliza justamente en los sistemas de MV Consta de cargar durante la ejecución el programa solo cuando necesita las páginas. Si no se acceden a algunas página estas nunca se cargarán en memoria. -Es similar a un sistema de paginación con intercambio en la que los procesos residen en memoria secundaria (disco) Pero en lugar de intercambiar un proceso completo usamos un intercambiador perezoso. JAMÁS INTERCAMBIAR UNA PÁGINA CON LA MEMORIA A MENOS QUE ESTA VAYA SER NECESARIA.
  • #11 Para este esquema necesitamos algún tipo de soporte HW que distinga que página se encuentra en memoria y cual reside en el disco. Podemos usar para ello un esquema basado en un bit válido-inválido.
  • #12 La entrada de la tabla de páginas correspondiente a una página que no se encuentra actualmente en memoria se marcará como inválido y contendrá la dirección de la página dentro del disco. El proceso no tendrá ningún efecto si nunca intenta acceder a la página
  • #14 El acceso de una página marcada como inválida provoca una interrupción de fallo de página. El HW de paginación, al traducir la dirección mediante la tabla de página, detectará que el bit de pagina está activado, provocando una interrupción dirigida al sistema operativo.
  • #15 Éste procedimiento es muy sencillo:
  • #16 Comprobamos una tabla interna correspondiente a este proceso, para determinar si la referencia era un acceso de memoria válido o inválido.
  • #17 Si la referencia era inválida, terminamos el proceso. Si era válida pero esa página todavía no ha sido cargada, la cargamos en memoria.
  • #18 Buscamos un marco libre
  • #19 Ordenamos una operación de disco para leer la página deseada en el marco recién asignado
  • #20 Una vez completada la lectura del disco, modificamos la tabla interna que se mantiene con los datos del proceso y la tabla de páginas para indicar que dicha página se encuentra ahora en memoria
  • #21 Reiniciamos la instrucción interrumpida. El proceso podrá ahora acceder a la página como si siempre hubiera estado en memoria. Un requisito fundamental para la paginación bajo demanda es la necesidad de poder reiniciar cualquier instrucción después de un fallo de página. Al reiniciar el proceso en exactamente el mismo lugar y con el mismo estado. Salvo que ahora la página se encontrará en memoria y será accesible.
  • #22  Usar Disco de estado solido tiene la ventaja en el tiempo de inicio de SO se reduce significantemente. El teimpo de ejecución de los programas. Pero este tiene la desventaja del precio. Aunque vale la pena pagar. SSD trabaja con bloquues.
  • #23 Es importante mantener baja la frecuencia de fallos de página, ya que de lo contrario el tiempo de acceso aumentará y frenará drásticamente la ejecución de los procesos.
  • #25 Ahora podemos utilizar el marco liberado para almacenar la página que provocó el fallo de página en el proceso.
  • #26 Si no hay marco libre se necesitan 2 transferencias de páginas. Una de carga y otra de descarga. Esta situación duplica, el la practica, el tiempo de servicio del fallo de página e incrementa correspondientemente el tiempo efectivo de acceso.
  • #27 Esta situación duplica, el la practica, el tiempo de servicio del fallo de página e incrementa correspondientemente el tiempo efectivo de acceso. .. .. # Cada página tiene asociado un bit de modificación, este activado por el HW cada vez que se escribe una palabra o byte de la página para indicar que ésta ha sido modificada. Cada vez que seleccionamos un página verificamos el bit de modificación. -> Activado: la página ha sido modificada desde que se leyó y hay que escribirla a disco. No Activada: no se ha modificado desde su lectura y carga en memoria
  • #28 Cualquier mejora en los métodos de paginación proporciona un gran beneficio en término de rendimiento del sistema. Existen muchos algoritmos distintos de sustitución de páginas, probablemente cada sistema operativo tenga su propio esquema.
  • #29 Los criterios a seguir para implementar un algoritmo de reemplazo de páginas son fundamentalmente dos: Minimizar el número de fallos de página Sencillez de implementación. Podemos generar cadenas de referencia de dos formas #Esta segunda opción produce un gran numero para reducir se puede emplear 2 hechos
  • #30 Para determinar el N° de fallos de página para una cadena de referencias concreta y un algoritmo de sustitución de páginas, También necesitamos conocer el Número de Marcos de página disponible. Que obviamente a medida que incrementa el número de marcos, reduce el número de fallos de páginas.
  • #31 Entonces podemos esperar tener una curva como muestra la imagen . A medida que incrementa el numero de marcos, el numero de fallo de paginas cae hasta un cierto nivel mínimo. Por supuesto que si añadimos memoria físic se incrementara el numero de marcos.
  • #32 No es necesario anotar cuando se cargó a memoria, simplemente crear una cola FIFO para almacenar todas las páginas en memoria y sustituir la página situada al principio de la cola. Cuando se carga en memoria una página nueva, se la inserta al fina de la cola.
  • #33 Los tres marcos Inicialmente están vacíos. Las tres primeras referencias provocarán fallo de páginas al cargarse en esos marcos. La siguiente referencia sustituirá a 7, ya que esta fue la primera en entrar (cargarse) Puesto que el 0 es la siguiente referencia y ya está en memoria no se producirá un fallo de página. La referencia 3 reemplazará a el 0 puesto que este es el primero en la cola… debido a esta sustitución provoca un fallo de página.
  • #34 El problema consiste en que podemos sacar de memoria una página de memoria muy usada (activa) solo porque es la más antigua. Una mala página que hay que sustituir incrementa la tasa de fallos de página ralentizando la ejecución de los procesos, eso no implica que la ejecución sea incorrecta,.
  • #35 Para ilustrar ese problema veamos el siguiente ejemplo. El resultado es completamente inesperado … a ello se lo conoce como Anomalia de Belady
  • #36 Para algunos algoritmos de sustitución, la tasa de fallo de página puede incrementarse a medida que se incrementa el número de marco de página asignados. Uno de los resultados de esta anomalá fue la búsqueda de un algoritmo óptimo de sustitución de página.
  • #37 Aquel que tenga la tasa más baja de fallos de página entre todos los algoritmos y que nunca esté sujeto a la anomalía de Belady. Este algoritmo Existe y se llama: Algoritmo optimo o MIN. Ingresa la página 2 se reemplaza por el 7 que no va a ser utilizado hasta la referencia 18. La ref 0 y 1 se utilizarás antes .
  • #38  Desafortunadamente este algoritmo resulta difícil implementar porque requiere un conocimiento futuro de la cadena de referencia. Se utiliza principalmente con propósitos comparativos, para saber que algún nuevo algoritmo es óptimo o no..
  • #39 2- Basado en utilizar el pasado reciente como una predicción del futuro más próximo. Se asocia a cada página el instante en que se usó por última vez, y cuando hay que sustituir una página selecciona la página que no haya sido utilizada durante un periodo de tiempo más largo.
  • #41 Este esquema requiere una búsqueda en la tabla de páginas para localizar la menos usada recientemente y realizar una escritura en memoria para cada acceso a memoria.
  • #42 Como hay que eliminar las entradas intermedias, lo mejor es implementar lista doblemente enlazada con un puntero en la cabecera y otra a la cola. Eliminar una página y colocarla en la parte superior de la pila requiere modificar 6 punteros en el caso peor Es un poco más caro que la otra implementación pero no requiere buscar en la tabla de referecias. Es apropiado para algoritmos de sustitución mediantes software o microcódigo. No sufre la anomalía de belady.
  • #58 arquitecturas Intel: IA-32 y x86- 64) y ARM Sistemas de 32 y 64 bits que se ejecutan en arquitecturas Intel.
  • #59 Una estrategia que reconoce la localidad de las referencias de memoria y, por lo tanto, maneja las fallos de la página al incorporar no solo la página con fallos, sino también varias páginas inmediatamente anteriores y posteriores a la página con fallos. Cuando se crea un proceso, se le asigna un conjunto de trabajo mínimo de 50 páginas y un conjunto de trabajo máximo de 345 páginas. El mínimo de conjunto de trabajo es el número mínimo de páginas que el proceso tiene garantizado en la memoria; Si hay suficiente memoria disponible, a un proceso se le pueden asignar tantas páginas como su conjunto de trabajo máximo. A menos que un proceso se configure con límites establecidos de trabajo duro, estos valores pueden ignorarse. La cantidad de memoria asignada a un proceso puede reducirse por debajo del mínimo en períodos de alta demanda de memoria.