1 / 15

Gestión de Procesos

Realizado por: Kepa Bengoetxea jipbekok@vc.ehu.es. 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)‏

Download Presentation

Gestión de Procesos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Realizado por: Kepa Bengoetxea jipbekok@vc.ehu.es Gestión de Procesos

  2. 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

  3. 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)‏ Bash$ ls fork()‏ exec(ls)‏ exit()‏ wait()‏

  4. 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

  5. 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)‏

  6. 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

  7. 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)‏

  8. 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:

  9. Control de Procesos -KILL:obligaalproceso 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 .

  10. 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

  11. 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)‏ • ...

  12. 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

  13. 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

  14. 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

  15. 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

More Related