Вы находитесь на странице: 1из 20

GESTION DE PROCESOS EN GNU/LINUX

PROF: SAMIR CASTAO RIVERA

ESTUDIANTE: EDUAR CORONADO BANDA

UNIVERSIDAD DE CORDOBA

FACULTADAD DE INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES

PROGRAMA: INGENIERIA DE SISTEMAS

NOVIEMBRE DE 2012

Gestin de Procesos Antes de abordar los ejes tematicos empezaremos diciendo lo que es un proceso. Un proceso es un programa o un comando en curso de ejecucin en un sistema operativo . A los procesos frecuentemente se les refiere como tareas. Prcticamente todo lo que se est ejecutando en el sistema en cualquier momento es un proceso, incluyendo el shell, el ambiente grfico que puede tener mltiples procesos, etc. Los procesos pueden llevarse a cabo por una orden nuestra o ejecutarse de forma permanente en el sistema mediante un demonio o daemon, que no es ms que un proceso ejecutado en segundo plano que est pendiente de todo lo que sucede en el sistema y reacciona a ello. Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que mltiples procesos pueden operar simultneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusin" que es el nico proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo. Todo proceso ejecutado en un sistema Unix se identifica por un nmero nico, el Process Identifier o PID, que el sistema almacena en una tabla de procesos para la gestin de tareas. El nmero PID asignado a un proceso lo da el ncleo de Linux al iniciar el programa y no existe forma de predecirlo. Los programas utilizan dos comandos para crear procesos: fork y exec. La primera orden permite que un proceso cree un clon de s mismo, la segunda usa ese clon para ejecutar el cdigo de otro programa en su lugar. De ello resulta un parentesco entre procesos. As, se habla de procesos hijos y padres. Todo proceso tiene que tener obligatoriamente un padre, salvo el primer proceso del sistema: init. Este es pues el antecesor de todos los procesos del sistema y su PID es 1 . Estados de un proceso Nombre Ejecucin

Sigla

Descripcin Indica que el proceso se encuentra actualmente en ejecucin

Dormido

Indica que el proceso se encuentra actualmente dormido o interrumpido, esperando turno para ejecucin Indica que el proceso se encuentra actualmente detenido, pero puede ser reiniciado

Detenido

Zombie

Indica que el proceso ha terminado, pero sigue dentro de la tabla de procesos


Indica que el proceso se encuentra actualmente en espera de finalizacin de alguna operacin de entrada/salida

Espera

Terminado

Proceso muerto

Ya he mencionado lo que es un proceso y sus estados ahora me enfocare en la gestin de procesos que se refiere a la capacidad que tiene un sistema operativo para administrar el uso del tiempo de CPU, espacio en memoria RAM y ficheros utilizados por cada tarea o procesos. A razn de estos una de las principales caractersticas de los sistemas operativos es brindar al usuario la capacidad de creacin de procesos o tareas sin incurrir a un alto nivel de conocimiento por parte de los usuarios finales, por tal motivo muchas distribuciones o versiones de los sistemas operativos Windows, Mac OS X, Gnu/Linux plantea mecanismos o formas para la administracin y creacin de procesos. Los sistemas operativos Gnu/Linux gestionan sus procesos basados en el uso de los llamados archivos virtuales. Los sistemas operativos Gnu/Linux, definen atributos o caractersticas relacionadas con cada uno de los procesos, entre estas encontramos: PID (identificador nico de proceso) PPID (identificador del proceso padre) NICE NUMBER (Prioridad asignada) TTY( Terminal Asociada de ejecucin) RUID (identificador usuario que ejecuta el proceso) RGID (identificador del grupo que pertenece el usuario ejecuto el proceso) Entre otros. Ahora hablare de los archivos virtuales utilizados en la gestin de procesos pero primero dire que es un archivo y se define como una secuencia de bits que ocupan un lugar dentro de un medio de almacenamiento fijo cuyo tamao aumenta

en relacin a la informacin que este incluya este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria voltil, es decir es aquel tipo de memoria cuya informacin se pierde al interrumpirse el flujo de corriente elctrica, esto es, la memoria RAM. Para comprobar la diferencia entre un archivo que se almacena en el disco duro y un archivo virtual, se puede hacer el experimento de usar el comando "du" para ver el tamao de un archivo virtual y luego el comando "cat" para ver su contenido, de esta forma:
root@estudiante:/home/banda# :~$ du /proc/acpi/processor/CPU0/info 0 /proc/acpi/processor/CPU0/info root@estudiante:/home/banda# :~$ cat /proc/acpi/processor/CPU0/info processor id: 0 acpi id: 0 bus mastering control: no power management: no throttling control: no limit interface: no

Como se pudo ver en el ejemplo anterior, al usar "du /proc/acpi/processor/CPU0/info" aparece que el archivo /proc/acpi/processor/CPU0/info usa un espacio en el disco duro de 0, es decir que no est consumiendo absolutamente nada de espacio en el disco duro. Sin embargo, al usar "cat /proc/acpi/processor/CPU0/info" se muestra que /proc/acpi/processor/CPU0/info contiene la siguiente informacin: processor id: 0 acpi id: 0 bus mastering control: no power management: no throttling control: no limit interface: no Parece imposible que un archivo que contiene 6 lneas de informacin tenga un tama o de 0. Sin embargo con esto se concluye que /proc/acpi/processor/CPU0/info es un archivo virtual, es decir que aunque tenga un tamao de 0 bytes, puede contener una gran cantidad de informacin.

La representacin mas general de estos archivos virtuales es el archivo virtual /proc.

Un archivo virtual se esta actualizando constantemente y su contenido va variando con respecto al tiempo y de un sistema a otro (por ejemplo, al disponer de hardware distinto), esto se ve reflejado en la aparicin de nuevos directorios y en la desaparicin de alguno de ellos sin que el usuario halla hecho ninguno de estos cambios. El archivo virtual /proc muestra el estado actual del ncleo o kernel de Linux en un tiempo determinado entonces se puede decir que que el sistema de archivos virtual /proc permite conocer el estado interno del ncleo o kernel de Linux desde nivel de usuario.

Tambin se puede decir que el sistema de archivos virtual /proc es una interfaz entre el kernel o ncleo de Linux y el nivel de usuario con la forma de un sistema de archivos virtual

Lo que se muestra con eso es que el archivo /proc/acpi/processor/CPU0/info est siendo modificado constantemente an cuando el usuario no lo est abriendo ni guardando cambios en dicho archivo. Eso tambin revela el comportamiento de un archivo virtual.

Un archivo virtual en donde se guardan procesos en una cpu de computadora es /proc/acpi/processor/CPU0/info

Parece imposible que un archivo que contiene 6 lneas de informacin tenga un tamao de 0. Sin embargo con esto se concluye que /proc/acpi/processor/CPU0/info es un archivo virtual, es decir que aunque tenga un tamao de 0 bytes, puede contener una gran cantidad de informacin.

Otra prueba interesante que se le puede hacer al archivo /proc/acpi/processor/CPU0/info es la siguiente:


root@estudiante:/home/banda#:~$ ls -la /proc/acpi/processor/CPU0/info
-r--r--r-- 1 root root 0 2012-11-24 03:32 /proc/acpi/processor/CPU0/info

Al listar el archivo con "ls -la", aparece la hora "03:32". Suponiendo que 8 minutos ms tarde se vuelve a realizar el mismo procedimiento, el resultado ser:
root@estudiante:/home/banda#:~$ ls -la /proc/acpi/processor/CPU0/info
-r--r--r-- 1 root root 0 2012-11-24 03:40 /proc/acpi/processor/CPU0/info

Estos son algunos archivos accesibles en el sistema de archivos /proc por ser los mas convenientes en esta investigacin menciono los siguientes

cmdline: argumentos pasados al kernel en el arranque del sistema.

cpuinfo: descripcin del procesador o procesadores utilizados.

filesystems: lista de tipos de sistemas de archivos soportados por el kernel.

kcore: memoria asignada al kernel.

meminfo: estado de ocupacin de la memoria central.

mounts: lista de sistemas de archivos montados actualmente.

Entre los directorios virtuales que se utilizan para la gestin de procesos estn el proc y el sys que son directorios virtuales que contiene informacin del sistema.

El directorio de almacenamiento de procesos es el directorio /proc realmente no existe pero se puede explorar. Sus archivos son de tamao 0 no son ni binarios ni textos, sin embargo se pueden examinar y desplegar su contenido. Este directorio especial contiene todos los detalles de un sistema Linux, incluyendo el kernel, procesos y parmetros de configuracin. Estudiando el directorio /proc, podemos aprender como los comandos de Linux trabajan e incluso es posible realizar tareas administrativas.

El directorio /proc contiene a los ya mencionados archivos virtuales; el directorio /proc se crea cada vez que arrancamos nuestro equipo Se requiere ser un administrador(root) para poder examinar completamente el directorio en su totalidad.

El directorio /proc est organizado en directorios virtuales y subdirectorios, que agrupan archivos de tpicos similares. Trabajando como root el comando ls /proc nos despliega en la terminal de Linux algo como lo siguiente:

Los directorios de proceso pueden hacer referencia al id de un proceso y contener informacin especifica de este proceso. Por ejemplo pueden tenerse los siguientes directorios de proceso: /proc/1 /proc/1177 /proc/2335 /proc/4536 /proc/586 /proc/9

El directorio /proc contiene varios directorios por ser los mas convenientes en esta investigacin menciono los siguientes:

bus/ : contiene los archivos del sistema de bus.

self/ : enlace con el directorio correspondiente al proceso actual.

De manera general el objetivo principal del directorio /proc concierne en mantener la informacin de cada uno de los procesos generado por el propio sistema operativo y usuarios del sistema. Sin embargo es necesario dejar claro que el directorio /proc se categorza como un directorio virtual, a razn de que la informacin que este almacena nicamente se mantiene o existe cuando el sistema operativo se encuentra en ejecucin.

Los comandos para la manipulacin o gestin de procesos son:

top

ps ps aux kill killall time fg bg & nice

jobs

pstree

Ejecucion de los comandos de gestion de procesos

comando ps

funcionamiento: Permite ver la lista de procesos del sistema, presentando una imagen simplificada de las estructuras del ncleo que administran los procesos .

Sintaxis: ps opcin

Listado de opciones:

-A Muestra todos los procesos. -a Muestra los procesos del terminal. -e Muestra todos los procesos, como A. -f Muestra toda la informacin de cada proceso lanzado por el usuario conectado. u Muestra informacin avanzado de cada proceso lanzado por el usuario conectado. -x Muestra los procesos no vinculados a un terminal, es decir, aquellos lanzados por comandos.

ejemplo: ps

comando top

funcionamiento: ermite visualizar la actividad del procesador en tiempo real, mostrando una lista que se actualiza de forma automtica. sintaxis: top Listado de opciones -d Tiempo transcurrido entre actualizaciones en segundos. -n Nmero de veces que actualiza la informacin. Despus, sale al terminal. -u Muestra todos los procesos de un usuario
ejemplo:

comando ps aux

sintaxis: ps aux

funcion: Muestra la lista de procesos de la mquina

ejemplo:

comando pstree

sintaxis: pstree -

funcion: Permite mostrar los nombres de los procesos de forma jerrquica, lo que nos permite conocer su filiacin o parentesco.

Listado de opciones: -a --arguments Muestra init primero, el resto hacia abajo y la derecha. -c --compact No cerrar subrboles idnticos. -h --highlight-all Destaca los procesos en curso de ejecucin: -H PID --highlight-pid=PID Muestra los proceso padres. -l --long No corta lneas largas -n --numeric-sort Ordenar por nmero de PID -p --show-pids Mostrar PIDs, implica c.

-u --uid-changes Mostrar UID. -U --unicode Usar UTF-8 (Unicode. -V --version Muestra informacin sobre el commando. PID Comienza con este PID; por defecto comienza en 1 (init) USER Muetra el rbol de procesos para un usuario especfico.

ejemplo:

comando kill

sintaxis: kill [-seal] pid

funcion: Permite terminar un proceso, enviando el nmero de proceso como argumento.

ejemplo:

comando killall

funcionamiento: Permite terminar un proceso, enviando el nombre un comando como argumento.

sintaxis: killall [OPTION]... [--] NAME...

ejemplo

comando jobs

funcion: Muestra un listado de los procesos en curso de ejecucin que han sido lanzados desde el terminal en el que se escribe.

sintaxis: jobs [-lnprs] [jobspec ...] jobs -x command [args]

ejemplo:

comando time

funcion: Mide el tiempo que tarda un proceso en ejecutarse

sintaxis: time

ejemplo:

comando nice

funcion: Ajusta la prioridad de un proceso de -20 a 19

sintaxis: nice

ejemplo:

otros comandos son:

fg: Trae a primer plano un proceso parado o en segundo plano

bg: Pone un proceso en segundo plano

&: Colocado al final de la lnea de un comando,lo ejecuta en segundo plano

Вам также может понравиться