Sistemas operativos – Modo usuario y modo núcleo

Es necesario distinguir entre los modos de ejecución del procesador, normalmente asociados con el sistema operativo (modo núcleo) y con los programas de usuario (modo usuario).

Imaginemos que un usuario pudiera hacer cambios en tiempo real de las instrucciones que rigen el funcionamiento del sistema operativo y que interactúan con el hardware, que pudiera cambiar el manejador de interrupciones de reloj, la forma en la que se produce la comunicación entre un dispositivo E/S, es decir, que pudiera cambiar la codificación del sistema operativo o acceder a ella para controlarla a su manera. Si esto sucediera, se podría hacer un uso indebido del sistema operativo y del hardware, produciendo comportamientos inesperados y pudiendo corromper su funcionamiento. Por eso, es necesario que determinadas instrucciones del sistema operativo sólo puedan ser ejecutadas en modos privilegiados. Éstas serían lectura y modificación de los registros de control, instrucciones primitivas de E/S, instrucciones relacionadas con la memoria, instrucciones sobre señales, planificación, interrupciones, controladores de dispositivos, etc.

El modo más privilegiado de ejecución se conoce como modo núcleo o modo kernel. El núcleo de un sistema operativo es la parte que engloba las funciones y servicios más importantes del mismo. Es una parte relativamente pequeña del sistema, pero es la más utilizada, por ello suele residir en memoria de forma continua. Lista de funciones básicas del kernel:

  • Gestión de procesos
    • Creación y terminación de procesos
    • Planificación y activación de procesos
    • Intercambio de procesos
    • Sincronización de procesos y soporte para la comunicación entre procesos
    • Gestión de los bloques de control de proceso
  • Gestión de memoria
    • Reserva de espacio de direcciones para los procesos
    • Swapping
    • Gestión y páginas de segmentos
  • Gestión E/S
    • Gestión de buffers
    • Reserva de canales de E/S y de dispositivos de los procesos
  • Funciones de soporte
    • Gestión de interrupciones
    • Auditoría
    • Monitorización

El motivo de que existan distintos modos de ejecución no es otro que proteger al sistema operativo y tablas clave del sistema de la interferencia de programas de usuario. En modo núcleo, el software tiene control completo del procesador y de sus instrucciones, registros y memoria.

Llegados a este punto, nos surgen dos cuestiones:

  1. ¿Cómo conoce el procesador en qué modo se está ejecutando?
  2. ¿Cómo puede modificarse este modo?

La respuesta a la primera pregunta: Existe un bit en la palabra de estado de programa (PSW) que indica el modo de ejecución. Este bit altera su valor como respuesta a determinados eventos.

La respuesta a la segunda pregunta: Cuando un usuario realiza una llamada a un servicio del sistema operativo o cuando una interrupción dispara la ejecución de una rutina del sistema operativo, este modo de ejecución se cambia a modo núcleo (alternando el bit anteriormente mencionado) y cuando finaliza la ejecución del servicio, el modo se fija de nuevo a modo usuario.

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *