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?
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.
En esta captura vemos cómo Gimp utiliza tres procesos: el principal y dos hijos
¿Los procesos duermen? ¿Es lo mismo que detenerlos?
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.
De entre todos estos procesos, solo uno está utilizando el procesador
¿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.
0 comentarios