- Realizar pruebas de funcionamiento de la memoria virtual
- Programa de usuario "halt"
- Verifique el programa "halt" funcione, debe hacer 3 faltas, utilize este programa de usuario halt.1.lab :
- 0, en la página 0
- 208, en la página 1
- 1260, en la página 9
- Puede comprobar las referencias generadas empleando la bandera de debug "-d a" cuando corre el programa nachos (./nachos -d a -x ../test/halt)
- Puede utilizar el debug para comprobar los resultados
- Ejemplo de salida de la corrida vm-halt.1-run
- Este otro programa de usuario halt.2.lab genera las siguientes faltas de página
- 0, en la página 0
- 272, en la página 1
- 1388, en la página 9
- Programa de usuario "matmult"
- Intente correr el programa de usuario 'matmult'
- Para dimensión 5 matmult5.lab
- La salida del programa es 80, debe funcionar "Exit" para visualizarlo
- Se produce 11 faltas de páginas
- Ninguna página es movida al SWAP
- Para dimensión 20 matmult20.lab
- La salida del programa es 7220, debe funcionar "Exit" para visualizarlo
- Se produce 115 faltas de páginas (Second Chance)
- Hay 46 páginas que deben ser movidas al SWAP
- Programa de usuario "sort"
- Intente correr el programa de usuario 'sort' sort.lab
- El menor elemento es 0
- Utilizando "Second Chance" se produce 4981 "page faults"
- Si cambia la memoria física a 4 páginas, en lugar de 32
- Recuerde conservar al menos 64 páginas en el SWAP, de otra manera el programa no va a correr por que se llena el SWAP
- La salida del programa es:
[farroyo@cloud vm]$ ./nachos -x ../test/sort
No threads ready or runnable, and no pending interrupts.
Assuming the program completed.
Machine halting!
Ticks: total 51927107, idle 0, system 32931900, user 18995207
Disk I/O: reads 0, writes 0
Console I/O: reads 0, writes 0
Paging: faults 2506713
Network I/O: packets received 0, sent 0
Cleaning up...
- Se produce 2506713 faltas de página
- Se mueve 860153 páginas al SWAP
- Máxima posición de SWAP ocupada: 33
- Varios programas de usuario
- Intente correr el programa de usuario 'shell', dentro correr 'sort' y luego 'halt', como se muestra
$ ./nachos -x ../test/shell
--../test/sort
--../test/halt
Machine halting!
Ticks: total 18858910, idle 0, system 51360, user 18807550
Disk I/O: reads 0, writes 0
Console I/O: reads 26, writes 2
Paging: faults 4995
Network I/O: packets received 0, sent 0
Cleaning up...
- Como se indica en la salida hay 4995 faltas de página
- Encontrar y corregir los problemas de su implantación de memoria virtual
- Anote en su informe todos los errores encontrados en las pruebas realizadas en el punto anterior y su estrategia para corregirlos
- Verificar que las estructuras empleadas para el manejo de la memoria virtual funcionen correctamente (SWAP, TLB, TPI, space->pageTable)
- Anote en su informe al menos un caso en que se utilice y otro en que se modifica las estructuras indicadas en este punto
- Demostrar que las páginas son traidas del lugar correcto o creadas adecuadamente cuando son solicitadas por primera vez
- Coloque en su programa rótulos indicativos para indicar de donde fueron traídas las páginas la primera vez, anote esta salida en su informe
- Demostrar que las páginas sucias (dirty=true) se mueven y recuperan de SWAP
- Agregue rótulos indicativos para comprobar el tráfico de páginas de y hacia el SWAP, anote la salida en su informe
- Explicar que sucede cuando se intercambia de proceso (context switch) en su manejo de la memoria virtual, cuáles estructuras deben cambiar, cómo deben cambiar
- Anote en su informe su estrategia para hacer que el intercambio de procesos ocurra de manera satisfactoria, indique las funciones que debe cambiar (clases y métodos) y los cambios realizados
- Fin