Читать книгу Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609 - José Luis Villada Romero - Страница 25
3.1.Sistemas monolíticos
ОглавлениеEn un sistema operativo con este tipo de arquitectura, todas las funciones se encuentran codificadas en un único módulo. Está compuesto de un conjunto de procedimientos, que se pueden invocar entre ellos según la necesidad y sin restricciones. Cada procedimiento tiene una signatura bien definida, es decir, los parámetros de entrada y el resultado de salida son conocidos.
Hay que tener en cuenta que este tipo de modelo no es lo mismo que un modelo sin estructura. Realmente, existe una estructura, aunque sea muy primitiva. Todo sistema operativo puede ejecutar en dos modos: modo núcleo (modo kernel) o modo usuario. En un sistema monolítico, los procedimientos correspondientes a servicios del sistema operativo (llamadas al sistema) se pueden solicitar estableciendo los parámetros de entrada y realizando una llamada especial (llamada al kernel) para ejecutar el procedimiento.
La llamada especial realiza el cambio entre el modo usuario y el modo kernel y transfiere el control de la ejecución al sistema operativo.
Cómo puede realizarse una llamada al sistema: (1) El programa de usuario entra en el kernel por una trampa mediante una operación Trap. (2) El sistema operativo determina el número de servicio requerido. (3) El sistema operativo invoca el procedimiento de servicio. (4) Se devuelve el control al programa de usuario.
El sistema operativo comprueba los parámetros de entrada y, en función de ellos, busca en una tabla interna la referencia al procedimiento que se debe ejecutar en función de estos parámetros. Se ejecuta y el resultado se transfiere al programa de usuario que realizó la llamada. Por lo tanto, se vuelve a pasar al modo usuario.
Este tipo de arquitectura se puede ver como un modelo de tres niveles:
Un programa principal que realiza la llamada al servicio del SO.
Un conjunto de procedimientos de servicio que realizan las llamadas al sistema.
Un conjunto de procedimientos auxiliares que ayudan a los anteriores y que suelen ser comunes para varios procedimientos de servicio.
Entre los principales inconvenientes, se encuentran:
Falta de modularidad.
Dificultad para modificaciones.
Dificultad en la detección y corrección de errores.
Necesidad de recompilación en cada cambio.