NÚCLEO DEL SISTEMA OPERATIVO Autor: Andersson Alexander Hadad Valero CI: 30065693 Ingenieria en Sistemas
Introducción
El núcleo del sistema operativo es la parte del software que gestiona los recursos del hardware, los servicios básicos y las abstracciones que permiten el funcionamiento de los programas de usuario. Un aspecto fundamental del núcleo es el control de los procesos, que son las unidades de ejecución de los programas. Los procesos pueden estar en diferentes estados según su situación en el sistema, y pueden cambiar de estado por diversos motivos, como la asignación o liberación de recursos, la espera de eventos o la finalización de su tarea. El núcleo mantiene un bloque de control para cada proceso, donde almacena información relevante sobre su identidad, estado, prioridad, registros, memoria y otros datos. El núcleo también ofrece operaciones para crear, eliminar, suspender o reanudar procesos, así como para comunicarse o sincronizarse con ellos. Otro aspecto importante del núcleo es el procesamiento de las interrupciones, que son señales que indican la ocurrencia de algún evento externo o interno que requiere la atención del núcleo. El núcleo debe ser capaz de atender las interrupciones de forma rápida y eficiente, sin comprometer la seguridad o el rendimiento del sistema. Finalmente, el núcleo debe gestionar los procesos concurrentes asíncronos, que son aquellos que se ejecutan simultáneamente o alternativamente en el sistema, sin un orden preestablecido. Estos procesos pueden compartir recursos o datos, lo que implica la necesidad de mecanismos de exclusión mutua y sección crítica para evitar conflictos o inconsistencias. El núcleo suele emplear semáforos como herramientas para implementar estos mecanismos y garantizar la correcta coordinación de los procesos concurrentes.
NÚCLEO DEL SISTEMA OPERATIVO El núcleo o kernel es la parte central de un sistema operativo y es el que se encarga de realizar toda la comunicación segura entre el software y el hardware del ordenador mediante las llamadas al sistema, además de proveer de una API y otras funciones esenciales. El núcleo actúa como una interfaz entre el hardware básico y el resto del sistema operativo, y su finalidad es constituir un entorno adecuado en el que se puedan desarrollar los distintos procesos. Entre las funciones básicas del núcleo se encuentran: la manipulación de las interrupciones, la creación y destrucción de procesos, la planificación de los procesadores, la sincronización y comunicación entre procesos, el soporte de las actividades de entrada/salida, el soporte del sistema de archivos, etc. El núcleo es la parte más dependiente del hardware y suele estar escrito en lenguaje ensamblador o en otros lenguajes de bajo nivel. El núcleo se encuentra residente en memoria principal y se ejecuta con el máximo privilegio. El núcleo también debe implementar mecanismos de protección para evitar accesos indebidos a la memoria o al hardware por parte de los programas.
TIPOS DE NUCLEOS DE SISTEMAS OPERATIVOS Los tipos de núcleo del sistema operativo son una clasificación que se basa en la forma en que el núcleo interactúa con los procesos y los recursos del sistema. Los principales tipos de núcleo son: - Núcleo monolítico: Es un núcleo que contiene todo el código del sistema operativo, incluyendo los controladores de dispositivos, el planificador, el gestor de memoria y los servicios del sistema. Este tipo de núcleo ofrece un alto rendimiento y una gran funcionalidad, pero también tiene una alta complejidad y un mayor riesgo de errores. - Núcleo micro: Es un núcleo que solo contiene las funciones básicas del sistema operativo, como la comunicación entre procesos y el acceso al hardware. El resto de las funciones se ejecutan en procesos separados llamados servidores, que se comunican con el núcleo mediante mensajes. Este tipo de núcleo ofrece una mayor modularidad y seguridad, pero también tiene una mayor sobrecarga y una menor eficiencia. - Núcleo híbrido: Es un núcleo que combina características de los núcleos monolíticos y micro. Algunas funciones se ejecutan en el núcleo, mientras que otras se ejecutan en servidores. Este tipo de núcleo busca un equilibrio entre el rendimiento y la flexibilidad, pero también tiene una mayor complejidad y una menor coherencia.
ESTADOS Y TRANSICIONES DE UN PROCESO EN UN SISTEMA OPERATIVO. Los procesos en un Sistema Operativo son las unidades básicas de ejecución de los programas. Cada proceso tiene un estado asociado que indica su situación actual en el ciclo de vida. Los estados posibles de un proceso son los siguientes: - Nuevo: el proceso está siendo creado y aún no está listo para ejecutarse. - Listo: el proceso está esperando a que el planificador le asigne un procesador para ejecutarse. - Ejecución: el proceso está ocupando un procesador y realizando sus instrucciones. - Bloqueado: el proceso está esperando a que se cumpla algún evento externo, como una entrada/salida o una señal, para continuar su ejecución. - Terminado: el proceso ha finalizado su ejecución y libera los recursos que ocupaba. Los procesos pueden cambiar de estado según las condiciones del sistema y las acciones que realizan. Estos cambios se denominan transiciones y se representan mediante diagramas de estados. Las transiciones más comunes son las siguientes: - Admisión: el sistema crea un nuevo proceso y lo coloca en el estado de listo. - Despacho: el planificador selecciona un proceso del estado de listo y lo pasa al estado de ejecución. - Interrupción: el proceso en ejecución recibe una interrupción del sistema o del usuario y se pasa al estado de listo, cediendo el procesador a otro proceso. - Bloqueo: el proceso en ejecución solicita una operación de entrada/salida o espera una señal y se pasa al estado de bloqueado, liberando el procesador para otro proceso. - Desbloqueo: el evento externo que esperaba el proceso bloqueado se produce y el proceso se pasa al estado de listo, quedando a la espera de un procesador. - Salida: el proceso en ejecución termina su ejecución y se pasa al estado de terminado, eliminándose del sistema.
BLOQUE DE CONTROL Y OPERACIONES SOBRE PROCESOS EN UN SISTEMA OPERATIVO Un bloque de control de procesos (BCP) es una estructura de datos que almacena la información necesaria para gestionar un proceso en un sistema operativo. - Creación de procesos: El sistema operativo crea un nuevo proceso cuando se ejecuta un programa o se solicita una tarea. Para ello, el sistema operativo asigna un identificador único al proceso, reserva espacio en memoria para el código y los datos del programa, inicializa el BCP con los valores iniciales y lo inserta en la cola de listos para su ejecución. - Destrucción de procesos: El sistema operativo elimina un proceso cuando este termina su ejecución o cuando se produce un error irrecuperable. Para ello, el sistema operativo libera la memoria ocupada por el proceso, devuelve los recursos asignados al proceso, elimina el BCP del proceso y lo saca de la cola de listos o de la cola donde se encontrara. - Suspensión y reanudación de procesos: El sistema operativo puede suspender temporalmente un proceso cuando este no puede continuar su ejecución por algún motivo, como por ejemplo la falta de un recurso o la expiración de su tiempo de CPU. Para ello, el sistema operativo cambia el estado del proceso a suspendido, guarda el contexto del proceso en su BCP y lo traslada a una cola de suspendidos. Cuando el motivo de la suspensión desaparece, el sistema operativo puede reanudar el proceso. Para ello, el sistema operativo cambia el estado del proceso a listo, restaura el contexto del proceso desde su BCP y lo inserta en la cola de listos para su ejecución. - Cambio de prioridad de procesos: El sistema operativo puede modificar la prioridad de un proceso para ajustar su orden de ejecución según algún criterio, como por ejemplo el tipo de proceso, el tiempo de espera o la importancia de la tarea. Para ello, el sistema operativo actualiza el valor de prioridad en el BCP del proceso y lo reubica en la cola de listos o en la cola donde se encontrara según su nueva prioridad. - Despertar un proceso: El sistema operativo puede activar un proceso que se encuentra en estado de bloqueado cuando se cumple la condición que lo mantiene en espera, como por ejemplo la disponibilidad de un recurso o la recepción de una señal. Para ello, el sistema operativo cambia el estado del proceso a listo y lo inserta en la cola de listos para su ejecución.
PROCESAMIENTO DE INTERRUPCIONES EN UN SISTEMA OPERATIVO. El procesamiento de interrupciones en un sistema operativo es el mecanismo que permite al procesador atender eventos externos o internos que requieren una atención inmediata, suspendiendo temporalmente la ejecución del programa actual. Los tipos de interrupciones son: - Interrupciones de hardware: Son generadas por dispositivos periféricos, como el teclado, el ratón, el disco duro, etc., para indicar que han terminado una operación o que necesitan algún servicio del sistema operativo. - Interrupciones de software: Son generadas por el propio programa en ejecución, mediante una instrucción especial, para solicitar algún servicio del sistema operativo, como la apertura de un archivo, la lectura de un dato, etc. - Excepciones: Son generadas por el procesador cuando detecta algún error o anomalía en la ejecución del programa, como una división por cero, una violación de memoria, una instrucción ilegal, etc. El manejador de interrupciones es la parte del sistema operativo que se encarga de responder a las interrupciones, identificando su origen, guardando el estado del programa interrumpido, ejecutando la rutina adecuada para atender la interrupción y restaurando el estado del programa interrumpido para continuar su ejecución. El scheduling o planificación del CPU es el proceso que decide qué programa o proceso se ejecuta en cada momento en el procesador, optimizando el uso de los recursos y garantizando la equidad y la eficiencia. El scheduling se puede clasificar según el plazo en que se realiza: - Scheduling a largo plazo: Es el que decide qué programas se admiten en el sistema para su ejecución, controlando el grado de multiprogramación (número de programas en memoria) y evitando la sobrecarga del sistema. - Scheduling a medio plazo: Es el que decide qué procesos se mantienen en memoria principal y cuáles se trasladan a memoria secundaria (disco), realizando un intercambio o swapping para liberar espacio y mejorar el rendimiento. - Scheduling a corto plazo: Es el que decide qué proceso se asigna al procesador en cada instante, según unos criterios o algoritmos de planificación, como el tiempo de llegada, el tiempo de ejecución estimado, la prioridad, etc.
PROCESOS CONCURRENTES ASÍNCRONOS Los procesos concurrentes asíncronos son aquellos que se ejecutan de forma independiente y sin un orden preestablecido, pero que pueden compartir recursos o comunicarse entre sí. En un sistema operativo, estos procesos deben coordinarse para evitar conflictos o inconsistencias en el uso de los recursos compartidos. Para ello, se utilizan mecanismos de sincronización que regulan el acceso a dichos recursos. Uno de estos mecanismos es la exclusión mutua, que consiste en garantizar que solo un proceso pueda acceder a un recurso compartido en un momento dado, evitando así que otros procesos interfieran o modifiquen su estado. La exclusión mutua se aplica a una porción de código llamada sección crítica, que es aquella que contiene las instrucciones que acceden al recurso compartido. Cada proceso debe solicitar el permiso para entrar en la sección crítica y liberarlo al salir, respetando el principio de no interferencia. Otro mecanismo de sincronización son los semáforos, que son variables enteras que indican el estado de un recurso compartido o la condición de espera de un conjunto de procesos. Los semáforos pueden tener dos valores: 0 o 1, lo que se conoce como semáforos binarios, o valores mayores que 0, lo que se conoce como semáforos generales. Los semáforos se utilizan para controlar el acceso a los recursos compartidos o para sincronizar la ejecución de los procesos concurrentes. Los procesos pueden realizar dos operaciones sobre los semáforos: wait (esperar) y signal (señalizar). La operación wait decrementa el valor del semáforo y bloquea al proceso si el valor es menor o igual a 0. La operación signal incrementa el valor del semáforo y desbloquea a algún proceso en espera si el valor es mayor que 0.
CONCLUSIÓN En conclusión, el núcleo del sistema operativo es la parte encargada de gestionar los recursos del hardware y proveer servicios a los programas de usuario. El núcleo controla el ciclo de vida de los procesos, que son las unidades básicas de ejecución en un sistema operativo. Los procesos pueden estar en diferentes estados según su actividad y pueden cambiar de estado por eventos internos o externos. El núcleo mantiene un bloque de control por cada proceso, donde almacena información relevante sobre su identidad, prioridad, estado, registros, etc. El núcleo también realiza operaciones sobre los procesos, como crearlos, eliminarlos, suspenderlos, reanudarlos, etc. El núcleo debe atender las interrupciones que se generan por el hardware o el software, para responder a las solicitudes de servicio o a las situaciones excepcionales. El núcleo debe garantizar la correcta ejecución de los procesos concurrentes asíncronos, que son aquellos que comparten recursos y se ejecutan de forma independiente. Para ello, el núcleo utiliza mecanismos de sincronización y comunicación, como la exclusión mutua, la sección crítica y los semáforos, que evitan las condiciones de carrera y los bloqueos.
REFERENCIAS - Wikipedia. (2021). Sistema operativo. Recuperado el 27 de octubre de 2023, de https://es.wikipedia.org/wiki/Sistema_operativo - Concepto.de. (2019). Sistema Operativo - Concepto, usos, tipos, funciones y ejemplos. Recuperado el 28 de octubre de 2023, de https://concepto.de/sistemaoperativo/ - Significados.com. (2019). Qué es un Sistema Operativo. Recuperado el 29 de octubre de 2023, de https://www.significados.com/sistema-operativo/ - Tanenbaum, A.S. y Bos, H. (2015). Sistemas operativos modernos (4ª ed.). Madrid: Pearson. - Silberschatz, A., Galvin, P.B. y Gagne, G. (2013). Fundamentos de sistemas operativos (9ª ed.). México: McGraw-Hill. - Stallings, W. (2018). Sistemas operativos (9ª ed.). México: Pearson.