PDF de programación - UD7 - Gestión de Procesos

Imágen de pdf UD7 - Gestión de Procesos

UD7 - Gestión de Procesosgráfica de visualizaciones

Publicado el 15 de Febrero del 2019
647 visualizaciones desde el 15 de Febrero del 2019
267,2 KB
31 paginas
Creado hace 13a (13/07/2010)
UNIDAD DIDACTICA 7

GESTIÓN DE PROCESOS

Eduard Lara

1

1. GESTIÓN DE PROCESOS.

INTRODUCCIÓN

Cada programa que se ejecuta es un proceso con
recursos asignados y gestionado por el kernel.
La gestión de procesos comprende la monitorización,
detención y cambio de prioridad de los procesos
Generalmente los procesos son gestionados
automáticamente por el kernel del S.O. (son creados,
ejecutados y detenidos sin la intervención del usuario).
Algunas veces los procesos se detendrán por razones
desconocidas y será necesario reiniciar el proceso.
Otras veces algún proceso se ejecutará
descontroladamente malgastando los recursos del
sistema, entonces será necesaria una intervención manual
del administrador para detener el proceso.

2

1. PARÁMETROS DE UN PROCESO

PROCESS ID (PID): Cada proceso tiene un número
asociado que se le asigna cuando es creado. Los PIDs son
números enteros únicos para todos los procesos sistema.
USER ID & GROUP ID: Cada proceso tiene que tener
asociado unos privilegios que limiten el acceso al sistema
de ficheros. Estos privilegios quedan determinados por el
user ID y group ID del usuario que creo el proceso.
PARENT PROCESS: Todo proceso es creado por otro
proceso, el proceso padre (parentprocess). El primer
proceso iniciado por el kernel cuando el sistema arranca
es el programa init. Este proceso tiene el PID 1 y es el
padre de todos los procesos del sistema.

3

1. PARÁMETROS DE UN PROCESO

PARENT PROCESS ID: El PID del proceso que inicio el
proceso hijo.
ENVIROMENT: Cada proceso mantiene una lista de
variables y sus correspondientes valores. El conjunto de
estas variables recibe el nombre de process enviroment.
Normalmente el entorno de un proceso hijo se hereda del
proceso padre a menos de que se indique de otra forma.
CURRENT WORKING DIRECTORY: Cada proceso tiene
asociado un directorio por defecto, donde el proceso
leerá/escribirá archivos, a menos que se le especifique
explícitamente lo contrario.
NICE NUMBER: Permite al usuario modificar la
prioridad de ejecución de un proceso.

4

2. COMANDOS DE MONITORIZACIÓN

DE PROCESOS: PS, PSTREE Y TOP

ps
Sintaxis: ps [options]
Muestra la lista de procesos del sistema, y algunas de sus características:
hora de inicio, uso de memoria, estado de ejecución, propietario y otros
detalles. Sin opciones lista los procesos creados por el usuario actual y
asociados al terminal de usuario
Opciones:
-a Muestra los procesos creados por cualquier usuario y asociados a un
terminal.
-l Formato largo. Muestra la prioridad, el PID del proceso padre entre
otras informaciones.
-u Formato de usuario. Incluye el usuario propietario del proceso y la hora
de inicio.
-U usr Lista los procesos creados por el usuario “usr”
-x Muestra los procesos que no están asociados a ningún terminal del
usuario. Útil para ver los “demonios” (programas residentes) no iniciados
desde el terminal.

5

2. COMANDOS DE MONITORIZACIÓN

DE PROCESOS: PS, PSTREE Y TOP

La orden ps proporciona una información muy interesante sobre los
procesos que tenemos en ejecución. Podemos saber el pid del proceso
qué programa o originó el proceso, cuanta memoria ocupa, cuanta CPU
consume, cuanto tiempo de ejecución lleva, ...

6

2. COMANDOS DE MONITORIZACIÓN

DE PROCESOS: PS, PSTREE Y TOP

pstree
Sintaxis: pstree [options] [PID | user]
Este comando muestra la jerarquía de los procesos mediante una estructura de árbol.
Si se especifica el PID de un proceso, el árbol empezará desde ese proceso, de lo
contrario el árbol empezará por el proceso init (PID=1) y mostrará todos los procesos
del sistema. Si se especifica un usuario valido se mostrará la jerarquía de todos los
procesos del usuario.
Opciones:
-a Incluye en el árbol de procesos la línea de comandos que se uso para iniciar el
proceso.
-c Deshabilita la unión de procesos hijos con el mismo nombre (replicas de un mismo
proceso).
-G Usa los caracteres de línea para dibujar el árbol. La representación del árbol es
más clara, pero no funciona al redireccionar la salida.
-h Remarca la jerarquía del proceso actual (normalmente el terminal). No funciona al
redireccionar la salida.
-n Por defecto los procesos con mismo padre se ordenan por el nombre. Esta opción
fuerza a ordenar los procesos por su PID.
-p Incluye el PID de los procesos en el árbol.

7

2. COMANDOS DE MONITORIZACIÓN

DE PROCESOS: PS, PSTREE Y TOP

top [options]

top
Sintaxis:
El comando top ofrece una lista de los procesos similar al comando ps, pero
la salida se actualiza continuamente. Es especialmente útil cuando es
necesario observar el estado de uno o más procesos o comprobar los
recursos que consumen.
Opciones:
-i Ignora los procesos inactivos, listando únicamente los que utilizan
recursos del sistema.
-d Especifica el ritmo de actualización de la pantalla en segundos. Es
posible especificar decimales.
Ordenes interactivas:
h Muestra una pantalla de ayuda.
q Sale del programa.
k Kill. Permite detener un proceso.
r Renice. Permite alterar la prioridad de un proceso.

8

3. EJECUCIÓN EN 1º Y 2º PLANO

Un proceso ejecutado en 1º plano, se ejecuta
bloqueando el terminal desde el que se lanzó.
Un proceso se lanza en 1º plano simplemente
introduciendo su nombre en el terminal y pulsando intro.
$firefox
Un proceso ejecutado en 2º plano, se ejecuta sin
bloquear el terminal desde el que se lanzó.
Los programas se pueden iniciarse en 2º plano
añadiendo el carácter & al final del comando.
$firefox &
[1] 1748

El sistema operativo le asigna el trabajo 1

(indicado mediante [1]) y el PID 1748.

9

3. EJECUCIÓN EN 1º Y 2º PLANO

Cuando un proceso se inicia en segundo plano, se crea
un trabajo (job), al cual se le asigna un número entero,
empezando por 1 y numerando secuencialmente.
Cuando un proceso se ejecuta en segundo plano
(background), la única manera de comunicarse con el
proceso es mediante el envio de mensajes (signals).
Se puede mover un programa ejecutado en primer
plano al segundo plano, deteniéndolo escribiendo Ctrl-Z y
después reiniciando el proceso en 2º plano, mediante la
orden bg.

10

3. OPERACIONES CON PROCESOS

EN PRIMER PLANO

Con un proceso en 1º plano podemos realizar dos acciones
desde el terminal que tiene asociado:
Matar el proceso: C-c (Ctrl-c ) se cancela el proceso y
se liberan todos los recursos que tuviera asignados. Esta
acción realmente envía una señal de interrupción al
proceso, indicándole que tiene que detenerse.
Sólo podremos matar procesos sobre los que tengamos
permiso. Si intentamos matar el proceso de otro usuario
el sistema no nos lo permitirá, salvo a root.
Parar el proceso: C-z (Ctrl-z) . En este caso sólo se
detiene la ejecución del proceso, conservando su estado y
sus recursos para poder continuar en el momento que se
dé la orden adecuada.

11

4. ENVIAR MENSAJES A UN

PROCESO: KILL

Cada proceso que se ejecuta en el sistema está alerta
de los mensajes enviados por el kernel o por el usuario.
Las órdenes kill y killall se utilizan para enviar señales
a un proceso.
Estos mensajes (signals) son números enteros
predefinidos y conocidos por los procesos.
Cuando un proceso recibe un mensaje, este realiza una
determinada acción.
Existen 30 diferentes señales definidas en LINUX.
Cada señal tiene un nombre y un entero.

12

4. ENVIAR MENSAJES A UN

PROCESO: KILL

Nombre

Entero

Descripción

SIGHUP

SIGINT

SIGKILL

SIGTERM

SIGCONT

SIGSTOP

1

2

9

15

18

19

Colgar. Esta señal es enviada automáticamente cuando un
modem se desconecta. También se usa por muchos
demonios para forzar la relectura del archivo de
configuración. Por ejemplo, en los procesos init y inetd.
Parar el proceso y desaparece. Esta señal se envía con la
secuencia de teclas Ctrl-C.
Kill. Mata un proceso incondicionalmente e
inmediatamente. Enviar esta señal es un método drástico
de terminar el proceso, ya que no se puede ignorar
Terminar. Mata un proceso de forma controlada.
Continuar. Cuando un proceso detenido recibe esta señal
continúa su ejecución.
Parar, pero preparado para continuar. Esta señal se envía
con la secuencia de teclas Ctrl-Z.

13

4. ORDEN KILL: ENVÍO DE

SEÑALES A PROCESOS

kill

kill [-s sigspec | –sigspec] [pids]

Sintaxis:
El comando kill permite enviar un mensaje arbitrario a un proceso, o
varios, con un PID igual a pids. El parámetro sigspec es el valor
entero de la señal o el nombre de la señal que enviaremos al proceso.
El valor de sigspec se puede especificar en minúsculas o mayúsculas,
pero normalmente se especifica en mayúsculas. Para especificar el
tipo de señal se pueden usar –s sigspec o simplemente –sigspec. Si se
omite sigspec en el comando kill, se toma por defecto el valor
SIGTERM (señal 15, salir de manera correcta).
El valor de pids tendremos que averiguarlos utilizando la orden ps.

Ejemplos:

kill -9 337 kill -KILL 337

14

4. ORDEN KILL: ENVÍO DE

SEÑALES A PROCESOS

Ejemplos kill:
Comandos equivalentes, envían la señal SIGTERM a los procesos con
PID 1000 y 1001. Si estos procesos se están ejecutando de manera
“educada”, recibirán la señal SIGTERM y saldrán de manera correcta
después de limpiar todo lo que tenían abierto.
Kill 1000 1001
Kill –SIGTERM 1000 1001
Kill –s sigterm 1000 1001
En algunos casos los procesos se ejecutan descontroladamente e
ignorarán la señal SIGTERM. Para detener un proceso en estos casos
es necesario usar la señal KILL que termina el proceso
incondicionalmente.

Kill -15 1000 1001
Kill –s 15 1000 1001
kill –s TERM 1000 1001

kill -9 1000 1001 kill –s KILL 1000 1001

15

4. ORDEN KILL: ENVÍO DE

SEÑALES A PROCESOS

killall

killall [-s sigspec | –sigspec
  • Links de descarga
http://lwp-l.com/pdf15208

Comentarios de: UD7 - Gestión de Procesos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad