gestión de procesos

15
Gestión de Procesos Realizado por: Kepa Bengoetxea [email protected]

Upload: jasper-browning

Post on 03-Jan-2016

24 views

Category:

Documents


0 download

DESCRIPTION

Realizado por: Kepa Bengoetxea [email protected]. Gestión de Procesos. Gestión de Procesos: Foreground y Background. Primer plano: comando Ejm: yes >> /dev/null Segundo plano: comando & Ejm: yes >> /dev/null & [1] 22300 ([nº_de_tarea] nºPID)‏ - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gestión de Procesos

Gestión de Procesos

Realizado por: Kepa Bengoetxea

[email protected]

Page 2: Gestión de Procesos

Gestión de Procesos: Foreground y Background

Primer plano: comando

Ejm: yes >> /dev/null

Segundo plano: comando &

Ejm: yes >> /dev/null &

[1] 22300 ([nº_de_tarea] nºPID)

Pasar a 1º plano: fg %num_de_tarea(Con jobs visualiza el número tarea de los procesos)

Pasar a 2º plano: Ctrl+z (manda STOP a la tarea que esta en primer plano) y bg %nº_de_tarea

Matar un proceso en primer plano: Ctrl+C ó kill -9 nºPID

Page 3: Gestión de Procesos

Gestión de Procesos: Foreground

El bash padre realiza una llamada a sistema para crear un proceso hijo (fork()). En estos momentos tendremos 2 bash (hijo y padre)

El bash hijo realiza una llamada a sistema exec, que inicia la ejecución del comando “ls”

Mientras tanto el padre esta esperando a que el hijo finalice (foreground)

fork()

Bash$ ls

exec(ls)

exit()

wait()

Page 4: Gestión de Procesos

Gestión de Procesos: PID

Linux dispone de un sistema de ficheros especial llamado proc, que contiene información interesante acerca de los procesos

Los procesos están organizados en árbol, donde init es el padre de todos y su PID es 1

Comando “pstree” muestra los procesos en forma de árbol. Opciones:

-u muestra el nombre de usuario que inicio el proceso

-p pid del proceso

Page 5: Gestión de Procesos

Gestión de Procesos: PID

init(1)─gnome-terminal(5770,kepa)

─bash(5772) ─pstree(5871)

│ │ ├ ─yes(5821)

│ │ ├ ─yes(5822)

│ │ ─yes(5823)

│ ─bash(5802)

│ ─gnome-pty-helpe(5771)

Page 6: Gestión de Procesos

Control de Procesos

Comando “ps” lista información de los procesos.

-u alumno01 (muestra los procesos del alumno01)

-t pts/0 (muestra los procesos de la terminal 0)

-p pid (muestra la información del proceso pid)

-a muestra los procesos iniciados por los otros usuarios

-x muestra los procesos con o sin terminal

-f full (formato árbol)

-e todos los procesos

Page 7: Gestión de Procesos

Control de Procesos

Se pueden mostrar la siguiente información:

UID (Identificador de usuario)

PID (Número Identificador de proceso)

PPID (Número Identificador de proceso padre)

TTY (Terminal asociado al proceso (pts/0;pts/3)

START (Hora de inicio de ejecución del proceso)

TIME (Tiempo acumulado de uso de CPU)

CMD (Nombre de comando)

Page 8: Gestión de Procesos

Control de Procesos Señal: mensajes que el kernel puede enviar a los procesos para

intercomunicarse con ellos.

- Se identifican por un número

- kill -l ;Nos informa de las señales que se pueden enviar.

- Existen 64 señales diferentes: Las señales de 33 a 64 son señales de tiempo real

kill: nos permite enviar señales a un proceso.

kill -x PID donde x es un número 1 a 64 o nombre de la señal

Ejm:$ kill -9 8248 ó $ kill -KILL 8248

- Las señales que realmente interesa conocer al usuario son:

Page 9: Gestión de Procesos

Control de Procesos-KILL:obliga al proceso PID a finalizar.

-HUP: señala al proceso con número pid, que vuelva a leer de sus archivos de configuración.

-INT: Señala al proceso con número , que será interrumpido . Es la interrupción de teclado Ctrl+C.

-TERM: Señala al proceso con número pid, que debe de terminar, a diferencia de -KILL, esta opción da la oportunidad al proceso terminar correctamente.

-STOP: Señala al proceso con número pid , que pare momentáneamente (Ctrl+Z)

-CONT: Señala al proceso con número pid, que continúe , este comando se utiliza para reanudar un proceso que le fue parado con -STOP.

killall

A diferencia de kill , killall permite mandar una señal al proceso por nombre.

Envia la señal -TERM al proceso con el nombre especificado. NOTA: Por “default” la señal que toma kill y killall es -TERM .

Page 10: Gestión de Procesos

Control de Procesos kill: nos permite enviar señales a un proceso. Ejm: kill -x PID

kill -l ;Nos informa de las señales que se pueden enviar.

Si x es -9: obliga al proceso PID a finalizar.

Ejm: $ yes > /dev/null&

[1] 8248

$ kill -9 8248 ó $ kill -KILL 8248

$ ps

PID TTY TIME CMD

8249 pts/0 00:00:00 ps

[1]+ Killed yes >/dev/null

Page 11: Gestión de Procesos

Control de Procesos Comando “top” : muestra los procesos que más %cpu, %mem ...

están utilizando de forma online

Ayuda presionando “h”.

“f” selecciona campos “o” ordena por algún campo:

a: PID = Process Id e: USER = User Name h: PR = Priority w: S = Process Status k: %CPU = CPU usage * N: %MEM = Memory usage (RES) ...

Page 12: Gestión de Procesos

Control de Procesos

Comando “nohup” : Siempre que un proceso padre muere antes de que su hijo muera, este es adoptado por el proceso init. Excepción: al usar bash, y lanzar un proceso hijo si el bash se cierra o muere también muere el proceso hijo. Para evitar que el proceso hijo muera se lanza:

nohup comando

Page 13: Gestión de Procesos

Control de Procesos

Comando “nice”: comando que nos permite cambiar la prioridad de un proceso.

Sintaxis: nice -n <x> yes > /dev/null&

<x> varía entre -20 y +19, donde -20 es la prioridad más alta (más tiempo de cpu)

Solo root puede especificar niveles menores que 0.

Para cambiar la prioridad de comando que ya se esta ejecutando:

renice <x> PID

Page 14: Gestión de Procesos

Control de Procesos

Ejm:

$yes > /dev/null &

[1] 9862

$ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

0 S 500 9841 5770 0 75 0 - 1409 wait pts/1 00:00:00 bash

0 R 500 9862 9841 65 85 0 - 1203 - pts/1 00:00:03 yes

0 R 500 9863 9841 0 76 0 - 597 - pts/1 00:00:00 ps

Page 15: Gestión de Procesos

Control de Procesos

$ renice +19 9862

9862: prioridad antigua 0, nueva prioridad 19

$ sudo renice -20 9862 (como root, para menores de 0)

9862: prioridad antigua 19, nueva prioridad -20

kill -9 9862