Ayudantía 8: Virtual memory
description
Transcript of Ayudantía 8: Virtual memory
AYUDANTÍA 8:VIRTUAL MEMORY
UTFSM - Sistemas Operativos
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
2
Fallos de página (page faults)
¿Bajo qué circunstancias ocurren? Ocurren cuando se intenta acceder a una
página que no está en la memoria principal. ¿Qué ocurre después de un page fault? Se verifica:
El acceso a memoria. Si es inválido, se para el programa.
Si es válido, se ubica un frame libre y se hace un request de I/O para cargar la página en ese frame.
Se actualiza la tabla de páginas.
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
3
Cadena de referencias a página
Asumir que se tiene una cadena de referencias a página (page-reference string) para un proceso con m frames (inicialmente todos desocupados). El p-r string tiene largo p; hay n números de página distintos en ella.
¿Cuál es la cota mínima de page faults? ¿Cuál es la cota máxima de page
faults?
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
4
Estructuras para demand paging ¿Cuáles de las siguientes estructuras
de datos/técnicas de programación son buenas?StackTabla de hashingBúsqueda secuencialBúsqueda binaria
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
5
Algoritmo de Second-chance
Asumir que se está monitoreando el ratio en el que el puntero del algoritmo del reloj (que indica la página candidata a reemplazo) se mueve.
¿Qué se puede decir del sistema si se observa el siguiente comportamiento?El puntero se mueve muy rápido.El puntero se mueve muy lento.
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
6
Algoritmos de reemplazo de página Considerar los siguientes algoritmos:
LRU replacementFIFO replacementOptimal replacementSecond-chance replacement
Ordénelos de “peor” a “mejor” en base a su rati ode page-faults.
¿Cuáles sufren de la anomalía de Belady?
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
7
LRU Considerar el arreglo bidimensional A:
int A[][] = new int[100][100]; A[0][0] está en la ubicación 200, en un sistema de memoria
paginada con páginas de tamaño 200. Un proceso está en p0 (ubicación 0 a 199), para manipular la matriz; por lo que cada instruction fetch proviene de p0.
Para 3 frames, cuántos page faults se generan en las siguientes inicializaciones del arreglo, usando LRU replacement, y asumiendo que page frame 1 tiene el proceso en él, y los otros 2 están limpios?
for (int j = 0; j < 100; j++)
for (int i = 0; i < 100; i++)
A[i][j] = 0; for (int i = 0; i < 100; i++)
for (int j = 0; j < 100; j++)
A[i][j] = 0;
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
8
Thrashing
¿Cuál es la causa del thrashing? ¿Cómo se detecta el thrashing? ¿Cómo se puede eliminar este
problema una vez detectado?
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
9
Parámetro Delta
Considere el parámetro ∆ usado para definir el tamaño de la ventana para un working-set.
¿Qué efecto puede tener un ∆ muy bajo?
¿Qué efecto puede tener un ∆ muy alto?
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
10
Esquemas de reemplazo de segmentos La segmentación es similar a la
paginación, pero con “páginas de distinto tamaño”.
¿Cómo quedarían 2 esquemas para reemplazo de páginas, usando FIFO y LRU, pero para segmentos?