Академический Документы
Профессиональный Документы
Культура Документы
UNIVERSIDAD DE CORDOBA
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
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
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.
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.
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.
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
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:
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.
top
jobs
pstree
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
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
ejemplo:
comando killall
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.
ejemplo:
comando time
sintaxis: time
ejemplo:
comando nice
sintaxis: nice
ejemplo: