Vous êtes sur la page 1sur 7

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO.

LORCA

Juan Belver Martnez

Gestin de procesos:
Linux es un sistema operativo Multiusuario y Multitarea o multiprocesamiento. Multiusuario porque mucha gente puede estar utilizando el sistema simultaneamente. Multitarea ya que Linux puede realizar distintas tareas concurrentemente. Es sistema operativo es el encargado de crear la ilusin de que cada usuario tiene dedicado el sistema completa para l. Un proceso es una instancia de un programa en ejecucin con su propio espacio de direcciones. Todo lo que ejecutamos sobre Linux es un proceso. Por ejemplo, la orden: $ ls -l | more lanza dos procesos, uno para la orden ls y otro para la orden more. Linux identifica cada proceso asignndole un identificador numrico -PID- que ser un entero entre 0 y 65564, comenzando por 0 cuando arranca el sistema y volviendo a empezar en 0 al llegar al mximo, pero siempre asignando un PID que no est asociado a un proceso vivo en el momento de ejecutar el nuevo proceso. El procesamiento en Linux tiene lugar en tiempo compartido. Generalmente, los sistemas Linux slo tiene una CPU que ejecuta los programas, y por tanto, slo un programa podr estar ejecutandose en un momento determinado. Esta planificacin de la CPU de conmutacin temporal de procesos, est basada en un sistemas de colas FIFO multinivel con actualizacin de prioridad, es posible establecer prioridades externamente. Ello permite que los usuarios del sistemas tengan la impresin de que la mquina les pertenece por completo. As, slo se puede considerar un proceso cuando la orden que lo genera est en ejecucin real o en espera de acceso a la CPU. Los procesos describen el estado actual de la mquina. Un proceso es creado desde otro proceso, tiene una estructura jerrquica en rbol, como los directorios, veamos un esquema:
sched PID = 0

Inicializa el sistema

init

PID = 1 PPID = 0

Proceso que hace referencia a un terminal

getty

getty

getty

getty

PID = 23 PPID = 1

Valida conexin

login

login

PID = 45 PPID = 23

Interp de comandos

bash ls -l

bash

PID = 87 PPID = 45

Pgina 1 de 7

Gestin de procesos.doc

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

Procesos del sistema A continuacin enumeramos los principales procesos del sistema Unix: 0 scheduler sched Planifica el procesador 1 init Inicializador del sistema 2 whand Gestor de memoria virtual o swap 3,4 6Linux bdflush y bmapflush Gestor de E/S de disco

Estados y tipos de procesos:


En un sistema operativo multitarea los estados bsicos en los que se puede encontrar un proceso son los siguientes: Ejecutndose. Listo para ejecutarse Esperando o bloqueado Por el contrario en Linux nos podemos encontrar 3 tipos de procesos, cada uno con caractersticas y atributos diferentes, en funcin de cmo se haya comenzado su ejecucin: Interactivos: iniciados y controlados por un intrprete de comandos. Pueden ejecutarse en primer (foreground) o segundo plano (background). En cola: no estn asociados a ningn terminal, sino que se envan a una cola en la que esperan para ejecutarse secuencialmente. Demonios: usualmente lanzados al iniciar el sistema y se ejecutan en background mientras sean necesarios.

Controlando el sistema:
Por el hecho de existir muchos usuarios haciendo uso del sistema a la vez, puede ser til conocer quin est conectado y que procesos est ejecutando. Para ello los sistemas UNIX ofrecen un conjunto de rdenes que facilitan este control, entre las que se encuentran las siguientes: uptime Visualiza la cantidad de tiempo que el sistema lleva funcionando, es decir, el tiempo transcurrido desde la ltima vez que se inici el sistema. Adems visualiza la hora actual y el nmero medio de trabajos esperando a ejecutarse desde el ltimo, los cinco y los diez ltimos minutos. Si el nmero se acerca a 0 significa que el sistema est bastante desocupado, mientras que un valor cercano a 1 indica que el sistema est cargado. who Esta orden muestra qu usuarios estn usando el sistema, visualizando su identificador, el terminal que est utilizando y la fecha y hora de entrada en el sistema. $who -H muestra ms informacin ami visualiza el usuario actual ps
Pgina 2 de 7 Gestin de procesos.doc

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

Esta orden muestra informacin sobre los procesos que estn vivos al ejecutar la orden. Sin argumentos, la orden ps muestra la informacin acerca de los procesos asociados a la sesin de presentacin de un usuario. La informacin que muestra es l a siguiente: PID Identificador de proceso TTY Terminal desde el que se lanz el proceso TIME Tiempo de CPU que el proceso ha utilizado desde que comenz CMD Muestra la orden que lanzo al proceso

Mediante la opcin -f se obtiene informacin adicional sobre los procesos: UID Identificador del propietario del proceso PPID Identificador del proceso padre C cantidad de recursos de procesador que el proceso ha utilizado STIME Hora del da en que se inici el proceso Otras opciones de la orden son: -e todos los procesos que estn ejecutndose en el sistema. -a todos los procesos asociados a un terminal. -r slo los procesos cuyo estado sea ejecutndose -l obtiene informacin completa de la tabla de procesos: F: Flags asociados con el proceso. Cada bit indica una condicin de tipo de proceso. S: Estado del proceso (S-sleeping, bloqueado; R-running, ejecutandose) PRI: prioridad del proceso (dinmica). NI: valor utilizado para calcular la prioridad ADDR: direccin de RAM de la imagen del proceso SZ: Longitud en bloques de la imagen del proceso WCHAN: para un proceso que se encuentra bloqueado es la direccin del proceso por el cual espera. -u usuario ver los procesos activos de un usuario en concreto.

Prioridades de los procesos:


Normalmente, a todos los procesos se les asigna la misma cuota de tiempo, por lo que se dice que tienen la misma prioridad, pero Unix/Linux dispone de herramientas para modificar la prioridad de un proceso. El incremento de la prioridad de un proceso, generalmente, hace que se complete ms rpidamente a costa de los otros procesos de la mquina. Al contrario, al rebajar la prioridad, un proceso demanda menos tiempo de CPU durante cada intervalo, tardando as ms tiempo en completarse. Slo el superusuario tiene privilegios para incrementar la prioridad a un proceso, pero cada usuario puede decrementar la prioridad de sus procesos mediante la orden nice. La sintaxis de la orden es la siguinete: $ nice -incremento orden Si no indicamos incremento, la prioridad se rebaja en 10 unidades por defecto. El valor de incremento debe estar comprendido entre 0 y 19. Por ejemplo: $ nice orden $ nice -14 orden Como se ha dicho antes, el superusuario puede incrementar la prioridad tambin con la orden nice. En este caso se especificar un incremento negativo. Cuanto menor es el valor mayor prioridad.

Pgina 3 de 7

Gestin de procesos.doc

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

$ nice --14 orden $ nice --19 orden

(da la mayor prioridad)

Las prioridades iniciales son asignadas por el kernel de forma que los procesos del sistema sean atendidos antes que los procesos de los usuarios normales. Adems, generalmente, los procesos que realizan muchos clculos son castigados con una prioridad baja y los que tiene muchas entradas/salidas son premiados con prioridades altas para equilibrar el uso de la CPU. Otra orden asociada a la gestin de prioridades, disponible slo en algunos sistemas (en el directorio /usr/ucb) es renice. Esta orden permite modificar la prioridad de un proceso que est ya en ejecucin. Debemos conocer el PID del proceso a modificar y su sintaxis es: $ renice -incremento PID Al igual que con nice, slo podemos utilizar esta orden con los procesos sobre los que seamos propietarios, por supuesto sin poder aumentar la prioridad. El superusuario puede modificar la prioridad de cualquier proceso, incluso incrementarla.

Procesos subordinados:
Al lanzar un proceso desde un shell, no podemos volver a lanzar otro proceso desde ella hasta que finalice la ejecucin del primero. Sin embargo, podemos hacer que el shell quede disponible para poder lanzar nuevos procesos en el momento de ejecutar una orden, lanzndola en lo que se conoce como modo subordinado - background- (o ejecucin en segundo plano). Para ello se utiliza el operador & de la siguiente forma: $ orden & Al lanzar una orden de esta manera hacemos que se ejecute con la mnima prioridad de ejecucin, pero su salida sigue apareciendo en el terminal, ya que no ha sido redirigida. Al ejecutar un proceso subordinado, el shell devuelve un nmero de tarea y un identificador de proceso o PID con el que nos podemos referir al trabajo subordinado. Si creamos procesos subordinados, sern eliminados al terminar la asesin de trabajo, ya que estn asociados a el shell de presentacin. Pero podemos hacer que los procesos subordinados sigan ejecutndose despus de despedirnos, para ello utilizamos la orden nohup. $ nohup orden & Esta orden hace que se ejecute en modo subordinado y contine hasta su fin. Si la orden produce salidas al terminal, se almacenarn es este caso en un fichero nohup.out a menos que se redirijan esas salidas, ya que al finalizar la sesin no existe terminal en el que visualizarlas.

Eliminacin de procesos:
Cuando se detecte algn error, tal como usu de mucha CPU, no producir la salida esperada, producir salida excesiva, error de programacin, entrar en estado de bloqueado, etc.; o se quiera detener algn trabajo largo se puede desear eliminar el proceso. Un usuario puede eliminar cualquier proceso del cual sea propietario y el superusuario cualquier proceso excepto los PIDs 0, 1, 2, 3 y 4. Si el proceso a eliminar est ejecutndose en modo interactivo, se har pulsando las teclas CTRL-C CTRL-D (segn el shell utilizado). Sin embargo, para un proceso subordinado no existe terminal asociado, por lo que no podemos eliminarlo de esa manera. Para hacerlo utilizaremos la orden kill con el PID del proceso o el identificador de la tarea (con el smbolo % delante) que se desea eliminar como argumento.. tras ejecutar esta
Pgina 4 de 7 Gestin de procesos.doc

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

orden el proceso desaparecer de la tabla de procesos al ejecutar ps. Se pueden especificar mltiples PIDs como argumentos de la orden kill separados por espacios: $ kill pid1 pid2 pid3 tarea Por determinados motivos kill puede fallar, por lo que ser conveniente ejecutar ps tras kill para asegurarnos de que elimin el proceso y que este no ha sido lanzado por el sistema con un nuevo PID. Al eliminar un proceso, realmente se est indicando al sistema que enve una seal a ese proceso; las seales se utilizan para la comunicacin entre procesos y es misin de la aplicacin responde adecuadamente a la seal. Cuando se ejecuta la orden kill, por omisin, se enva la seal 15 al PID o PIDs especificados. Esta en una seal de terminacin software que, generalmente, hace que el proceso muera. Pero puede ocurrir por determinados motivos que no se acepte, por lo que existe un a seal de terminacin incondicional: seal 9. Se puede especificar el nmero de seal para la orden kill como una opcin: $ kill -seal pid Otras seales vlidas se pueden encontrar en el fichero /usr/include/sys/signal.h

Planificacin de procesos:
Cuando varios usuarios comparten la maquina, la responsabilidad de asignar recursos de CPU la tiene el Sistema Operativo por lo que bajo circunstancias normales el usuario no tiene posibilidad de controlar el tiempo de CPU para un proceso. Para gestionar esa asignacin, Unix/Linux tiene herramientas para temporalizacin y planificacin de tareas, pero el usuario tiene cierta capacidad de modificar la planificacin que el sistema operativo hace, modificando la prioridad de los procesos o haciendo que los procesos que no precisan rapidez en su ejecucin se ejecuten en determinados intervalos de tiempo en los que es sistema est ms descargado. Para esto ltimo, Unix/Linux nos ofrece varias rdenes: at, batch y la utilidad cron. at La orden at permite planificar trabajos para una ejecucin posterior. Se ejecuta dando una hora y fecha como argumentos de la orden; at leer de la entrada estndar la orden a ejecutar en esa hora, finalizando con CTRL-D, a menos que redirijamos la entrada. Por ejemplo: $ at 11:45 < orden ejecutar la orden a las 11:45 del da actual. Esta orden devuelve el nmero de trabajo y la hora a la que se ejecutar. La salida se la orden, puesta en cola, se enviar al usuario como correo a menos que se redireccione. $ $ $ $ $ $ at at at at at at 17 5pm 4:35pm noon now midnight a las 5:00 de la tarde a las 5:00 de la tarde a las 4:35 de la tarde al medioda ahora (responde siempre con un error - too late a medianoche

Pgina 5 de 7

Gestin de procesos.doc

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

Un trabajo puede ejecutarse en un incremento de minutos (minutes), horas(hours), das(days), semanas(weeks), meses(months) y aos(years), si se incluye el operador + despus de la hora: $ at now + 15 minutes dentro de 15 minutos $ at 3:15pm + 6 months a las 3:15 dentro de 6 meses Adems de la hora se puede indicar una fecha en la que se desea ejecutar algn trabajo. $ at 2:15am Jul 16, 1991 Para gestionar la ejecucin de la lista de trabajos la orden at dispone de dos opciones : 1. -l listar todos los trabajos en base a sus nmeros de identificacin mostrando la fecha y ora en que se ejecutarn 2. -r retirar los trajos designados por sus ids de trabajo como argumanto. Slo se podrn retirar los trabajos que el usuario haya creado. batch El comando batch planifica trabajos para que se ejecuten posteriormente, a diferencia de at, es el sistema quien decide cuando de se ejecutar el comando. Cuando se planifica una tarea con batch, Linux comienza y trabaja en el proceso siempre que la carga no sea demasiada alta. La tareas que se ejecutan con batch se hacen en segundo plano. La sintaxis es: $ batch [INTRO] lista de comandos CTRL-D Las listas de usuarios autorizados para la utilizacin de este comando se encuentran en le directorio /etc en los ficheros at.deny y at.allow. el funcionamiento de este mecanismo de control sigue una serie de reglas que facilitan la administracin: 1. Si at.allow existe, slo los usuarios que estn incluidos en l pueden utilizar las ordenes, exista o no el fichero at.deny 2. Si at.allow no existe, se mira at.deny para ver si un usuario puede o no utilizarlas. En este caso, cualquier usuario que no este en at.deny podr utilizar las utilidades. 3. Si no existe ninguno de los dos ficheros slo el superusuario puede planificar trabajos con at y batch. 4. Para permitir a todos los usuarios su utilizacin basta con suprimir at.allow y crear vaco at.deny. crontab Esta utilidad crea archivos que contienen una lista de opciones que se deben ejecutar en momentos concretos. Cada usuario puede tener un archivo o fichero crontab propio, archivo que se genera en el directorio /var/spool/cron/nombre_usuario Cada una de las entradas del archivo crontab est compuesta de 6 campos : 1 minuto (0-59) 2 hora (0-23) 3 da (1-31) 4 mes (1-12) 5 da de la semana (0-6), 0=domingo; 1=lunes; etc. 6 nombre del programa a ejecutar
Gestin de procesos.doc

Pgina 6 de 7

ADMINISTRACIN DE SISTEMAS INFORMTICOS SISTEMAS INFORMTICOS MONOUSUARIO Y MULTIUSUARIO IES SAN JUAN BOSCO. LORCA

Juan Belver Martnez

* Hace referencia a todos los valores del intervalo (1-15) das del 1 al 15 (1,3,7) das 1, 3 y 7 Los pasos a seguir para establecer un tarea mediante crontab para un usuario determinado son os siguientes: como superusuario crear un usuario nuevo si es que no existe. Entrar en el sistema como ese nuevo usuario. Crear un archivo donde guardar los comandos. Por ejemplo, microntab Ejecutar: $ crontab microntab Entrar como superusuario. Ejecutar: $ crontab -u usuario -e Entrar de nuevo como el usuario Algunas de las opciones de crontab son las siguientes: -r borra un archivo crontab -e edita un archivo crontab para un usuario -l lista el contenido de un archivo crontab

Pgina 7 de 7

Gestin de procesos.doc

Vous aimerez peut-être aussi