Gestión de Procesos: modelos y jerarquías.

¿Cómo gestiona los procesos el Sistema Operativo?

Por Juan Bernal (@bernalcodes)

En el funcionamiento habitual del Sistema Operativo, todo el tiempo se están gestionando procesos. Lawrence (2023) define la gestión de procesos como una función del sistema operativo que involucra diferentes tareas como la creación, programación y terminación de procesos, evitando "puntos muertos".

Podemos hablar de procesos como programas en ejecución, parte importante, técnicamente fundamental, del sistema operativo moderno. El SO debe asignar recursos que permitan a los procesos compartir e intercambiar información. También protege los recursos de cada proceso de otros métodos y permite la sincronización entre procesos.

Es tarea del sistema operativo el gestionar todos los procesos activos del sistema. Autores como Silberschatz (2018) y Tanenbaum (2015) se enfocan en teorizar cómo se realiza el manejo de operaciones, a través de la ejecución de tareas, como la programación de procesos y la asignación de recursos. Es importante resaltar el que los procesos manejan ciertos estados que van de la mano con la gestión eficiente de los mismos:

- Nuevo: el proceso acaba de ser creado, pero aún no se ha iniciado.

- Listo: el proceso está listo para ser ejecutado y está esperando que la CPU le asigne tiempo de ejecución.

- En ejecución: el proceso está siendo ejecutado actualmente por la CPU.

- Bloqueado: el proceso está esperando a que se complete alguna operación de entrada/salida (E/S) o que se libere algún recurso.

- Finalizado: el proceso ha terminado su ejecución y ha sido eliminado del sistema operativo.

- Suspendido: el proceso ha sido suspendido temporalmente y se ha liberado la memoria que ocupaba. El proceso se puede reanudar más tarde.

- Detenido: el proceso se ha detenido por algún motivo, pero aún no ha finalizado. En algunos sistemas operativos, este estado se puede usar para depurar procesos.

Para la correcta gestión de procesos del sistema operativo, este debe realizar ciertas actividades de alta importancia y complejidad, como son:

- Creación de procesos: El sistema operativo crea nuevos procesos cuando un usuario inicia un programa o cuando se inicia un servicio en segundo plano. Durante la creación de procesos, se asigna un espacio de memoria para el proceso y se inicializan sus variables.

- Planificación de procesos: El sistema operativo decide qué proceso debe ejecutarse en la CPU en un momento determinado. La planificación de procesos se realiza mediante algoritmos de planificación, que pueden ser basados en prioridades, rondas o tiempo real.

- Asignación de recursos: El sistema operativo asigna los recursos necesarios para que los procesos se ejecuten de manera adecuada. Por ejemplo, se asigna la cantidad necesaria de memoria para el proceso y se le permite acceder a los dispositivos de entrada y salida.

- Sincronización de procesos: Los procesos pueden compartir recursos, como archivos o memoria. El sistema operativo se encarga de la sincronización de procesos para evitar conflictos entre ellos y garantizar la integridad de los datos.

- Terminación de procesos: Cuando un proceso ha terminado de ejecutarse, el sistema operativo lo elimina de la memoria y libera los recursos asignados a él.


A continuación un corto pero interesante cuestionario sobre la gestión de procesos, ¡Buena suerte!




Bibliografía utilizada para escribir este post:
- Williams, L. (Enero 31 de 2023). "Process Management in OS: PCB in Operating System". Guru99.
- JavaTPoint. (s.f.) "Process Management in OS". JavaTPoint.
Silberschatz, A., Galvin, P. B., & Gagne, G. (2018). "Operating system concepts". 10th ed. Wiley.
- The Linux Kernel Documentation. (s.f.). "Process management".
- Tanenbaum, A. S. (2015). "Modern operating systems". 4th ed. Prentice Hall.
- Arpaci-Dusseau, R. H., & Arpaci-Dusseau, A. C. (2015). "Operating systems: Three easy pieces". Arpaci-Dusseau Books.
- Russinovich, M., Solomon, D., & Ionescu, A. (2012). "Windows internals". 6th ed. Microsoft Press.
- Love, R. (2010). "Linux kernel development". 3rd ed. Addison-Wesley Professional.
- ACM Digital Library. (s.f.). https://dl.acm.org/
- IEEE Xplore Digital Library. (s.f.). https://ieeexplore.ieee.org/

Comentarios