1. UNIVERSIDAD ESTATAL DE BOLÍVAR
FACULTAD DE ADMINISTRACIÓN, GESTION EMPRESARIAL E INFORMÁTICA
ESCUELA DE SISTEMAS
ASIGNATURA: SISTEMAS OPERATIVOS I
PROFESOR: DR. HENRY VALLEJO
TEMA: RESUMEN DE LAS UNIDADES 16, 17 Y 18
PERIODO: SEPTIEMBRE 2015-FEBRERO 2016
NOMBRE:
ERICK ADRIAN GALARZA
GUARANDA – ECUADOR
2. ALGORITMOS DE REEMPLAZO DE PÁGINAS
Cuando se presenta el fallo de una página el Sistema Operativo debe eliminarla de la
memoria, y al mismo tiempo introducir una nueva página, todo depende del rendimiento,
si es mejor, no uso frecuente o uso frecuente tratando de evitar una sobrecarga adicional.
Para resolver ello se estudian los siguientes algoritmos:
1. ÓPTIMO.
Este algoritmo establece que la página con la etiqueta más alta debe eliminarse,
Posponer eventos indeseables por más tiempo.
Sin embargo no se puede implementar porque no se tiene forma de saber cuándo será la
próxima referencia a cada una de las páginas.
2. NO USADAS RECIENTEMENTE.
Los computadores con memoria virtual tienen dos bits asociados a cada página. Este
algoritmo elimina al azar una página de la clase de menor numeración que no esté vacía.
La idea es que es mejor eliminar una página modificada a la que no se haya hecho
referencia en un tiempo determinado a que borrar una página vacía de uso frecuente.
3. FIFO (Primera en entrar, primera en salir.)
En la lista mantenida por el Sistema Operativo de las páginas que están en memoria la
nueva se coloca al final y la menos reciente al principio, en un fallo se elimina la que está
al principio.
Sin embargo en este algoritmo se puede eliminar páginas independientemente de su uso
frecuente.
4. SEGUNDA OPORTUNIDAD.
Se inspecciona el bit R, si esta en 1 la página se pone al final de la lista páginas, el tiempo
se actualiza y el bit vuelve a 0. Si esa en 0, la página es antigua y no se ha referenciado
por lo que se elimina inmediatamente. Y el principio de eliminación es FIFO.
5. RELOJ.
Consiste en una lista circular con una manecilla que apunta a una página. Y todo va a
depender del estado del bit R
R=0, desaloja la página.
3. R=1, desactiva R y avanza la manecilla.
6. LRU (Menos usadas recientemente).
Las páginas que no se han utilizado por mucho tiempo talvez seguirán sin utilizarse por
más tiempo, y cuando ocurra un fallo de página se descarta la página que no se haya
utilizado por mayor tiempo.
7. SIMULACIÓN DE LRU EN SOFTWARE.
Una posibilidad es el algoritmo NFU (No utilizadas frecuentemente), requiere un
contador asociada a cada página en memoria, asignado el bit R al contador y este lleva la
cuenta de la frecuencia con que se hace referencia a cada página, se sustituye la que
tenga el contador menor. El problema es que nunca olvida nada.
La solución es el algoritmo de ENVEJECIMIENTO que se basa en el NFU con
modificaciones que simula al LRU.
8. CONJUNTO DE TRABAJO.
El conjunto de trabajo es el conjunto de páginas utilizado por un proceso en un momento
dado. Si este está cargado en memoria el programa se ejecutara sin muchos fallos hasta
que pase a otra fase.
Muchos sistemas tratan de llevar la cuenta del conjunto de trabajo de cada proceso y la
tiene en memoria antes de que se ejecute el proceso, esto se conoce como
Prepaginación.
Para ello es necesario revisar toda la tabla de páginas en cada falla para eliminar el
adecuado.
9. WSCLOCK.
Basado en algoritmo del reloj y utiliza la información del conjunto de trabajo, muy utilizado
en la práctica.
En una lista circular de marcos de página, se analiza la página a la que apunta la
manecilla, y de acuerdo al estado del bit R se procede, si esta en 0 significa que no está
en el conjunto de trabajo y el marco queda libre y la nueva página e coloca ahí.
4. CUESTIONES DE DISEÑO PARA LOS SISTEMAS DE PAGINACIÓN.
1. POLÍTICAS DE ASIGNACIÓN LOCAL CONTRA LAS DE ASIGNACIÓN
GLOBAL.
En un conjunto de procesos si uno falla, para reemplazar la página de uso menos
frecuente solo se consideran las páginas del proceso en el que fallo esto es local. Pero en
cambio se buscan todas las paginas cargadas en memoria sin importar de proceso sea,
se conoce como global.
Los algoritmos locales asignan a cada proceso una fracción fija de memoria mientras que
los globales asignan marcos de página de manera dinámica entre procesos. Una manera
de administrar es el algoritmo PFF (Frecuencia de fallo de página), que indica cuando se
debe aumentar o disminuir la asignación de página de un proceso.
2. CONTROL DE CARGA.
El sistemas se puede sobre paginar, esto sucede cuando el conjunto de trabajo de todos
los procesos sobrepasa la capacidad de la memoria.
Una manera de controlarlo es enviar algunos procesos al disco y sus marcos de página se
dividen entre los demás procesos.
3. TAMAÑO DE PÁGINA.
El tamaño de página por lo general es elegido por el Sistema Operativo.
Para determinar el mejor tamaño es necesario considerar varios factores, por lo que no
hay un tamaño óptimo general.
4. ESPACIOS SEPARADOS DE INSTRUCCIÓN Y DE DATOS.
Consiste en dividir la memoria en espacios separados, una para las instrucciones
(espacio I) y otro para lo datos (espacio D).
5. PÁGINAS COMPARTIDAS.
Al ejecutase el mismo programa a la vez, es más eficiente compartir las páginas para
evitar tener dos copias de la misma página en memoria.
Solo se puede compartir la página de instrucciones (espacio I) más no las de datos
(espacio D).
5. 6. BIBLIOTECAS COMPARTIDAS.
En los sistemas operativos modernos hay muchas bibliotecas utilizadas por muchos
procesos.
Si se enlazan de forma estática con cada programa se agrandan más. En lugar se utilizan
las bibliotecas compartidas.
7. ARCHIVOS ASOCIADOS.
En general se refiere a que un proceso puede enviar una llamada al sistema para asociar
un archivo a una porción de su espacio de direcciones virtuales. Los archivos asociados
proporcionan un modelo alternativo para la entrada y salida.
8. POLÍTICA DE LIMPIEZA.
Para una buena paginación debe haber muchos marcos de páginas libres. Para asegurar
esto los sistemas tienen un proceso conocido como demonio de paginación, que
inspecciona el estado de la memoria y si están disponibles pocos marcos de paginación
se encarga de seleccionar páginas para desecharlas.
9. INTERFAZ DE MEMORIA VIRTUAL.
Los programadores tienen cierto control sobe el mapa de memoria y se puede utilizar para
mejorar el comportamiento de un programa.
Se pude aplicar la técnica de memoria compartida distribuida, la idea es que varios
procesos compartan a través de la red un conjunto de páginas como un solo espacio de
direcciones lineales compartido.
6. CUESTIONES DE IMPLEMENTACIÓN.
PARTICIÓN DEL SISTEMA EN LA PÁGINACION.
- Al crear un proceso el sistema debe determinar el tamaño del programa y crea una
tabla de página.
- Al ejecutar un proceso se reestablece el MMU y el TLB se vacía.
- En un fallo se debe determinar la dirección virtual que produjo el fallo.
- Al terminar el proceso se libera su tabla de contenidos, páginas y espacio en
disco.
MANEJO DE FALLOS DE PÁGINAS.
En un fallo de página la secuencia es la siguiente:
El hardware hace un trap del kernel, se procede a guardar los registros y demás
información mientras que el Sistema operativo trata de detectar cual página se necesita.
Conocida la dirección de fallo esta se debe comprobar, el marco hallado se marca como
ocupado para que no se utilice en otras cosas, se busca la dirección de disco donde esa
la página necesaria, la tabla de páginas se actualiza y la instrucción fallida se remplaza al
estado cuando empezó. El proceso fallido se planifica y se cargar registros y demás
información como si no hubiera pasado nada.
RESPALDO DE INSTRUCCIÓN.
Cuando un programa referencia a una página que no está en memoria, se detiene la
instrucción que ocasione el fallo y se da un trap en el sistema. Cuando se tien la página
necesaria se debe reiniciar la instrucción que produjo e trap.
BLOQUEO DE PÁGINAS.
Para evitar eliminar páginas que se deberían, por ejemplo instrucciones de E/S estas se
bloquean, esto se conoce como fijada en memoria.
ALMACEN DE RESPALDO.
La partición de intercambio es la forma más simple para asignar espacios de página en el
disco.
7. SEPARACIÓN DE POLÍTICAS Y MECANISMOS.
Esta es una herramienta importante para administrar la complejidad de cualquier sistema.
Este principio se puede aplicar a la administración de memoria, permite que el
administrador de memora se ejecute como proceso a nivel del usuario.