Breve introducción a los procesos en GNU/Linux para usuarios

Por Jorge Suárez el 24 de Diciembre de 2009, 10:00 en Guías/Trucos, Software Libre.

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.

Comentarios

  1. kamikaze_pum

    Últimamente, Bitelia me está sorprendiendo gratamente…

    Responder

  2. kamikaze_pum

    No solo por que sean entradas sobre Linux, si no porque la temática es original y útil.

    Responder

  3. Me encantó este articulo, hasta lo agregué a mis favoritos.

    Desde hace mucho tiempo quería saber que era eso, pensé que todo eso era lo mismo. xD

    Responder

  4. Gracias por la info, la verdad no lo sabia. Excelente blog, pero dps de leer este articulo, entre al Monitor del Sistema, y encontre un proceso con Estado Zombie (el proceso era Sh) Ese estado que siginifica? Gracias!

    Responder

    • Zombie significa muerto viviente.
      Un programa zombie es un programa corriendo a 0%, finalizado, y esperando a entregar un mensaje llamado signal al programa que lo invocó.

      Responder

  5. OOOOOOOOOOOOOhhhh, ya entendí…

    Responder

  6. Estupendo post … muy educativo, y bastante aclaratorio. Bien por Bitelia,

    Responder

  7. Lindo artículo

    Responder

  8. Muy bueno el artículo si señor.
    Yo esto ya lo sabía, pero realmente lo aprendí hace poco y con mas dificultad que si lo hubiese leido aquí.

    Responder

  9. Muy buen articulo, un saludo desde El Salvador!

    Responder

Información sobre comentarios

¡Gracias por dejarnos tus comentarios! — por favor intenta mantener tu opinión relacionada con la anotación, no usar insultos, agresiones, o faltas de respeto al autor y otros participantes de la discusión, en caso de no hacerlo tu comentario podría ser borrado.

Existe mucha más información en nuestra política de comentarios.