Dudas con procesos

El otro día vimos seis formas de deshacernos de las aplicaciones colgadas en GNU/Linux a través de distintas herramientas tanto gráficas como textuales. A pesar de que algunas de ellas son muy sencillas, requieren de algunos conocimientos mínimos que, en principio, un usuario no tiene por qué tener dominados.

En este breve artículo intentaremos aclarar __qué significan todas esas palabras__ que podemos encontrar en el monitor del sistema de GNOME: qué son exactamente los procesos, por qué duermen, qué ocurre cuando los detienes y la diferencia entre finalizarlos y matarlos.

¿Programa, aplicación o proceso?

En esta captura vemos cómo Gimp utiliza tres procesos: el principal y dos hijos
En esta captura vemos cómo Gimp utiliza tres procesos: el principal y dos hijos

Habitualmente, cada aplicación está formada por un proceso. Es cierto que puede estar formada por varios, pero lo normal es que al menos tenga un proceso principal y el resto, de haberlos, sean hijos del primero, de forma que ese es el único proceso que debe importarnos a la hora de librarnos de la aplicación.

Cada proceso tiene un _PID_, un __número identificador único__. También tiene __un nombre__, aunque este puede estar repetido. Es por ello que la forma más básica de dirigirse a un proceso es mediante su _PID_, porque no hay lugar a equívocos.

¿Los procesos duermen? ¿Es lo mismo que detenerlos?

De entre todos estos procesos, solo uno está utilizando el procesador
De entre todos estos procesos, solo uno está utilizando el procesador

En el monitor del sistema de GNOME verás que hay unos pocos procesos que están ejecutándose y __el resto están durmiendo__. Cuando un proceso no necesita utilizar el procesador, se dice que está durmiendo, pero en realidad está activo igualmente. Cuando realice alguna actividad su estado volverá a ejecución por unos instantes.

Un usuario puede __detener manualmente__ un proceso. El proceso detenido se congela completamente y permanece en un estado inalterable hasta que el usuario decide que puede continuar.

Por lo tanto, un proceso activo puede estar en ejecución o dormido, pero activo siempre, o bien puede estar detenido.

¿Qué diferencia hay entre finalizar y matar un proceso?

Cuando le decimos a un proceso que se detenga, que continúe, que finalice o que se muera en realidad lo que estamos es __enviándoles una señal mediante un mecanismo estándar__ presente en muchos sistemas operativos.

Las señales tienen comportamientos por defecto, pero los procesos también pueden cambiarlo. Cuando a un proceso se le envía una __señal de finalizar__ (también llamada _TERM_) se espera que este finalice, pero puede no hacerlo ya que es él el que debe hacer caso a la señal y terminar. Por el contrario, la __señal de matar__ (llamada también _KILL_) no se puede ignorar: el proceso finaliza esté como esté y ni siquiera se entera.

Esto solo es una introducción, pero hay más...

Espero que con esta breve introducción, los más novatos puedan entender mejor los programas como el ya mencionado monitor de sistema de GNOME y otras herramientas similares. Por supuesto, hay mucha tela que cortar sobre este asunto, aunque no es mi intención impartir cátedra de ninguna forma, para ello ya están los manuales que explican con todo lujo de detalle cómo funcionan estos mecanismos.

Más guías y consejos

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito