Gestion De Procesos En Gnu/Linux

- GESTION DE PROCESOS EN GNU/LINUX DESARROLLO Unidad 4 Antes de ver la gestión de procesos en GNU/Linux recordemos a

Views 107 Downloads 0 File size 305KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • david
Citation preview

-

GESTION DE PROCESOS EN GNU/LINUX

DESARROLLO

Unidad 4 Antes de ver la gestión de procesos en GNU/Linux recordemos algunos conceptos. BCP (Bloque de control de procesos): Los bloques de control de procesos son estructuras de información asociadas a los procesos. Tablas de procesos: Estas tablas no son más que el conjunto de BCP´s por cada proceso en el sistema. Por tanto, GNU/Linux posee una estructura de directorios que veremos en la Unidad 6 en la cual se encuentra una carpeta o directorio fundamental para hablar de gestión de procesos en Linux. Directorio de procesos (/proc/) Dentro de los sistemas operativos Gnu/Linux, la manipulación de la información concerniente a configuraciones, dispositivos, aplicaciones y usuarios es definida mediante el manejo de ficheros ubicados dentro de directorios específicos los cuales hacen parte o constituyen la estructura de todo sistema de archivo para un sistema operativo Gnu/Linux. Por lo cual las distintas distribuciones disponen de directorios para categorizar cada información, la siguiente tabla menciona y describe algunos directorios: TABLA 1

NOMBRE

DESCRIPCIÓN

/dev

Directorio para dispositivos de hardware

/home

Directorio para usuarios del sistema

/etc

Directorio para el manejo de configuraciones

/opt

Directorio por defecto para instalación de paquetes

/bin

Directorio ficheros binarios del sistema operativo

Ahora, así como existen distintos directorios para la manipulación de información para dispositivos y usuarios, aparece el directorio /proc cuyo objetivo concierne a mantener la información 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 categoría como un directorio virtual, a razón de que la información que este almacena únicamente se mantiene o existe cuando el sistema operativo se encuentra en ejecución.

ILUSTRACIÓN 1 - EXTRAIDO DE HTTP:// BLOG.DESDELINUX.NET/ESTRUCTURA-DE-DIRECTORIOS-EN-LINUX/

/proc/ (procesos): Contiene principalmente archivos de texto, sistema de archivos virtuales que documentan al núcleo y el estado de los procesos en archivos de texto (por ejemplo, uptime, network). (Perseo, 2012) El kernel de Linux tienes dos funciones primarias: controlar el acceso a los dispositivos físicos del ordenador y establecer cuándo y cómo los procesos van a interactuar con estos dispositivos. El directorio /proc/ (también llamado el sistema de archivos proc) contiene una jerarquía de archivos especiales que representan el estado actual del kernel permitiendo a las aplicaciones y usuarios mirar detenidamente en la vista del kernel del sistema. (Linuxtopia, s.f.) TABLA 2

PERMISOS dr-xr-xr-x dr-xr-xr-x dr-xr-xr-x dr-xr-xr-x dr-xr-xr-x

TAMAÑO 0 0 0 0 0

0 0 0 0 0

FECHA

HORA

12/09/09 12/09/09 12/09/09 12/09/09 12/09/09

01:29:00 01:29:00 01:29:00 01:29:00 01:29:00

NOMBRE DIRECTORIO 1 1158 1160 1175 1179

El directorio /proc refleja claramente el concepto de Tabla de Procesos. Como sabemos las tablas de procesos guardan información sobre los procesos que se encuentran en el sistema operativo, eso mismo hace el directorio /proc, se encarga de guardar información pertinente al proceso que se encuentra en el sistema. Un ejemplo sobre esta información lo podemos hacer con la Tabla 2: Tenemos en el sistema 5 procesos que se están ejecutando actualmente en el sistema, ahora queremos listar dichos procesos accediendo desde consola al directorio /proc

ILUSTRACIÓN 2

En la Ilustración 2 podemos observar la información que contiene el proceso, por cada proceso el sistema crea un directorio y este dentro de ella información que refiere al mismo. Entre las funciones básicas o principales que posee todo sistema operativo se encuentra la gestión de procesos, es decir 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 razón de estos una de las principales características de los sistemas operativos es brindar al usuario la capacidad de creación 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 administración y creación de procesos. A razón de estos surge la siguiente inquietud: ¿Mediante qué mecanismo o mecanismos un sistema operativo Gnu/Linux gestiona sus procesos? Archivos Virtuales Antes de ver el concepto de Archivo Virtual debemos recordar que cada proceso, posee atributos o identificadores nombrados a continuación: Process ID (PID): Cada proceso tiene un número asociado que se le asigna cuando es creado. Los PIDs son números enteros únicos para todos los procesos sistema.

USER ID (UID) && GROUP ID (GID): Cada proceso tiene que tener asociado unos privilegios que limiten el acceso al sistema de ficheros. Estos privilegios quedan determinados por el user ID y group ID del usuario que creó el proceso. Parent Process: Todo proceso es creado por otro proceso, el proceso padre (parent process). El primer proceso iniciado por el kernel cuando el sistema arranca es el programa init. Este proceso tiene el PID 1 y es el padre de todos los procesos del sistema. Parent Process ID (PPID): El PID del proceso que inició el proceso hijo.

Enviroment: Cada proceso mantiene una lista de variables y sus correspondientes valores. El conjunto de estas variables recibe el nombre de process enviroment. Normalmente el entorno de un proceso hijo se hereda del proceso padre a menos de que se indique de otra forma. Current Working Directory: Cada proceso tiene asociado un directorio por defecto, donde el proceso leerá/escribirá archivos, a menos que se le especifique explícitamente lo contrario. Nice Number: Permite al usuario modificar la prioridad de ejecución de un proceso. (Lara)

Los sistemas operativos Gnu/Linux gestionan sus procesos basados en el uso de los llamados archivos virtuales. Ahora, ¿Qué es un Archivo Virtual? Para entender esto es necesario saber que es un archivo, un archivo se define como una secuencia de bits que ocupan un lugar dentro de un medio de almacenamiento fijo cuyo tamaño aumenta en relación a la información que este incluya, por ejemplo un archivo de plano aumenta su tamaño en relación a la cantidad de caracteres que ha este se le incluyan, sin embargo cuando nos referimos a archivos virtuales hablamos de archivos que almacena información de forma volátil y no ocupan un espacio fijo en disco, es decir que este tipo de archivo es almacenado en memoria RAM y no en un espacio de almacenamiento fijo. En Linux, todo se guarda en archivos. La mayoría de usuarios están familiarizados con los dos primeros tipos de archivos, de texto y binarios. Sin embargo, el directorio /proc/ contiene otro tipo de archivos llamado archivo virtual. Por esta razón, es que a menudo se hace referencia a /proc/ como un sistema de archivos virtual. Estos archivos virtuales poseen cualidades únicas. En primer lugar, la mayoría de ellos tienen un tamaño de 0 bytes. Sin embargo, cuando se visualiza el archivo, éste puede contener una gran cantidad de información. Además, la mayoría de configuraciones del tiempo y las fechas reflejan el tiempo y fecha real, lo que es un indicativo de que están siendo constantemente modificados. (Linuxtopia, s.f.) Comando ps El sistema operativo GNU/Linux como cualquier otro sistema operativo se encarga de gestionar los procesos a su manera por medio de los algoritmos de planificación vistos anteriormente. Este sistema operativo le permite al usuario mostrar la lista de procesos que se encuentran ejecutándose en el sistema y algunas características de estos: Hora de inicio Uso de memoria Estado de ejecución Propietario Entre otros Y la forma en la cual el usuario puede realizar esta función es por medio del comando ps. La sintaxis usada para ejecutar este comando es la siguiente:

[test@linux ~]$ ps [options]

Dicha sintaxis muestra el listado de los procesos y sus características según la opción que se le pase al comando. ¿Qué tipo de opciones posee este comando?

TABLA 3 - INFORMACIÓN EXTRAÍDA DE (LARA)

OPCIÓN -a

DESCRIPCIÓN Muestra los procesos creados por cualquier usuario y asociados a un terminal.

-l

Formato largo. Muestra la prioridad, el PID del proceso padre entre otras informaciones.

-u

Formato de usuario. Incluye el usuario propietario del proceso y la hora de inicio.

-U

Usr Lista los procesos creados por el usuario “usr”.

-x

Muestra los procesos que no están asociados a ningún terminal del usuario. Útil para ver los “demonios” (programas residentes) no iniciados desde el terminal.

ILUSTRACIÓN 3 - EXTRAÍDO DE

HTTP :// ELARA.SITE.AC .UPC.EDU/DOCUMENTACION /LINUX%20-%20UD7%20%20G ESTION%20DE%20P ROCESOS.PDF

La orden o comando ps proporciona una información muy interesante sobre los procesos que tenemos en ejecución. Podemos saber el PID del proceso, qué programa originó el proceso, cuanta memoria ocupa, cuanta CPU consume, cuanto tiempo de ejecución lleva, etc. (Lara) Comando pstree Sintaxis:

[test@linux ~]$ pstree [options] [PID | user]

Este comando muestra la jerarquía de los procesos mediante una estructura de árbol. Si se especifica el PID de un proceso, el árbol empezará desde ese proceso, de lo contrario el árbol empezará por el proceso init (PID=1) y mostrará todos los procesos del sistema. Si se especifica un usuario valido se

mostrará la jerarquía de todos los procesos del usuario. TABLA 4 - INFORMACIÓN EXTRAÍDA DE (LARA)

OPCIÓN -a

DESCRIPCIÓN Incluye en el árbol de procesos la línea de comandos que se usó para iniciar el proceso.

-c

Deshabilita la unión de procesos hijos con el mismo nombre (réplicas de un mismo proceso).

-G

Usa los caracteres de línea para dibujar el árbol. La representación del árbol es más clara, pero no funciona al redireccionar la salida.

-h

Remarca la jerarquía del proceso actual (normalmente el terminal). No funciona al redireccionar la salida.

-n

Por defecto los procesos con mismo padre se ordenan por el nombre. Esta opción fuerza a ordenar los procesos por su PID.

-p

Incluye el PID de los procesos en el árbol. Proceso INIT

En Linux todos los procesos que son creados o existen en el sistema tienen un proceso padre, pero todos los procesos tienen un procesos padre que es el “padre de todo” o mejor dicho, el primer proceso que se ejecuta y existe en el sistema. “Init” es el primer proceso que crea el Kernel Linux cuando inicia el sistema (boot) y por defecto todos los procesos que existen en el sistema terminan siendo directa o indirectamente hijos de init. Esto es un proceso que posee un PID igual a 1 (Uno) por ser el primer proceso y este no puede ser matado (kill), excepto cuando se apaga el sistema. (Marini, 2013)

EJERCICIOS/ACTIVIDADES

Seguimiento P.A.S Shell de manejo de procesos

BIBLIOGRAFIA

Lara, E. (s.f.). Obtenido de http://elara.site.ac.upc.edu/documentacion/LINUX%20-%20UD7%20%20Gestion%20de%20Procesos.pdf Linuxtopia. (s.f.). Obtenido de linuxtopia.org: http://www.linuxtopia.org/online_books/espaniol/centos_linux_guides/centos_linux_reference_guide/chproc.html Marini, E. (2013). Linuxito.com. Obtenido de http://www.linuxito.com/docs/procesos-linuxito.pdf Perseo. (27 de 3 de 2012). blog.desdelinux.net. Obtenido de http://blog.desdelinux.net/estructura-de-directoriosen-linux/