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.



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

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.

pgrep permite a los usuarios listar rápidamente
procesos por nombre de comando, usuario,
terminal o grupo.
◦ pgrep [OPCIONES] [PATRÓN]
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.


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.

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
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.




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


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

Altera la esencia de los procesos en ejecución.
◦ renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u]
usuario ...]

renice 19 –p 1234
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.




Excepciones de hardware
Condiciones del software
Interrupciones de terminal (CTRL+C y
CTRL+Z)
Otros procesos


El comando kill se utiliza para enviar señales a
otros procesos.
Kill -9 PID

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



Envía señales a procesos especificados por el
nombre de comando.
killall gedit
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


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.


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
(“%”)
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


permite a los usuarios someter trabajos para ser
realizados más tarde
Para utilizar el demonio atd, éste debe estar
ejecutándose.



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
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


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.

Cada uno de los primeros cinco campos debe
llenarse con un símbolo mediante la siguiente
sintaxis:

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
Descargar

TEO Procesos