GESTIÓN DE PROCESOS.

 

Control de procesos:

 

Un proceso en UNIX es una instancia de programa en ejecución.

Cuando ejecutamos un programa, creamos uno o varios procesos.

Un proceso son varias estructuras de datos.

Desde un punto de vista más a bajo nivel un proceso es el resultado de la ejecución de una llamada al sistema; La llamada al sistema fork. Cuando un proceso ejecuta la llamada fork, el sistema operativo crea una copia de la memoria virtual del proceso llamador. Se crea un clónico del primero.

 

La diferencia entre las dos copias es el PID de cada proceso. Por esto es un proceso distinto.

En UNIX se establece una metáfora al considerar los procesos como seres vivos. Un proceso nace, muere, tiene hijos ..etc.

 

Prioridades de procesos:

 

El núcleo de UNIX reparte entre todos los procesos recursos, según sea el sistema de prioridades. Este es el que manda en los recursos. La prioridad de un recurso la determina el administrador en función del propietario del mismo y el usuario normal solo puede influir ligeramente a este valor de prioridad. La prioridad de un proceso sigue una formula así:

 

 

PRIORIDAD = PRIORIDAD BASE + VALOR NICE

 

 

 

La prioridad base es la que viene marcada por el tipo de usuario. El valor nice es el valor modificador que puede emplear el usuario.

El usuario puede asignar valores nice desde –1 hasta –19 mediante la orden nice seguida del valor.

La orden nice solo permite disminuir la prioridad de un proceso con lo que aumenta el tiempo de CPU destinado a los demás procesos.

Si se pudiese aumentar la prioridad, sería un caos.

El administrador puede utilizar valores nice positivos poniendo dos signos menos seguidos.

 

Ej:

 

nice pr1 # -10 ß Usuario y administrador.

nice pr1 # - - 10 ß Solo administrador.

Ordenes de tratamiento de procesos:

 

Cuando nosotros le damos una orden al SHELL, este se encarga de ejecutarla.

Un proceso puede esperar la llegada de una señal de terminación de hijos en ejecución mediante la llamada al sistema wait. UNIX ofrece un comando wait que permite a un guión del SHELL realizar una espera equivalente a la llamada al sistema.

Para mantener información acerca de los procesos hacemos uso de la orden PS. Trabaja con el PID de procesos. El sistema operativo asigna los PID de proceso de forma consecutiva e incremental y cuando llegue al último número válido reutiliza los números de procesos que han dejado de existir. El único proceso que no carga es el 0.

Un modo sencillo de afectar a la planificación consiste en dormir un proceso durante un intervalo de tiempo. La orden sleep recibe un parámetro, y luego duerme el proceso que lo ejecuta durante ese tiempo.Lo que hace es mandar una llamada al sistema para que se duerman. Para un proceso significa ayudar a los demás.

Sleep permite dormir un proceso pero pierde precisión en intervalos de tiempo largo.