Post on 23-Feb-2016
description
Unidad 7: Managing Processes
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 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?
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?
Comando ps
Comando ps
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
Comando top
pgrep permite a los usuarios listar rápidamente procesos por nombre de comando, usuario, terminal o grupo.◦ pgrep [OPCIONES] [PATRÓN]
Comando pgrep.
Comando pgrep.
Unidad 7: Managing Processes
Estados del proceso
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
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
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
Unidad 7: Managing Processes
Programación de procesos: nice y renice
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
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
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
Altera la esencia de los procesos en ejecución. ◦ renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u]
usuario ...]
renice 19 –p 1234
Comando renice
Unidad 7: Managing Processes
Envío de señales
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
Excepciones de hardware Condiciones del software Interrupciones de terminal (CTRL+C y
CTRL+Z) Otros procesos
¿Para que utilizar señales?
El comando kill se utiliza para enviar señales a otros procesos.
Kill -9 PID
Envíar señales: el comando kill
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
Envía señales a procesos especificados por el nombre de comando.
killall gedit
Comando killall
Unidad 7: Managing Processes
Control de trabajo
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
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
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
Resumen
Unidad 7: Managing Processes
Programación de tareas retrasadas: at
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
permite a los usuarios someter trabajos para ser realizados más tarde
Para utilizar el demonio atd, éste debe estar ejecutándose.
Demonio atd
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
Envío de trabajos con at
Resumen at
Unidad 7: Managing Processes
Programación de tareas periódicas: cron
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
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
Archivo crontab
Cada uno de los primeros cinco campos debe llenarse con un símbolo mediante la siguiente sintaxis:
Archivo crontab
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
comando crontab