userkernel.h, userkernel.cc
|
rutinas para iniciar y probar el kernel de multiprogramación.
|
addrspace.h, addrspace.cc
|
crea un espacio de direcciones en el cual corre un programa del usuario, y lo carga del disco.
|
syscall.h
|
es la interfaz para los llamados al sistema; los procedimientos del kernel que los programas del usuario pueden invocar.
|
exception.cc
|
el manejador para los llamados al sistema y otras excepciones del usuario, tales como "page-faults". En el sistema que presentamos, solo el llamado al sistema "halt" es soportado.
|
bitmap.h, bitmap.cc
|
rutinas para manipular bitmaps (que pueden ser útiles para llevar el control de los marcos de memoria física).
|
filesys.h, filesys.cc
|
(que se encuentran en el directorio "filesys") definen una versión del sistema de archivos de NachOS preliminar. Para esta asignación, hemos implantado el sistema de archivos de NachOS utilizando directamente las rutinas del sistema de archivos de Unix, de manera que solo tenga que probarse una cosa a la vez. |
translate.h, translate.cc
|
rutinas para la traducción de direcciones. En el código que presentamos, para correr "halt", suponemos que cada dirección virtual es la misma que cada dirección real, esto restringe el sistema a solo poder correr un programa de usuario a la vez. Usted necesita generalizar este esquema para lograr correr varios programas de usuario de manera concurrente. En esta asignación no se solicita implantar el manejo de la memoria virtual, la cual es delegada hasta la asignación #3, por ahora cada página de memoria debe estar en la memoria principal.
|
machine.h, machine.cc
|
emula la parte de la máquina que ejecuta los programas del usuario: memoria principal, los registros del procesador, etc.
|
mipssim.h, mipssim.cc
|
emula el conjunto de instrucciones con números enteros del procesador MIPS R2/3000.
|
console.h, console.cc
|
emula el dispositivo terminal utilizando archivos de Unix. Una terminal es (i) orientada a caracteres (bytes), (ii) los caracteres pueden ser leídos y escritos simultáneamente y (iii) los caracteres pueden llegar de manera asíncrona (como el resultado de las teclas que presiona el usuario), sin ser explícitamente solicitados.
|
synchconsole.h, synchconsole.cc
|
provee acceso sincronizado al dispositivo consola.
|