Unidad 7: Managing Processes
description
Transcript of Unidad 7: Managing Processes
![Page 1: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/1.jpg)
Unidad 7: Managing Processes
Introducción a Procesos
![Page 2: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/4.jpg)
Comando ps
![Page 5: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/5.jpg)
Comando ps
![Page 6: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/7.jpg)
Comando top
![Page 8: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/9.jpg)
Comando pgrep.
![Page 10: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/10.jpg)
Unidad 7: Managing Processes
Estados del proceso
![Page 11: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/14.jpg)
Unidad 7: Managing Processes
Programación de procesos: nice y renice
![Page 15: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/19.jpg)
Unidad 7: Managing Processes
Envío de señales
![Page 20: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/24.jpg)
Envía señales a procesos especificados por el nombre de comando.
killall gedit
Comando killall
![Page 25: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/25.jpg)
Unidad 7: Managing Processes
Control de trabajo
![Page 26: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/29.jpg)
Resumen
![Page 30: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/30.jpg)
Unidad 7: Managing Processes
Programación de tareas retrasadas: at
![Page 31: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/31.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/34.jpg)
Envío de trabajos con at
![Page 35: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/35.jpg)
Resumen at
![Page 36: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/36.jpg)
Unidad 7: Managing Processes
Programación de tareas periódicas: cron
![Page 37: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/38.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/39.jpg)
Archivo crontab
![Page 40: Unidad 7: Managing Processes](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/40.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/41.jpg)
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](https://reader035.fdocuments.ec/reader035/viewer/2022062310/56816380550346895dd4641e/html5/thumbnails/42.jpg)
comando crontab