Procesos y memoria en el sistema operativo para el TAI, sin liarte

Procesador de un ordenador que representa la gestión de procesos y memoria del sistema operativo para el TAI

Un proceso es un programa en ejecución, y el sistema operativo es quien decide cuándo cada proceso usa la CPU y cómo se reparte la memoria entre todos ellos. En el examen TAI esto se traduce en preguntas sobre los estados de un proceso, los algoritmos de planificación de CPU y conceptos de gestión de memoria como la paginación o la memoria virtual. Es teoría pura del Bloque II, sin necesidad de programar nada.

¿Qué es un proceso para el sistema operativo?

Un proceso es la unidad básica de trabajo de un sistema operativo: un programa cargado en memoria, con sus propios recursos (memoria asignada, archivos abiertos, registros de CPU) y su propio flujo de ejecución. No hay que confundirlo con el programa en sí, que es solo el código almacenado en disco antes de ejecutarse.

Cada proceso tiene asociado un bloque de control de proceso (PCB, por sus siglas en inglés), una estructura de datos donde el sistema operativo guarda toda la información necesaria para gestionarlo: su estado, el valor de sus registros, su prioridad y los recursos que tiene asignados.

¿Qué estados puede tener un proceso?

A lo largo de su vida, un proceso pasa por varios estados:

  • Nuevo: el proceso se está creando.
  • Listo: está preparado para ejecutarse en cuanto la CPU quede libre.
  • En ejecución: sus instrucciones se están procesando en la CPU.
  • Bloqueado o en espera: no puede continuar porque está esperando un recurso (por ejemplo, una operación de entrada o salida).
  • Terminado: ha finalizado su ejecución y libera sus recursos.

El paso de "listo" a "en ejecución", y de vuelta a "listo" o "bloqueado", es precisamente lo que gestiona el planificador de la CPU.

¿Cómo decide el sistema operativo qué proceso ejecutar?

Cuando hay varios procesos en estado "listo" y solo una CPU disponible, el sistema operativo necesita un criterio para elegir. A esto se le llama planificación de la CPU, y existen varios algoritmos clásicos que suelen aparecer en el examen:

Algoritmo Cómo funciona
FCFS (FIFO) El primero que llega es el primero en ejecutarse, sin expulsión.
SJF Se ejecuta primero el proceso con menor tiempo de ejecución estimado.
Round Robin Cada proceso recibe una porción fija de tiempo (quantum) y luego pasa al final de la cola.
Por prioridades Se ejecuta primero el proceso con mayor prioridad asignada.

Round Robin es especialmente frecuente en preguntas de examen porque es la base de los sistemas de tiempo compartido, como los que usamos a diario en Windows o Linux.

¿Qué es la memoria virtual?

La memoria virtual es una técnica que permite a un proceso funcionar como si dispusiera de más memoria RAM de la que realmente tiene el equipo. El sistema operativo combina memoria física con espacio de disco para simular ese espacio adicional, moviendo partes de un proceso entre RAM y disco según se necesiten.

Esto tiene dos ventajas clave que le gustan mucho a los examinadores: permite ejecutar más procesos de los que cabrían solo en RAM, y aísla a cada proceso, que "cree" tener toda la memoria para él solo.

¿Qué son la paginación y la segmentación?

Son las dos técnicas principales para gestionar cómo se reparte la memoria entre procesos:

  • Paginación: divide la memoria en bloques de tamaño fijo llamados páginas (en memoria física) y marcos (en RAM). Es el método más usado en los sistemas operativos actuales porque evita la fragmentación externa.
  • Segmentación: divide la memoria en bloques de tamaño variable llamados segmentos, cada uno correspondiente a una parte lógica del programa (código, datos, pila).

Muchos sistemas modernos combinan ambas técnicas en un esquema de segmentación paginada.

¿Qué es el swapping?

El swapping consiste en mover un proceso completo de la memoria RAM al disco (y viceversa) cuando no hay espacio suficiente para todos los procesos activos. Es un mecanismo más drástico que la paginación, que solo mueve páginas sueltas, no el proceso entero.

¿Qué es un interbloqueo (deadlock)?

Un interbloqueo se produce cuando dos o más procesos se quedan bloqueados esperando indefinidamente un recurso que tiene retenido otro proceso del mismo grupo, de forma que ninguno puede avanzar. Es un concepto que suele preguntarse junto a la planificación de procesos porque ambos forman parte de la gestión del multiproceso.

Para que se produzca un interbloqueo tienen que darse a la vez cuatro condiciones clásicas: exclusión mutua (el recurso solo lo puede usar un proceso a la vez), retención y espera (un proceso conserva recursos mientras espera otros), no expropiación (no se le puede quitar un recurso a la fuerza) y espera circular (una cadena de procesos que se esperan entre sí formando un círculo). El sistema operativo puede prevenir, evitar o simplemente detectar y recuperar estos bloqueos, según la estrategia que implemente.

¿Por qué le interesa esto a un TAI en su trabajo diario?

Más allá del examen, entender procesos y memoria ayuda a interpretar por qué un servidor se ralentiza cuando se satura de memoria, por qué conviene revisar los procesos activos antes de reiniciar un servicio, o por qué un sistema empieza a hacer swapping constante (lo que se conoce como "thrashing") cuando le falta RAM. Son la base teórica que sostiene tareas muy prácticas de administración de sistemas.

BLOQUE II
Tecnología Básica

Procesos, memoria, arquitectura del ordenador y todo lo demás del Bloque II explicado sin liarte.

Si todavía no tienes claros los componentes físicos del ordenador, te conviene repasar antes esta guía de arquitectura del ordenador para el TAI, y si quieres ver cómo se aplican estos conceptos en un sistema real, echa un vistazo a los comandos básicos de Linux que más caen en el examen.

Preguntas frecuentes sobre procesos y memoria en el TAI

¿Es lo mismo un proceso que un hilo (thread)?

No. Un proceso tiene su propio espacio de memoria independiente, mientras que un hilo es una unidad de ejecución más ligera que comparte memoria con otros hilos del mismo proceso.

¿Qué diferencia hay entre memoria RAM y memoria virtual?

La RAM es la memoria física real instalada en el equipo. La memoria virtual es una abstracción que combina esa RAM con espacio en disco para que los procesos dispongan de más memoria de la que hay físicamente disponible.

¿Qué es la fragmentación de memoria?

Es el problema de tener espacio libre en memoria repartido en huecos pequeños y no contiguos, lo que impide alojar procesos que necesitarían un bloque más grande aunque haya suficiente espacio libre en total.

¿Round Robin siempre es el mejor algoritmo de planificación?

No necesariamente: depende del quantum elegido y del tipo de carga de trabajo. Un quantum muy corto genera demasiados cambios de contexto, y uno muy largo se parece demasiado a FCFS.