jueves, 9 de enero de 2014

Comandos básicos GNU: administración y gestión de procesos



  • Comandos básicos:
En esta entrada veremos el funcionamiento y posibles aplicaciones de los siguientes comandos:
ps, pstree, nice y renice.


Comando ps: El comando ps muestra por pantalla un listado de los procesos que se están ejecutando en el sistema.Si no añadimos ningún parámetro se verán los procesos con el usuario y sesión que estamos logueados.

-aux Lista los todos procesos de todos los usuarios con información añadida.
La información que muestra el comando ps -aux organizado por columnas es la siguiente:

USER=> usuario que ha ejecutado el proceso
PID=> Número identificador del proceso
%CPU=> Porcentaje de CPU que está utilizando ese proceso
%MEM=> Porcentaje de Memoria que está utilizando ese proceso
VSZ=> Tamaño de la memoria virtual del proceso en Kb
RSS=> Tamaño de la memoria física que ocupa el proceso en Kb
TTY=> Terminal desde dónde es lanzado el proceso
STAT=> Estados del proceso, puede tener los siguientes estados:

D ininterrumpible  (usualmente IO)
R en cola de ejecución
S En espera de un evento para completar
T Detenido, ya sea por una señal de control de trabajo o debido a que se realiza un seguimiento.
W paginación (no es válido para el núcleo 2.6.XX)
**Paginación de memoria dividen los programas en pequeñas partes o páginas, es decir, divide un proceso en distintos lugares de la memoria.
X muerto (nunca debería verse)
Z Difunto ("zombie"), terminado pero sigue en la lista.
**Es un proceso que ha completado su ejecución pero aún tiene una entrada en la tabla de procesos, permitiendo al proceso que lo ha creado leer el estado de su salida. Los zombies pueden existir por un corto período, que típicamente significa un error en el programa padre.
< de alta prioridad (no es bueno para los demás usuarios)
N de baja prioridad (bueno para otros usuarios)
L tiene páginas bloqueadas en la memoria
s es un líder de la sesión

**Es un proceso que es el lider de un grupo de procesos que se están ejecutando, no todos los grupos de procesos necesitan un lider, aunque todos necesitan ejecutarse con uno.Las sesiones son identificadas por el ID de rupo de proceso del líder de la sesión. POSIX*** prohíbe cambiar el ID de grupo de proceso de un líder de sesión.

***"Interfaz portable de sistema operativo"

l es multi-hilo
**Un hilo es la undad de procesamiento más pequeña en la que se puede dividir un proceso, permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, etc.
+ Está en el grupo de procesos de primer plano
START=>Inicio del proceso
TIME => Tiempo en ejecución
COMMAND => nombre del comando que fue lanzado.


-a Procesos de todos los usuarios.
-u Lista información del proceso
-x Lista procesos de todas las terminales y usuarios
-l Muestra información que incluye el UID y el valor nice.
–- forest – Muestra el listado procesos en un formato tipo árbol que permite ver como los procesos interactuan entre si, podría ser algo similar al comando pstree.(veremos más adelante)

Comando pstree:El comando pstree es similar al comando ps con el argumento --forest con la diferencia que pstree permite formatear la salida con múltiples argumentos, como por ejemplo, imprimir con caracteres ASCII, desactivar ramas iguales( ya que el arbol viene todo lo comprimido posible),mostrar la seguridad de cada proceso, etc.

Ejemplo de pstree con caracteres ASCII:




pstree sin reducción de ramas:


Comando nice: Ejecuta un comando con una prioridad determinada. Utiliza una prioridad variable que parte de la prioridad del shell y suma o resta valores. Mientras menor es el valor de la prioridad mayor prioridad tiene el proceso.
nice -n prioridad [comando]
nice -n -5 comando El valor de la prioridad decrece en 5, aumentando su prioridad
nice -n +5 comando El valor de la prioridad aumenta en 5, disminuye su prioridad

Comando renice: Funciona básicamente como nice, con la diferencia que renice se utiliza para modificar la prioridad de los procesos que se están ejecutando actualmente.



No hay comentarios:

Publicar un comentario