Tipos de sistemas operativos: clasificación, estructura y componentes
Clasificación de los sistemas operativos
Según el número de usuarios
Según el número de usuarios que pueden utilizar los recursos del sistema simultáneamente:
- Monousuario: solo permite ejecutar los programas de un usuario al mismo tiempo.
- Multiusuario: permite proveer servicio y procesamiento a múltiples usuarios simultáneamente.
Según el número de procesos
- Monotarea: solo puede ejecutar un programa en un momento dado. De esta forma, los recursos del sistema estarán dedicados al programa hasta que finalice su tarea. Un ejemplo de sistema operativo monotarea es MS-DOS.
- Multitarea: permite ejecutar varios programas de forma concurrente. Para ello, el S.O. asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los programas que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.
Según el número de procesadores
- Uniproceso: el S.O. es capaz de manejar solamente un microprocesador de la computadora. Si hay más, quedan inutilizados.
- Multiproceso: el S.O. permite distribuir la carga de trabajo entre varios microprocesadores o varios núcleos (cores).
Según el tiempo de respuesta
- SO de tiempo real: el sistema operativo debe responder de forma inmediata (o casi inmediata).
Según el número de máquinas que involucre
- Centralizado: aquel que utiliza los recursos de una sola computadora.
- En red: son aquellos sistemas centralizados que disponen de un software que permite la capacidad de comunicarse y compartir recursos en una red de equipos; además, los usuarios pueden iniciar sesión en equipos remotos.
- Distribuido: permite utilizar los recursos de más de un ordenador al mismo tiempo de forma transparente a los usuarios del sistema, es decir, mostrándose el conjunto de computadoras como si fuera solo una.
Componentes de un sistema operativo
Capa del núcleo o kernel
Núcleo o kernel: es la parte del sistema que interactúa directamente con el hardware de la máquina. Esta capa suministra la funcionalidad básica del sistema operativo. Se encarga, entre otras funciones, de la gestión de recursos como el procesador, del tratamiento de interrupciones y de las operaciones básicas de manipulación de memoria.
Capa de servicios
Servicios: extiende la funcionalidad del núcleo y ofrece a los programas una interfaz para el acceso a los recursos del S.O. Incluye:
- Gestión de procesos: encargada de la creación, planificación y destrucción de procesos.
- Gestión de memoria: componente encargada de saber qué partes de memoria están libres y cuáles ocupadas, así como de la asignación y liberación de memoria según la necesiten los procesos.
- Gestión de la Entrada/Salida: se ocupa de facilitar el manejo de los dispositivos periféricos.
- Gestión de archivos y directorios: se encarga del manejo de archivos y directorios y de la administración del almacenamiento secundario.
- Comunicación y sincronización entre procesos: encargada de ofrecer mecanismos para que los procesos puedan comunicarse y sincronizarse.
- Seguridad y protección: este componente debe encargarse de garantizar la identidad de los usuarios y de definir lo que puede hacer cada uno de ellos con los recursos del sistema.
Capa del shell
Por último, está la capa del shell o intérprete de comandos, que ofrece una interfaz mediante la cual un usuario final puede interactuar con la máquina.
Estructura de un sistema operativo
Aunque en el punto anterior hayamos visto que un sistema operativo suele estar estructurado en tres capas software, la realidad es bien distinta.
Según su estructura interna, podemos clasificar los sistemas operativos en:
- Monolíticos: son aquellos que carecen de una estructura clara y definida. Todos los componentes del sistema operativo se encuentran integrados en un único programa ejecutable de gran tamaño.
- Micronúcleo: la idea básica detrás del diseño de micronúcleo es lograr una alta confiabilidad al dividir el sistema operativo en módulos pequeños y bien definidos. Solo uno de ellos (el micronúcleo) se ejecuta en modo privilegiado (es decir, puede hacer todo lo que quiera con el hardware del equipo), y el resto de módulos se ejecuta como si fuesen programas de usuario ordinarios, sin poder relativamente.
- Híbrido: intenta ser una mezcla de los dos tipos anteriores, en donde el núcleo y algunos servicios se ejecutan en modo privilegiado y los otros servicios en modo usuario. Windows usa esta estructura híbrida.