Gestión de procesos
1. Gestión de procesos #
Un proceso es un programa en ejecución, incluyendo:
- El código del programa.
- Sus datos y variables.
- Los recursos asignados (CPU, memoria, archivos, dispositivos).
👉 Ejemplo: abrir Google Chrome crea un proceso (o varios, uno por pestaña).
El sistema operativo debe controlar qué procesos se ejecutan, cuándo y cómo, para garantizar que el ordenador funcione de forma ordenada y eficiente.
Funciones de la gestión de procesos #
-
Creación y finalización de procesos
- Al ejecutar un programa, el SO crea un proceso.
- Al cerrarlo, libera todos sus recursos.
-
Planificación (scheduling)
- Decide qué proceso usa la CPU en cada momento.
- El objetivo: repartir el tiempo de forma justa y eficiente.
-
Cambio de contexto (context switch)
- Cuando el SO interrumpe un proceso para ejecutar otro, guarda el estado del primero y carga el del segundo.
- Esto da la ilusión de que todos funcionan a la vez (multitarea).
-
Comunicación entre procesos (IPC, Inter-Process Communication)
- Los procesos pueden intercambiar datos mediante tuberías (pipes), colas de mensajes o memoria compartida.
-
Sincronización
- Coordina procesos que dependen unos de otros, evitando errores (ej. dos procesos escribiendo en el mismo archivo a la vez).
Estados de un proceso #
Un proceso no siempre está ejecutándose, puede estar en distintos estados:
- Nuevo: acaba de crearse.
- Listo (ready): esperando a que la CPU lo ejecute.
- En ejecución (running): usando la CPU en ese momento.
- Bloqueado (waiting): esperando un recurso (ej. lectura de disco).
- Terminado: ya ha finalizado.
👉 El sistema operativo mantiene una tabla de procesos (Process Control Block, PCB) con toda la información de cada proceso.
Tipos de procesos #
- De usuario: aplicaciones normales (navegador, editor de texto, juegos).
- Del sistema: procesos internos del SO (ej. demonios en Linux o servicios en Windows).
Ejemplo práctico #
Si abres Word y empiezas a imprimir:
- Se crea un proceso para Word.
- El SO le asigna memoria y CPU.
- Cuando envías a imprimir, se bloquea un momento hasta que la impresora responde.
- El SO mantiene a otros procesos (Spotify, navegador) activos mientras tanto.
Resumen del tema
Conceptos clave #
- Concepto de Proceso: programa en ejecución con espacio de memoria propio (código, datos, pila/heap) y recursos asignados.
- Bloque de Control de Proceso (PCB): estructura de datos del kernel que almacena PID, estado, contador de programa (PC), registros de CPU y descriptores abiertos.
- Diagrama de Estados del Proceso: Nuevo (New) Listo (Ready) En Ejecución (Running) Bloqueado/Esperando (Waiting) Terminado (Terminated).
- Cambio de Contexto (Context Switch): mecanismo que guarda los registros del proceso actual y restaura los del siguiente para habilitar la multitarea.
- Comunicación y Sincronización (IPC): intercambio de información y exclusión mutua mediante tuberías (pipes), sockets, colas de mensajes y memoria compartida.
Qué debes recordar #
Un proceso es una unidad activa de ejecución administrada a través del PCB, transitando entre estados (Listo, Ejecución, Bloqueado) mediante planificación y cambios de contexto.