Unidad 7: Managing Processes

42
Unidad 7: Managing Processes Introducción a Procesos

description

Unidad 7: Managing Processes. Introducción a Procesos. ¿Qué es un proceso?. 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 - PowerPoint PPT Presentation

Transcript of Unidad 7: Managing Processes

Page 1: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Introducción a Procesos

Page 2: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Comando ps

Page 5: Unidad 7:  Managing Processes

Comando ps

Page 6: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Comando top

Page 8: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Comando pgrep.

Page 10: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Estados del proceso

Page 11: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Programación de procesos: nice y renice

Page 15: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Envío de señales

Page 20: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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

CTRL+Z) Otros procesos

¿Para que utilizar señales?

Page 22: Unidad 7:  Managing Processes

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

Kill -9 PID

Envíar señales: el comando kill

Page 23: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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

killall gedit

Comando killall

Page 25: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Control de trabajo

Page 26: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Resumen

Page 30: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Programación de tareas retrasadas: at

Page 31: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Envío de trabajos con at

Page 35: Unidad 7:  Managing Processes

Resumen at

Page 36: Unidad 7:  Managing Processes

Unidad 7: Managing Processes

Programación de tareas periódicas: cron

Page 37: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

Archivo crontab

Page 40: Unidad 7:  Managing Processes

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

Archivo crontab

Page 41: Unidad 7:  Managing Processes

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: Unidad 7:  Managing Processes

comando crontab