(LINUX) Gestion de Procesos
(LINUX) Gestion de Procesos
(LINUX) Gestion de Procesos
0xFFFFFFFF
kernel system segment
(call system)
kernel stack
stack $fp
(dynamic allocated mem)
$sp
shared libraries
Esto resulta en: Padre con estado “R” e hijo con estado “Z” <defunct>
Renice –n PID: Modifica la prioridad a un proceso ya en ejecución
Ejemplo: invertir la ejecución de running y running1, para que el menos
prioritario pase a ser más prioritario (y consuma más CPU).
Ordenes de procesos: sleep, wait, nohup
Sleep tiempo (segundos): Demora durante un cierto tiempo el inicio de una
orden o genera una espera durante la ejecución
(sleep 3600; who >> registro) &
Wait: cuando en programación shell, nos interesa esperar a que acaben los
procesos en background (&) antes de ejecutar la siguiente orden:
Orden1 > archivo1 &
Orden2 > archivo2 &
Wait
Sort archivo1 archivo2
Nohup: Cuando un proceso muere, todos sus subordinados –si los hubiera-
mueren también. Al finalizar una sesión (login, konsole) también.
Con nohup, un comando seguirá en ejecución a pesar de que el usuario que lo
lanza se haya desconectado. Es interesante redirigir las salidas para capturarlas:
Nohup orden > salida 2>errores &
Ordenes de procesos: kill y señales
Kill: envía señales a procesos
Kill –nº_de_señal PID
Un usuario puede eliminar cualquier proceso suyo
El root puede eliminar cualquier proceso
Las señales son sucesos externos a los procesos que tienen un número asociado.
Por defecto se ejecuta la señal 15 SIGTERM (finalización software)
La señal nº 9 SIGKILL provoca la terminación incondicional e inmediata del
proceso
Kill -9 PID
Ejemplo: Desde konsole arrancar varios programas y finalizarlos con kill y/o con
xkill.
Ordenes de procesos: señales
Las señales son mecanismos de comunicación asíncrona de procesos
(interrupciones software que pueden ser enviadas a un proceso para informarle de
alguna situación especial)
Permiten al proceso reaccionar a los eventos provocados por ellos mismos o por
otros procesos. Puede generarse de diversas maneras:
Excepción Hardware (acceso a página de memoria no asignada= SIGSEGV)
CTRL+C (SIGINT) del usuario
Llamada a kill (envía esa señal a un proceso)
Evento gestionado por el núcleo)
Cuando un proceso recibe una señal hay 3 acciones predeterminadas:
Ignorar la señal
Invocar una rutina de tratamiento standard (por lo general provocan la terminación del
proceso y generan un core)
Invocar una rutina propia (modificada por el proceso)
Procesos: señales de terminación de
procesos
Núm. Nombre Descripción
1 SIGHUP Terminación del proceso, desconexión