Introducción a Procesos. Contexto de ejecución: Conjunto de variables y parámetros, que tiene...

42
Unidad 7: Managing Processes Introducción a Procesos

Transcript of Introducción a Procesos. Contexto de ejecución: Conjunto de variables y parámetros, que tiene...

Page 1: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Introducción a Procesos

Page 2: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.

Contexto de E/S◦ Descriptores de archivo abierto◦ Archivos de trazado de memoria◦ Contexto del sistema de archivos

Variables de entorno: Cada proceso mantiene su propia lista de pares nombre-valor, conocida como variables de entorno o en general como el entorno del proceso.

¿Qué es un proceso?

Page 3: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Información de herencia: Un procesos puede tener hijos y padres

Credenciales: Información asociada al usuario y al grupo que inicia el proceso, junto con sus permisos

Estadísticas de recursos y límites: Estadísticas de los recursos utilizados, las cuales se pueden limitar de acuerdo al limite de recurso

¿Qué es un proceso?

Page 4: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Comando ps

Page 5: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Comando ps

Page 6: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Muestra a tiempo real un listado de los procesos que se están ejecutando en el sistema, especificando además el % de Cpu y Memoria que están utilizando, sus IDs, usuarios que lo están ejecutando, etc.

El comando top

Page 7: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Comando top

Page 8: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

pgrep permite a los usuarios listar rápidamente procesos por nombre de comando, usuario, terminal o grupo.◦ pgrep [OPCIONES] [PATRÓN]

Comando pgrep.

Page 9: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Comando pgrep.

Page 10: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Estados del proceso

Page 11: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Ejecutable (R): Los procesos en un estado ejecutable son procesos que si tienen la oportunidad de acceder la CPU, la aprovecharían.

Dormido voluntario (interrumpible) (S): un proceso que está dormido voluntario ha elegido estar así. Por lo general, este es un proceso que no tiene nada que hacer hasta que suceda algo interesante (Ej: Servicio httpd)

Dormido involuntario (no interrumpible) (D): En ocasiones, dos procesos tratan de acceder el mismo recurso de sistema al mismo tiempo. En estas situaciones, el kernel fuerza al proceso a dormir.

Estados de un proceso

Page 12: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Procesos detenidos (suspendidos) (T): En la shell bash, la secuencia de teclas CONTROL-Z puede utilizarse para suspender un proceso. Los procesos suspendidos no realizarán ninguna acción hasta no ser reiniciados por el usuario.

Procesos zombi (Z): Los procesos zombis han terminado de ejecutar, han liberado toda su memoria y casi todos sus recursos.

Estados de un proceso

Page 13: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Cuando se ve la salida de comandos tales como ps y top, los estados de procesos suelen enumerase bajo el encabezado STAT◦ Ejecutable - R◦ Dormido - S◦ Detenido - T◦ Dormido ininterrumpible - D◦ Zombi – Z

Ver Estados de un proceso

Page 14: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Programación de procesos: nice y renice

Page 15: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El kernel da a cada proceso una cantidad de contadores.

Cada vez que un proceso se programa en la CPU, entrega uno de sus contadores.

Cuando decide qué proceso programar en la próxima CPU, el kernel escoge un proceso ejecutable con la mayoría de contadores.

Prioridad de Procesos

Page 16: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Cada proceso también tiene un valor estático conocido como su valor de niceness.

El valor tiene un rango que va de -20 a 19 para cualquier proceso, iniciando en 0 por defecto.

Aquellos con un mayor valor de niceness (>0)◦obtienen menos contadores◦menos tiempo en la CPU

Aquellos con un valor niceness (< 0) ◦Obtienen mas contadores ◦mas tiempo de CPU

Proceso Niceness

Page 17: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El comando nice modifica la esencia del proceso

Sintaxis:◦ nice [-n prioridad] <comando>

Opcion:◦ -n prioridad : ajustar el valor de la prioridad utilizada

con el comando nice. ◦ nice –n 19 ps

Comando nice

Page 18: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Altera la esencia de los procesos en ejecución. ◦ renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u]

usuario ...]

renice 19 –p 1234

Comando renice

Page 19: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Envío de señales

Page 20: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Linux utiliza señales para notificar procesos de eventos anormales, y como un mecanismo primitivo de comunicación entre procesos

El kernel utiliza señales para notificar procesos de conducta anormal

Los procesos también pueden enviar señales a otros procesos.

Señales

Page 21: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Excepciones de hardware Condiciones del software Interrupciones de terminal (CTRL+C y

CTRL+Z) Otros procesos

¿Para que utilizar señales?

Page 22: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El comando kill se utiliza para enviar señales a otros procesos.

Kill -9 PID

Envíar señales: el comando kill

Page 23: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El comando pkill se puede utilizar para enviar señales a procesos seleccionados por medios más generales.

pkill [-signal] [OPCIONES] [PATRÓN]

pkill –u nero

comando pkill

Page 24: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Envía señales a procesos especificados por el nombre de comando.

killall gedit

Comando killall

Page 25: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Control de trabajo

Page 26: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Primer plano: La shell bash espera que el comando de primer plano termine antes de expedir otro intérprete de comandos y cualquier cosa escrita con el teclado

Segundo plano: Cualquier comando que usted especifique puede también ejecutarse en el segundo plano, adjuntándole el signo (“&”). Cuando la shell bash envía a segundo plano un comando, el comando se conoce como un trabajo y se le asigna un número de trabajo. Los trabajos en segundo plano se puede ver con jobs

Ejecución de comandos

Page 27: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

fg: Trae a primer plano un trabajo en segundo plano. Fg espera un número de trabajo como un argumento o si ninguno es provisto pondrá el trabajo actual en primer plano.

CTRL+Z: La secuencia CTRL+Z suspende un proceso y lo transforma en un trabajo.

Comandos fg y CTRL+Z

Page 28: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

bg: Reinicia un trabajo detenido en segundo plano (y lo deja en segundo plano)

kill: Mata los trabajos. los Números de trabajo están precedidos por un caracter de porcentaje (“%”)

Comandos bg y kill

Page 29: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Resumen

Page 30: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Programación de tareas retrasadas: at

Page 31: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Son procesos que se ejecutan en el segundo plano, separados de una terminal, realizan tareas que no suelen estar relacionadas con el teclado de un usuario.

Los demonios suelen asociarse con◦ servicios de red (httpd o vsftpd)◦ Administrar tareas

Demonios

Page 32: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

permite a los usuarios someter trabajos para ser realizados más tarde

Para utilizar el demonio atd, éste debe estar ejecutándose.

Demonio atd

Page 33: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El comando at se utiliza para someter trabajos al demonio atd para que se ejecuten en una hora específica.

Los comandos que se van a ejecutar son sometidos ya sea como script (con la opción -f) o escritos directamente via la stdin.

La salida estándar del comando se envía por correo al usuario.◦ at [[-f filename] | [-m]] TIME

Envío de trabajos con at

Page 34: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Envío de trabajos con at

Page 35: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Resumen at

Page 36: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Unidad 7: Managing Processes

Programación de tareas periódicas: cron

Page 37: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

El servicio cron permite a los usuarios configurar comandos para que se ejecuten con regularidad tal como cada 10 minutos, una vez cada jueves, o dos veces al mes.

Los usuarios especifican qué comandos deberían ejecutarse y a qué horas mediante el comando crontab para configurar su "cuadro cron

Tareas periodicas

Page 38: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Los usuarios especifican los trabajos que se van a ejecutar y cuándo se van a ejecutar, al configurar un archivo conocido como el "cuadro cron" a menudo abreviado en inglés"crontab"

Un archivo crontab es un archivo de configuración basado en línea, cada línea realiza una de tres funciones:◦ Comentarios: Todas las líneas cuyo primer caracter (no

espacio) es # se consideran comentarios y se ignoran.◦ Variables de entorno: Todas las líneas que tienen la forma

nombre = valor se utilizan para definir variables de entorno.◦ Comandos cron: Cualquier otra línea (no en blanco) se

considera un comando cron, el cual consta de seis campos descritos a continuación.

Archivo crontab

Page 39: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Archivo crontab

Page 40: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Cada uno de los primeros cinco campos debe llenarse con un símbolo mediante la siguiente sintaxis:

Archivo crontab

Page 41: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

Los usuarios rara vez administran su archivo crontab directamente (o incluso saben dónde se almacena), en cambio, utilizan el comando crontab para editar la lista o quitarla.◦ crontab {[-e] | [-l] | [-r]}◦ crontab ARCHIVO

comando crontab

Page 42: Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.

comando crontab