Gestión de Procesos en Sistemas Linux
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,27 KB
Un programa es un conjunto de instrucciones y datos almacenados en un archivo. Cuando se carga en memoria para ejecutarse, se convierte en un proceso. El sistema operativo asigna recursos a los procesos (memoria, procesador, entrada/salida, etc.) para su correcta ejecución. Cada proceso tiene un identificador único (PID - Process Identifier) asignado por el núcleo. Además del PID, cada proceso tiene un PPID (Parent PID) que identifica al proceso padre, y un PGID que identifica al grupo de procesos relacionados.
Estados de un Proceso
Ejecutándose: En sistemas con un solo procesador, solo un proceso puede estar en este estado a la vez. Linux permite compartir la CPU entre varios procesos, dividiendo el tiempo de procesador en cuantos y asignándolos a cada proceso.
- Durmiendo: El proceso espera un recurso o la finalización de una operación de E/S.
- Listo: El proceso está listo para ejecutarse y espera la asignación de la CPU por el planificador.
Linux define los siguientes estados:
- D: Ininterrumpible (entrada/salida)
- S: Dormido (sleeping)
- R: Ejecutándose (running)
- T: Parado (stop)
- X: Muerto (dead)
- Z: Zombie (en proceso de defunción)
Comandos para la Gestión de Procesos
ps
Muestra información sobre los procesos en ejecución. Sin argumentos, muestra los procesos asociados al terminal actual.
Sintaxis: ps [argumentos]
Ejemplo: ps -ax
Campos:
- uid: Identificador del usuario
- pid: Identificador del proceso
- ppid: Identificador del proceso padre
- c: Recursos de CPU utilizados recientemente
- stime: Instante de inicio
- tty: Terminal asociado
- time: Tiempo de CPU asignado
- command: Nombre del programa/proceso
- pri: Prioridad
- ni: Valor nice (prioridad). Un valor positivo indica menor tiempo de CPU
- vsz: Tamaño en memoria virtual
- rss: Tamaño en memoria (KB)
- stat: Estado
kill
Envía señales a procesos.
Sintaxis: kill [-señal] PID [PID...]
Señales comunes:
1 (SIGHUP)
: Hangup (cierre de terminal)2 (SIGINT)
: Interrupción (Ctrl+C)3 (SIGQUIT)
: Salida (Ctrl+\)4 (SIGILL)
: Instrucción ilegal5 (SIGTRAP)
: Depuración6 (SIGIOT)
: Fallo hardware7 (SIGEMT)
: Fallo hardware8 (SIGFPE)
: Error en coma flotante9 (SIGKILL)
: Terminación inmediata10 (SIGBUS)
: Error de acceso a memoria11 (SIGSEGV)
: Violación de segmento12 (SIGSYS)
: No se usa13 (SIGPIPE)
: Escritura en pipe sin lector14 (SIGALRM)
: Temporizador15 (SIGTERM)
: Terminación16 (SIGUSR1)
: Usuario17 (SIGUSR2)
: Usuario18 (SIGCHLD)
: Muerte de hijo19 (SIGPWR)
: Fallo de alimentación
nice
Ajusta la prioridad de un proceso.
Sintaxis: nice [-N] orden
nohup
Ejecuta un proceso en segundo plano.
Sintaxis: nohup orden &
sleep
Pausa la ejecución.
Sintaxis: sleep segundos
time
Mide el tiempo de ejecución.
Sintaxis: time orden [argumentos]
w
Muestra información de usuarios y procesos.
fg
Trae un proceso en segundo plano al primer plano.
top
Monitoriza procesos en tiempo real.
free
Muestra el estado de la memoria.
uptime
Muestra el tiempo de actividad del sistema.