Arquitectura de Sistemas Operativos: Capas, Interrupciones y Ciclo de Vida de Trabajos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,3 KB
Arquitectura Fundamental de los Sistemas Operativos
Los Sistemas Operativos (SO) se estructuran en diversas capas, cada una con funciones específicas que garantizan su correcto funcionamiento y la interacción con el hardware y el usuario. A continuación, se detallan las principales capas y componentes:
Capas del Sistema Operativo
- Núcleo (Kernel)
- Rutinas del Sistema Operativo (RSO)
- Programas de Utilidad
- Administración de Datos (Data Management)
- Administración de Seguridad
- Comunicaciones
- Programas del Usuario
Núcleo (Core o Kernel)
También conocido como core o kernel, posee las funciones más básicas del SO que se ejecutan en modo kernel. Con el tiempo, los sistemas operativos crecieron en complejidad, y la probabilidad de errores aumentó estadísticamente. Por esta razón, algunos fabricantes decidieron desarrollar lo que se denominó microkernel: un núcleo más pequeño diseñado para un mejor control de posibles errores y para concentrar las funciones más críticas del SO.
Rutinas del Sistema Operativo (RSO)
Estas funciones se ofrecen como servicio a los programas que se ejecutan sobre el SO, dado su uso frecuente. Ante una interrupción, se ejecutan las rutinas correspondientes según el tipo de interrupción.
Programas de Utilidad
Los SO suelen incluir diversos programas de utilidad que contribuyen al mantenimiento del sistema o son de uso común, mejorando la utilidad del computador. Ejemplos incluyen el backup/restore o el comando grep.
Administración de Datos (Data Management - DM)
Es el administrador de datos. La estructura de datos puede ser primitiva, por ejemplo, una carpeta que contiene módulos o archivos, y son gestionadas por el DM. El DM permite la integración de distintas bases de datos. Su capacidad puede optimizarse según la intervención humana, considerando el nivel de flexibilidad deseado para gestionar diversas bases de datos.
Comunicaciones
Esta capa contiene todo el software necesario para facilitar la comunicación de un SO con otras plataformas operativas. Dentro del IPL (Initial Program Load) existe un programa que pertenece a esta capa y es cargado en memoria de forma residente. Además, determina cómo acceder a distintos tipos de recursos.
En una sección de esta capa, el lenguaje fuente comienza a traducirse a través de diversos eventos invocados por las otras capas.
Tipos de Interrupciones en Sistemas Operativos
Las interrupciones son eventos que detienen temporalmente la ejecución normal de un programa para que el sistema operativo pueda atender una necesidad o un evento específico. Se clasifican en:
Interrupciones Externas
Son aquellas generadas por el usuario del sistema, como cancelar un trabajo sin propósito aparente o eliminar un archivo de la cola de impresión.
Interrupciones Internas
Interrupción por Programa
Generadas por la ejecución de una instrucción, como una división por cero, un intento de ejecución de una instrucción ilegal o una referencia a memoria fuera del espacio de memoria del propio programa.
Interrupción por Temporizador (Timer)
Generadas por el temporizador (timer), que permite al sistema operativo ejecutar procesos de forma regular.
Interrupción de Entrada/Salida (I/O)
Generadas por una controladora de entrada/salida (I/O), reportando la terminación exitosa de una función o una variedad de posibles errores.
Interrupción por Fallo de Hardware
Ejemplos incluyen un error de paridad de memoria, un dispositivo fuera de línea (offline), o un error físico de lectura/escritura.
Flujo de un Trabajo (Job) en un Sistema Operativo
El ciclo de vida de un trabajo (job) en un sistema operativo sigue una serie de pasos definidos para su procesamiento y ejecución:
Fases del Flujo de Trabajo
- Recepción y Preparación (JES): El JES (Job Entry Subsystem) se encarga de leer, compilar y enlazar el trabajo.
- Gestión de Errores (Spool): En caso de errores en la transcripción, el trabajo será enviado al Spool.
- Cola de Trabajos (Job Queue): Si todo está correcto, el trabajo es enviado a la Cola de Trabajos (Job Queue), que es un área en disco.
- Activación (Iniciador): Luego se dirige al Iniciador, que se encarga de verificar si hay un trabajo en la cola de entrada sin una tarea asignada, y analiza el contenido de la Cola de Trabajos. El mismo Iniciador es quien, una vez que el Planificador Maestro (Master Scheduler) lo indique, da inicio al Trabajo (Job).
- Asignación de Recursos (SWADS): Para que esto suceda, el Iniciador debe comenzar a analizar los recursos y las tablas en las SWADS (System Work Area Data Set), que administra quién usa cada recurso. Para llevar a cabo esta tarea, el Iniciador debe trabajar con el Intérprete para traducir su tarea al formato de las tablas contenidas en las SWADS.
- Ejecución: Una vez obtenidos todos los recursos, el último asignado es el procesador, y luego se da inicio a la Ejecución. El sistema interviene en este paso mediante las Rutinas del Sistema Operativo (RSO) y los Programas del Usuario, gestionando la tarea en curso.
- Terminación del Paso y Recuperación: Esta ejecución resulta en la Terminación del paso. Un trabajo puede estar compuesto por uno o varios pasos/comandos; por lo tanto, en la terminación, entra en juego el concepto de recuperación de los dispositivos.
- Finalización y Salida (Terminador y JES Writer): Al finalizar, se ejecuta el Terminador, que se encarga de ir a la cola de trabajos y eliminar el trabajo del iniciador, dado que ha finalizado. Finalmente, se pasa el control al JES Writer, que extrae los resultados apilados en el SPOOL a través del dispositivo asignado para estos fines (pantalla, impresora, etc.).