Fundamentos y Componentes Clave de un Sistema Operativo (SO)

Definición de Sistema Operativo

Un Sistema Operativo (SO) es un conjunto de programas y funciones que gestionan y coordinan el funcionamiento del hardware y del software, ofreciendo al usuario una forma sencilla de comunicarse con el ordenador.

Gestiones Principales del SO

Las gestiones fundamentales que realiza un SO incluyen:

  • Gestión del procesador.
  • Gestión de la memoria.
  • Gestión de procesos.
  • Gestión de dispositivos de almacenamiento y periféricos de Entrada/Salida (E/S).
  • Gestión de la información.

Funciones Principales del SO

Las funciones esenciales de un Sistema Operativo son:

  • Asignar tareas.
  • Controlar el funcionamiento interno.
  • Ayudar al usuario a comunicarse con el hardware y con los otros programas, ofreciendo una interfaz adecuada.

Gestión de Memoria

La parte del sistema operativo que administra la memoria es el Administrador de Memoria. Sus responsabilidades son:

  • Si el sistema operativo admite multiprogramación, debe llevar un registro de las zonas de memoria que se están utilizando y por qué procesos (utilizando métodos de paginación o segmentación).
  • Gestionar el intercambio de datos entre memoria y disco.

Cuando un programa a ejecutar es excesivamente grande para el tamaño físico de la memoria, no es necesario que permanezca todo cargado; solo la parte que se está ejecutando. El resto permanecerá en memoria virtual. Si se necesita ejecutar una parte del programa que está en memoria virtual, esta pasará a la memoria RAM para su ejecución, y otra parte que antes estaba en RAM pasará a virtual. Este proceso se conoce como swapping.

Estructura de los Sistemas Operativos

Cada SO estructura sus componentes de distinta forma. Distinguimos principalmente dos grupos de arquitecturas:

Sistemas Operativos Monolíticos

Los SO de este tipo no tienen una estructura clara y definida. Sus componentes se encuentran integrados en un único programa (el SO) que se ejecuta en un único espacio de direcciones. Todas las funciones del SO se realizan en modo núcleo.

  • Evolución: Surgieron de SO sencillos a los cuales se les fueron añadiendo funciones, creciendo hasta convertirse en programas grandes y complejos formados por muchas funciones al mismo nivel.
  • Ejemplos: MS-DOS, UNIX y Linux (en sus inicios o ciertas implementaciones).
  • Problema: Es muy complicado añadir nuevas funciones y servicios, ya que hay que modificar miles de líneas de código. La solución pasa por dotar al SO de cierta estructura.

Sistemas Operativos Estructurados

Estos sistemas buscan una organización más modular:

Sistemas por Capas

El SO está organizado como una jerarquía de capas. La capa superior ofrece una interfaz clara y definida, y los servicios se ejecutan en la capa inferior.

  • Ventaja: Modularidad y ocultación de la información. Las capas se construyen y depuran por separado, lo que evita la interferencia entre ellas.

Sistemas basados en Micronúcleo

En este caso, la mayor parte de los servicios y funciones del SO se ejecutan en modo usuario (servidores), dejando la parte esencial del SO en modo núcleo (Micronúcleo). El SO está formado por diversas partes, cada una de las cuales puede desarrollarse por separado.

Estados de un Proceso

Un proceso atraviesa diferentes estados durante su ciclo de vida:

  • Nuevo: El cargador le asigna los recursos necesarios (excepto la CPU).
  • Preparado en espera o activo: El proceso está listo para ejecutarse; espera su turno para utilizar su intervalo de CPU.
  • En ejecución: El procesador está ejecutando instrucciones de ese proceso en ese instante. Existen dos modos de ejecución que conceden diferentes privilegios para acceder al hardware u otros programas:
    • Modo privilegiado: Usado por el núcleo. Permite acceder directamente a todo el hardware y a toda la memoria.
    • Modo usuario: Modo normal en el que existe protección de memoria. Un proceso solo puede acceder a su memoria y a su máquina virtual.
  • Bloqueado: El proceso está retenido, por ejemplo, porque necesita algún recurso que está siendo utilizado por otro proceso. Puede quedarse en este estado indefinidamente si no desaparece la causa del bloqueo.
  • Zombi: El proceso ha terminado de ejecutarse, pero aún faltan por liberar algunos recursos.

En un sistema multiprogramación, cuando un proceso pasa de un estado a otro, se produce un cambio de contexto.

Software Libre y Licencias

El Copyleft

Las licencias libres pueden clasificarse como Copyleft. El contenido bajo las reglas del Copyleft se caracteriza por exigir licenciar con la misma licencia las obras derivadas del programa. Esto es también conocido como “efecto vírico” (término usado muchas veces para atacar el uso de licencias libres), y produce la transmisión de la libertad entre sus obras y sus derivadas.

Las Cuatro Libertades del Software Libre

Las libertades fundamentales del Software Libre son:

  • Libertad 0: Poder usar el programa con cualquier propósito.
  • Libertad 1: Poder estudiar cómo funciona el programa y poder modificarlo.
  • Libertad 2: Poder distribuir copias del programa.
  • Libertad 3: Poder mejorar el programa y poder compartir dichas mejoras para beneficio de todos.

Clasificación de SO Según Tiempo de Respuesta

Se define como el tiempo que tarda el usuario del sistema en obtener los resultados después de iniciar la ejecución.

Tiempo Real

Cuando se realiza una transacción que le ha sido ordenada desde ese mismo momento, sin espera alguna.

Tiempo Compartido

Cada proceso utilizará ciclos de la CPU hasta que finalice. Todos los sistemas multitarea y/o multiusuario utilizan esta técnica. La transacción puede tener que esperar para ser realizada. Los sistemas en tiempo compartido intentan dar la sensación de ser en tiempo real.