420 likes | 545 Views
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
E N D
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 • 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
El comando top • 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.
Comando pgrep. • pgrep permite a los usuarios listar rápidamente procesos por nombre de comando, usuario, terminal o grupo. • pgrep [OPCIONES] [PATRÓN]
Unidad 7: Managing Processes Estados del proceso
Estados de un 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.
Ver 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
Unidad 7: Managing Processes Programación de procesos: nice y renice
Prioridad de Procesos • 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.
Proceso Niceness • 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
Comando nice • 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 renice • Altera la esencia de los procesos en ejecución. • renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u] usuario ...] • renice19 –p 1234
Unidad 7: Managing Processes Envío de señales
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.
¿Para que utilizar señales? • Excepciones de hardware • Condiciones del software • Interrupciones de terminal (CTRL+C y CTRL+Z) • Otros procesos
Envíar señales: el comando kill • El comando killse utiliza para enviar señales a otros procesos. • Kill -9 PID
comando pkill • El comando pkillse puede utilizar para enviar señales a procesos seleccionados por medios más generales. • pkill [-signal] [OPCIONES] [PATRÓN] • pkill –u nero
Comando killall • Envía señales a procesos especificados por el nombre de comando. • killallgedit
Unidad 7: Managing Processes Control de trabajo
Ejecución de comandos • 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
Comandos fg y CTRL+Z • 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 bg y kill • 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 (“%”)
Unidad 7: Managing Processes Programación de tareas retrasadas: at
Demonios • 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
Demonio atd • permite a los usuarios someter trabajos para ser realizados más tarde • Para utilizar el demonio atd, éste debe estar ejecutándose.
Envío de trabajos con at • 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
Unidad 7: Managing Processes Programación de tareas periódicas: cron
Tareas periodicas • 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
Archivo crontab • 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 • Cada uno de los primeros cinco campos debe llenarse con un símbolo mediante la siguiente sintaxis:
comando 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