Componentes Fundamentales de un Sistema Operativo
Planificador de Trabajos (Job Scheduler) o Shell
El Shell, también conocido como Planificador de Trabajos (Job Scheduler), actúa como la interfaz principal entre el usuario y la máquina.
Funciones Principales del Shell:
- Se encarga de hacer de interfaz hombre-máquina.
- Administra pedidos de recursos.
- Carga los programas.
- Crea procesos.
- Controla accesos de usuarios.
- Controla protecciones del sistema.
Tipos de Shell:
- Interfaz de Línea de Comandos (CLI): Provee una interfaz basada en comandos u órdenes (Command Line Interface) que permite ingresar un conjunto de caracteres que el Sistema Operativo (S.O.) interpretará como comandos u órdenes.
- Interfaz Gráfica de Usuario (GUI): Conocida como Graphical User Interface (G.I.U.), permite accesos a través de iconos o gráficos.
Núcleo o Kernel
El Núcleo o Kernel es un conjunto de códigos esenciales usados por todos los programas en el nivel más bajo del sistema.
Componentes del Kernel:
- Una extensión del set de instrucciones del procesador.
- Una extensión del mecanismo de secuenciamiento del Hardware (Switcher o Dispatcher).
- Un manejador de Interrupciones (Interrupt Handler).
- Un manejador de errores (Error Handler).
- Un manejador de E/S (I/O Handler).
- Un mecanismo de acceso a memoria central (Direccionamiento).
- Un Clock (Timer).
- Comunicación entre procesos (IPC).
Responsabilidades del Kernel:
- Interfaces con el Hardware (HW).
- Administración de interrupciones y excepciones.
- Multiprogramación (Low Scheduler).
- Comunicación entre procesos.
- Gestión del Hardware (HW).
Características de las Funciones del Nivel Cero:
Las características de sus funciones (del nivel cero de la estructura de un S.O.) son:
- Residentes en Memoria Principal.
- Deben ejecutarse en el mayor nivel de prioridad (Nivel Supervisor).
- Escritas en lenguaje ensamblador.
Administradores del Sistema Operativo
- Administración del Procesador: Consta de dos módulos: Dispatcher (decide a qué procesador asignar el proceso que tiene que ser ejecutado) y Controlador de Tráfico (se encarga de crear, modificar y actualizar el contexto asociado a un proceso).
- Administración de Memoria (Memory Manager): Se encarga de asignar a los procesos la memoria necesaria para su ejecución.
- Administración de Periféricos (I/O System): Posee todos los módulos necesarios para la utilización de los periféricos.
- Administración de Información (File System): Rutinas que permiten manipular y manejar el sistema de archivos.
- Administración de Comunicaciones (Communication Manager): Responsable de compartir los recursos distribuidos mediante una red de computadoras.
Estructura y Arquitectura del Sistema Operativo
En la medida en que se añaden más características a los sistemas operativos y en que el hardware se hace más complejo y versátil, el tamaño y la complejidad de los sistemas operativos ha ido creciendo. El modelo estructural se organiza en niveles jerárquicos.
Modelo de Niveles Jerárquicos
Niveles Inferiores (Hardware y Abstracción Básica)
- Nivel 1: Consta de circuitos electrónicos, donde los objetos que se tratan son registros, celdas de memoria y puertas lógicas.
- Nivel 2: Es el conjunto de instrucciones del procesador.
- Nivel 3: Añade el concepto de procedimiento o subrutina, así como las operaciones de llamada y retorno.
- Nivel 4: Introduce las interrupciones, las cuales hacen que el procesador salve el contexto actual e invoque a una rutina de tratamiento de la interrupción.
Es en el Nivel 5 en el que comienza a alcanzarse el sistema operativo propiamente dicho y en el que comienzan a aparecer los conceptos asociados con la multiprogramación.
Niveles Centrales (Multiprogramación y Procesos)
- Nivel 5: En este nivel se introduce la noción de proceso como un programa en ejecución.
- Nivel 6: Tiene que ver con los dispositivos de almacenamiento secundario del computador.
- Nivel 7: Crea un espacio de direcciones lógicas para los procesos.
Hasta este punto, el sistema operativo se ocupa de los recursos de un solo procesador. Empezando por el Nivel 8, el sistema operativo trata con objetos externos, tales como dispositivos periféricos y, posiblemente, redes y computadores conectados.
Niveles Superiores (Recursos Externos e Interfaz de Usuario)
- Nivel 8: Se dedica a la comunicación de información y mensajes entre los procesos.
- Nivel 9: Da soporte al almacenamiento a largo plazo de los archivos con nombre.
- Nivel 10: Es el que proporciona acceso a los dispositivos externos mediante interfaces estandarizadas.
- Nivel 11: Es responsable de mantener la asociación entre los identificadores externos e internos de los recursos y objetos del sistema.
- Nivel 12: Proporciona servicios completos de soporte a los procesos.
- Nivel 13: Ofrece al usuario una interfaz con el sistema operativo. Se denomina caparazón o shell porque separa al usuario de los detalles y le presenta el sistema operativo como un simple conjunto de servicios.
Modelos Arquitectónicos del Sistema Operativo
Sistemas Monolíticos
Es la estructura de los primeros sistemas operativos, constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
Sistemas en Estratos
El sistema por “capas” consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior.
Modelo Cliente-Servidor
Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria. Cada parte es pequeña y controlable.
Modos de Funcionamiento (Privilegios)
- El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo al hardware.
- El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario.
