PROCESOS EN LINUX
GC-F-004 V.01
Carlos A Sanchez Castillo
Jarrinson Valencia Vente
Jhon Jairo Orobio
Ricardo Reyes
Gustavo Agudelo
GC-F-004 V.01
Procesos en Linux
¿QUE ES UN PROCESO EN LINUX?
Podríamos definir a los procesos como programas que están corriendo en nuestro Sistema Operativo y
se identifican mediante el [Link] PID (Process Identificator) es el número que se le asigna a un
proceso cuando se inicia. Son números crecientes y los procesos que se terminan y luego se vuelven a
iniciar van a tener un PID diferente. Por ejemplo, el PID número 1 se le asigna a por norma general a
init que es el primer proceso que inicia el sistema al ser arrancado. Dependiendo de la forma en que
corren estos programas en LINUX se los puede clasificar en tres grandes categorías:
GC-F-004 V.01
Procesos en Linux
Procesos Normales Procesos Demonios Procesos Zombie
GC-F-004 V.01
Procesos en Linux
PROCESOS NORMALES
Los procesos de tipo normal
generalmente son lanzados en una
terminal (tty) Y corren a nombre de un
usuario. Osea, son los programas que
utiliza el usuario generalmente y se
encuentran conectados a una terminal. El
programa aparecerá el pantalla y
interactuara con el usuario.
GC-F-004 V.01
Procesos en Linux
PROCESOS DEMONIOS
GC-F-004 V.01
Procesos en Linux
PROCESOS ZOMBIE
En sistemas operativos Unix un proceso zombie es
un proceso que ha completado su ejecución pero
aún tiene una entrada en la tabla de procesos. Esto
se debe a que dicho proceso (proceso hijo) no
recibió una señal por parte del proceso de nivel
superior (proceso padre) que lo creó informándole
que su vida útil ha terminado. Se pueden deber a
errores de programación, a situaciones no
contempladas por el programador y generalmente
provocan lentitud y/o inestabilidad en el Sistema.
GC-F-004 V.01
Procesos en Linux
ESTADOS DE LOS PROCESOS
Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que
se encuentra. El número de posibles estados varía de un sistema operativo a otro, en este caso Linux
maneja los siguientes:
• Activo
• Preparado
• Bloqueado
GC-F-004 V.01
Procesos en Linux
ESTADO ACTIVO
El proceso está empleando la CPU, por tanto, está ejecutándose. Puede haber tantos procesos activos
como procesadores haya disponibles. Por tanto, si el sistema dispone de un único procesador,
únicamente puede haber un proceso activo a la vez
GC-F-004 V.01
Procesos en Linux
ESTADO PREPARADO
El proceso no está ejecutándose, pero es candidato a pasar a estado activo. Es el planificador el que,
en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos
preparados para pasar a estado activo.
GC-F-004 V.01
Procesos en Linux
ESTADO BLOQUEADO
El proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una operación
de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación sobre un
semáforo. El dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la acción que realizaba
mediante una INTERRUPCIÓN, dejando el S.O. lo que está haciendo para atender a esta última. Tras
esto, el S.O. comprueba cuales son los procesos que fueron bloqueados por ese evento externo,
cambiándolos al estado de preparado.
GC-F-004 V.01
Procesos en Linux
DIAGRAMA DE ESTADOS
GC-F-004 V.01
Procesos en Linux
PROCESOS DE 1° Y 2° PLANO
En GNU/Linux podemos ejecutar procesos en primer plano (foreground) o bien en segundo plano
(background). Un programa en foreground lanzado desde una terminal monopoliza dicha
terminal, por lo que en principio, no podremos ejecutar ningún otro programa a la vez. Tenemos
que esperar a que finalice su ejecución para poder lanzar otro comando. Por el contrario, la
ejecución de un programa en background, una vez iniciado, deja libre la terminal desde la que se
lanzo y el shell nos vuelve a mostrar el prompt.
GC-F-004 V.01
Procesos en Linux
Administrar procesos en Linux
Los procesos en Linux (o en cualquier sistema operativo) son programas que están en
ejecución y se identifican mediante el PID.
El PID (Process Identificator) es el número que se le asigna a un proceso cuando se
inicia. Son números crecientes y los procesos que se terminan y luego se vuelven a
iniciar van a tener un PID diferente. Por ejemplo, el PID número 1 se le asigna a por
norma general a init que es el primer proceso que inicia el sistema al ser arrancado.
GC-F-004 V.01
Procesos en Linux
Comandos para ver los procesos en
Linux
Para visualizar todos los procesos en Linux con información detallada del
sistema, se escribe en la terminal ps aux y se vería algo similar a esto:
GC-F-004 V.01
Procesos en Linux
Para ser más precisos se puede buscar un determinado proceso con el que queramos dar,
por ejemplo buscar el proceso SSH y se usaría el comando ps aux | grep ssh.
Para ver los procesos en Linux de un usuario podemos escribir en la terminal ps -u root.
Los procesos pueden ejecutar otros procesos (procesos hijos). Los procesos
hijos contienen su propio PID pero a su vez también contienen otro campo
llamado PPID (Parent Process Identificator) que es el proceso padre al que pertenece el
proceso.
Todos los procesos en Linux tienen su proceso padre excepto el proceso 0 que es el que
ejecuta el inicio del sistema (PID 1).
Para ver el PPID de los distintos procesos, se inserta en la terminal ps -ef
GC-F-004 V.01
Procesos en Linux
Vemos como los procesos del sistema son asignados a la UID del usuario root.
Aquí una entrada explicando lo que es una UID.
Haciendo una búsqueda del servicio SSH se ve como cada proceso listado
pertenece a otro proceso hasta llegar al proceso padre que ha iniciado SSH. Se
escribe en la terminal ps -ef | grep ssh y se obtiene algo similar a esto:
GC-F-004 V.01
Procesos en Linux
Variables
Por defecto, solamente existe un tipo especial de variable conocida por todos los
subprocesos del sistema: Las variables de entorno.
Existen varias razones importantes por las cuales las variables de entorno deben ser
conocidas por estos procesos y es que estas variables definen el comportamiento del
ambiente sobre cual el usuario esta trabajando. Por ejemplo algunas de estas variables
son:
GC-F-004 V.01
GRACIAS
GC-F-004 V.01