Gestión de Procesos e Hilos
La gestión de procesos e hilos es la forma en que el sistema operativo crea, programa y elimina unidades de ejecución —procesos con sus propios espacios de direcciones e hilos que comparten uno— y alterna el procesador entre ellos.
Definition
La gestión de procesos e hilos comprende los mecanismos del sistema operativo que representan los programas en ejecución como procesos e hilos, mantienen su estado de ejecución, los crean y terminan, y alternan el procesador entre ellos mientras preservan y restauran sus contextos.
Scope
Este tema abarca la abstracción de procesos y su ciclo de vida, el bloque de control de procesos, la creación y terminación de procesos, los hilos y los modelos de multiprocesamiento, el cambio de contexto y la comunicación entre procesos. Excluye la política de qué tarea lista se ejecuta a continuación (planificación de la CPU) y la coordinación de datos compartidos (concurrencia, tratada en sistemas operativos en general), centrándose en las estructuras que representan y gestionan la ejecución.
Core questions
- ¿Qué estado debe mantener el sistema operativo para cada proceso e hilo?
- ¿Cómo se crean los procesos y en qué se diferencian los hilos de los procesos?
- ¿Qué sucede durante un cambio de contexto y cuál es su costo?
- ¿Cómo se comunican y coordinan los procesos a través de los espacios de direcciones?
Key concepts
- proceso y bloque de control de proceso
- estados y ciclo de vida del proceso
- hilo y multiprocesamiento
- hilos a nivel de usuario vs. hilos a nivel de kernel
- cambio de contexto
- fork y exec
- comunicación entre procesos
- aislamiento de procesos
Key theories
- Abstracción de procesos
- El sistema operativo representa cada programa en ejecución como un proceso con su propio espacio de direcciones y un contexto de ejecución almacenado en un bloque de control de proceso, lo que permite el aislamiento, la planificación y el uso compartido controlado del procesador.
Mechanisms
Cada proceso se describe mediante un bloque de control de proceso que contiene sus registros, asignaciones de memoria, archivos abiertos y estado de planificación. El sistema crea procesos (por ejemplo, mediante fork y exec), los transiciona a través de estados (nuevo, listo, en ejecución, esperando, terminado) y alterna entre ellos guardando un contexto y restaurando otro. Los hilos comparten el espacio de direcciones de su proceso, lo que hace que el cambio sea más económico pero requiere sincronización; la comunicación entre procesos utiliza tuberías (pipes), mensajes o memoria compartida.
Clinical relevance
La gestión de procesos e hilos subyace a la multitarea en todos los sistemas modernos. El aislamiento de procesos es una piedra angular de la seguridad y la estabilidad, los hilos permiten aplicaciones receptivas y paralelas, y el costo del cambio de contexto y la comunicación entre procesos da forma al diseño de servidores, entornos de ejecución y software concurrente.
History
El concepto de proceso maduró con los sistemas de multiprogramación y tiempo compartido en la década de 1960, y UNIX estableció el modelo fork/exec y la abstracción de procesos ampliamente utilizada hoy en día. Se agregaron hilos para explotar los multiprocesadores y mejorar la capacidad de respuesta, con estándares como los hilos POSIX que formalizan el enhebrado visible para el usuario.
Debates
- Hilos a nivel de usuario versus hilos a nivel de kernel
- Los hilos a nivel de usuario son económicos de gestionar, pero no pueden programarse de forma independiente entre núcleos y bloquean todo el proceso en una llamada bloqueante, mientras que los hilos a nivel de kernel se integran con el planificador con una sobrecarga mayor; los modelos híbridos intentan combinar los beneficios.
Key figures
- Ken Thompson
- Dennis Ritchie
- Per Brinch Hansen
- Abraham Silberschatz
- Andrew S. Tanenbaum
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- ¿Qué información mantiene el sistema operativo para cada proceso?
- Mantiene un bloque de control de proceso que registra los registros guardados y el contador de programa del proceso, las asignaciones de memoria, el estado y la prioridad de planificación, los archivos abiertos y la información de contabilidad e identidad; todo lo necesario para suspender el proceso y luego reanudarlo exactamente donde lo dejó.
- ¿Por qué es más económico cambiar entre hilos que entre procesos?
- Los hilos dentro de un proceso comparten el mismo espacio de direcciones y recursos, por lo que el cambio entre ellos no requiere cambiar las asignaciones de memoria. El cambio entre procesos también cambia los espacios de direcciones y puede vaciar las cachés de traducción, lo que lo hace más costoso.