¿Cómo funciona realmente un sistema operativo?

Un SO (sistema operativo) es la pieza fundamental del software en un ordenador que controla y coordina el acceso a los recursos del sistema, desde el hardware hasta los programas y aplicaciones. Es el responsable de tareas como la gestión de memoria y procesamiento, la organización de archivos y la ejecución de programas.

Pero, ¿Cómo funciona el interior de un sistema operativo? ¿Cómo logra coordinar y controlar todos los componentes de un ordenador para asegurar su correcto funcionamiento?

Para poder responder a estar preguntar debemos entender que hay algo conocido como gestión de recursos, que es básicamente el que abarca todas las tareas que realiza un sistema operativo:


Gestión de Recursos

Es una responsabilidad clave de los sistemas operativos que brinda la gestión de varios recursos disponibles para ellos (espacio de memoria principal, dispositivos de E/S, procesadores). Cualquier asignación de recursos debe tener en cuenta tres factores:

Equitatividad. Normalmente, se desea que todos los procesos que compiten por un determinado recurso, se les conceda un acceso equitativo a dicho recurso. Esto es especialmente cierto para trabajos de la misma categoría, es decir, trabajos con demandas similares.

Por otro lado, el sistema operativo puede necesitar discriminar entre diferentes clases de trabajos con diferentes requisitos de servicio. El sistema operativo debe tomar las decisiones de asignación y planificación con el objetivo de satisfacer el conjunto total de requisitos. Además, debe tomar las decisiones de forma dinámica. A esto se le conoce como Respuesta diferencial

Por último tenemos el factor de Eficiencia. El sistema operativo debe intentar maximizar la productividad, minimizar el tiempo de respuesta.


Una vez entendido esto, explicare algunos otros conceptos que abarcan las gestión de recursos:


Inicialización del sistema

Durante la inicialización de un SO, se realizan tareas como la detección y configuración del hardware, incluyendo la detección de dispositivos de entrada/salida (también conocidos como dispositivos E/S), la configuración de la memoria y los recursos de la CPU. También se realiza una verificación de la integridad del sistema y se cargan los controladores necesarios para el hardware.

Gestión de procesos

La gestión de procesos en un SO incluye la asignación de tiempo de CPU, memoria y otros recursos a los procesos y la coordinación de su ejecución. Además, un SO también utiliza mecanismos de planificación de procesos para asegurar un equilibrio entre la velocidad y la eficiencia del sistema.

El sistema operativo utiliza un algoritmo de planificación de procesos para decidir qué proceso debe ejecutarse en cada momento. Existen varios tipos de algoritmos de planificación de procesos, incluyendo el algoritmo de planificación por prioridades, el algoritmo de planificación por ronda y cola (Round Robin) y el algoritmo de planificación por tiempo real.

Gestión de memoria

Algunos sistemas operativos utilizan un sistema de paginación para administrar la memoria RAM. La paginación permite al sistema transferir partes de un programa desde el disco duro a la memoria RAM cuando es necesario. También se implementan sistemas de gestión de memoria virtual, que permite a los programas acceder a más memoria de la que realmente está disponible en la memoria RAM.

Gestión de entrada/salida

Los sistemas operativos incluyen un sistema de controladores de dispositivo que permite a los programas interactuar con los dispositivos de entrada/salida. Esto incluye dispositivos como el teclado, el mouse, la pantalla y el disco duro.

Gestión de archivos

algunos sistemas operativos como Windows 10 utilizan un sistema de archivos NTFS para organizar y almacenar archivos en el disco duro. NTFS proporciona una estructura para acceder y manipular archivos en el sistema, incluyendo la asignación de permisos de acceso y la encriptación de archivos. Además, Windows 10 también incluye un sistema de búsqueda de archivos para ayudar a los usuarios a encontrar archivos en el sistema.


¿Cómo sabe el SO que tiene que hacer todas esas tareas?

Uno de los componentes clave de un sistema operativo es el núcleo o Kernel. El núcleo es el corazón del sistema operativo y se encarga de la gestión de los recursos del sistema, es decir, todos o los puntos resaltados con anterioridad. 

Además del núcleo, los sistemas operativos también incluyen una serie de programas y librerías que proporcionan servicios adicionales y funcionalidades a los programas del usuario. Por ejemplo, pueden incluir programas para el manejo de archivos, la gestión de la red y la impresión (dispositivos).

También se incluyen varias estructuras de datos como colas de procesos y tablas de archivos, para mantener un registro de los recursos y los procesos en el sistema. Estas estructuras de datos se actualizan constantemente a medida que los programas solicitan y liberan recursos, y el sistema operativo utiliza esta información para tomar decisiones sobre qué tareas realizar.


En resumen, el sistema operativo es capaz de realizar sus tareas a través de una combinación de programas, librerías, estructuras de datos y algoritmos de gestión de recursos, todo lo cual está diseñado para coordinar y administrar los recursos de la computadora de manera eficiente y sin conflictos. Por lo tanto, entender en su totalidad el funcionamiento y toda la estructura de un SO puede tomar demasiado tiempo. Pero para hacernos una Idea William Stalling Propone en su libro esta tabla de la estructura de un SO:

propuesto por William Stallings en su libro Sistemas Operativos: Aspectos internos y principios de diseño.

Propuesto por William Stallings en su libro Sistemas Operativos: Aspectos internos y principios de diseño


En la capa 1 (ver imagen de arriba) encontramos el hardware de la maquina. como puertas lógicas y celdas de memoria hasta las capas mas superficiales del SO como Sistemas de ficheros donde se le da soporte al almacenamiento a largo plazo en ficheros con nombre. y el interprete de mandatos que proporciona una interfaz del sistema operativo al usuario.

Referencias


Comentarios