1 / 42

Unidad 7: Managing Processes

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

hank
Download Presentation

Unidad 7: Managing Processes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unidad 7: Managing Processes Introducción a Procesos

  2. ¿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.

  3. ¿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

  4. Comando ps

  5. Comando ps

  6. 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.

  7. Comando top

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

  9. Comando pgrep.

  10. Unidad 7: Managing Processes Estados del proceso

  11. 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.

  12. 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.

  13. 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

  14. Unidad 7: Managing Processes Programación de procesos: nice y renice

  15. 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.

  16. 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

  17. 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

  18. Comando renice • Altera la esencia de los procesos en ejecución. • renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u] usuario ...] • renice19 –p 1234

  19. Unidad 7: Managing Processes Envío de señales

  20. 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.

  21. ¿Para que utilizar señales? • Excepciones de hardware • Condiciones del software • Interrupciones de terminal (CTRL+C y CTRL+Z) • Otros procesos

  22. Envíar señales: el comando kill • El comando killse utiliza para enviar señales a otros procesos. • Kill -9 PID

  23. 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

  24. Comando killall • Envía señales a procesos especificados por el nombre de comando. • killallgedit

  25. Unidad 7: Managing Processes Control de trabajo

  26. 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

  27. 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.

  28. 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 (“%”)

  29. Resumen

  30. Unidad 7: Managing Processes Programación de tareas retrasadas: at

  31. 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

  32. Demonio atd • permite a los usuarios someter trabajos para ser realizados más tarde • Para utilizar el demonio atd, éste debe estar ejecutándose.

  33. 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

  34. Envío de trabajos con at

  35. Resumen at

  36. Unidad 7: Managing Processes Programación de tareas periódicas: cron

  37. 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

  38. 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.

  39. Archivo crontab

  40. Archivo crontab • Cada uno de los primeros cinco campos debe llenarse con un símbolo mediante la siguiente sintaxis:

  41. 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

  42. comando crontab

More Related