1.4 LLamadas al sistema y protección
[SILB94]
En el apartado 2 se habló de los sistemas de multiprogramación, en estos sistemas se pueden ejecutar varios programas a la vez. Cuando se ejecutan simultáneamente varios programas (probablemente pertenecientes a distintos usuarios) hay que proteger a un programa de la acción de los demás. Por ejemplo, no se debe permitir que un programa pueda modificar posiciones de memoria principal donde se almacena otro programa, ni tampoco que un usuario borre los ficheros de otro usuario.
Para llevar a cabo esta protección, el sistema operativo se apoya en varios mecanismos proporcionados por el hardware. Los mecanismos de protección de memoria se verán en el tema de gestión de memoria. Ahora vamos a comentar el modo supervisor (o modo núcleo) y el modo usuario.
La mayoría de los procesadores tienen dos modos de funcionamiento llamados modo supervisor y modo usuario (un bit de la PSW suele indicar el modo de funcionamiento). En modo supervisor está permitido la ejecución de cualquier instrucción máquina, sin embargo, en modo usuario no se permite la ejecución de algunas instrucciones reservadas que llevan a cabo funciones tales como:
Autorizar e inhibir las interrupciones.
Conmutar un procesador entre distintos procesos (un proceso es un programa en ejecución, este concepto se verá en el tema siguiente).
Acceder a los registros utilizados por el hardware de protección de la memoria.
Realizar operaciones de E/S.
Parar la CPU.
El sistema operativo se ejecuta en modo supervisor con acceso total al hardware, mientras que los programas de usuario se ejecutan en modo usuario. Cuando un programa necesita utilizar un recurso hardware, por ejemplo, quiere realizar una operación de E/S, debe realizar una llamada al sistema para que el sistema operativo lleve a cabo la operación por él. La realización de una llamada al sistema conmuta automáticamente la CPU a modo supervisor. Así se garantiza que, por ejemplo, un usuario al que no se le ha concedido una impresora utilice instrucciones máquina para acceder directamente al controlador de la impresora, interfiriendo con el programa al que se le concedió la impresora.
La vuelta al modo usuario desde el modo supervisor se lleva a cabo mediante una instrucción, también reservada.