pc spim
Curso 2012/2013
Práctica 18: Llamadas al sistema
operativo
Introducción y objetivos
El juego de instrucciones del MIPS ofrece primitivas para implementar un sistema
operativo: modos de funcionamiento, excepciones, organización del coprocesador y
otros. Para practicar con los métodos básicos de entrada/salida, se ha definido un
sistema operativo rudimentariollamado MiMoS (Mips Monitor System). La esctructura
de este manejador es semejante a la del manejador que se completó en la práctica
anterior. En aquel manejador solo se tenía la capacidad de manejar las interrupciones
procedentes de las líneas INT0*, INT1* e INT2*. Este manejador además es capaz de
gestionar la llamada al sistema syscall. Y se le ha dotado de recursos para el soportemultiproceso.
Los objetivos de esta práctica son:
Implementar nuevas funciones accesibles como llamadas al sistema operativo
(syscall). Inicialmente se proporciona un manejador MIMOSv0.handler, donde
se encuentran ya implementadas dos llamadas al sistema get_version, y
print_char.
Comprender el funcionamiento multiproceso de los sistemas operativos,
implementando un sencillo mecanismo degestión de procesos. Mediante una
llamada al sistema se dejará en espera el proceso actual y se pasará a ejecutar un
proceso ocioso. Una interrupción volverá a poner en ejecución el proceso en
espera.
Material
La versión del simulador PCSIM_ES utilizada en la práctica anterior.
La versión preliminar del manejador MIMOSv0.handler.
Archivos de prueba: Usuario0.s,Usuario1.s, Usuarios2.s y Usuario3.s. Estos
archivos servirán para poner a prueba las funciones de los distintos manejadores
de excepciones que se irán desarrollando a lo largo de la práctica. Usuario0.s
realiza llamadas a las funciones definidas en el manejador MIMOSv0.handler.
Usuario1.s al manejador MIVOSv1.handler, y así sucesivamente.
Tratamiento de excepciones con el simulador PCSpim.
Apéndices: llamadas al sistema, registro estado MIPS, interfazTecladoConsolaReloj.
El simulador ha de estar configurado para que las interrupciones y las llamada syscall
provoquen la ejecución del manejador de excepciones, como muestra la Figura 1.
1
Figura 1: Configuración del simulador para que un manejador llamado
Mimosv0.handler atienda las llamada al sistema.
Recuerdalos detalles vistos en la práctica anterior: A lo largo de esta práctica, se
trabajará con dos archivos:
El manejador o Trap file, con la extensión .handler, define los segmentos .kdata
y .ktext del manejador de excepciones y un fragmento del segmento .text para el
código de inicio y terminación que haga falta.
El programa de usuario, con extensión .s, describe el resto de lossegmentos
.data y .text.
Cada vez que se abra (File>Open) o recargue (Simulator>Reload) un archivo de
usuario, el simulador cargará también el archivo manejador etiquetado como Trap File
en el cuadro de configuración de la figura 1.
puertos de
E/S
.kdata
variables del
manejador
MiMOS.handler
.ktext
código del
manejador
.data
variables del
proceso usuario
Usuario.s
__start:.text
código de inicio
jal main
shutdown
main:
código del
proceso usuario
jr $ra
Figura 2: Los dos archivos fuente que describen la memoria del MIPS
en una sesión MiMoS.
2
Recuerde también que el inicio del sistema supone tres pasos:
1. Preparar los periféricos disponibles, habilitando o inhibiendo las interrupciones
a través de sus respectivas interfaces
2. Preparar elregistro de estado del coprocesador de excepciones: máscara de
interrupciones y modo de funcionamiento del procesador
3. Transferir el control al programa usuario.
El paso 3 se hace mediante jal main, así que el programa de usuario debe tener un
punto de entrada etiquetado como main. Para acabar su ejecución, el programa de
usuario debe ejecutar jr $ra (Figura 2).
Estructura del...
Regístrate para leer el documento completo.