Sunteți pe pagina 1din 9

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

Directorio por defecto para instalación de


/opt
paquetes
Directorio ficheros binarios del sistema
/bin
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
NOMBRE
PERMISOS TAMAÑO FECHA HORA
DIRECTORIO
dr-xr-xr-x 0 0 12/09/09 01:29:00 1
dr-xr-xr-x 0 0 12/09/09 01:29:00 1158
dr-xr-xr-x 0 0 12/09/09 01:29:00 1160
dr-xr-xr-x 0 0 12/09/09 01:29:00 1175
dr-xr-xr-x 0 0 12/09/09 01:29:00 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 DESCRIPCIÓN
Muestra los procesos creados por cualquier usuario y asociados a un
-a
terminal.
Formato largo. Muestra la prioridad, el PID del proceso padre entre
-l
otras informaciones.
Formato de usuario. Incluye el usuario propietario del proceso y la hora
-u
de inicio.
-U Usr Lista los procesos creados por el usuario “usr”.
Muestra los procesos que no están asociados a ningún terminal del
-x 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 DESCRIPCIÓN
Incluye en el árbol de procesos la línea de comandos que se usó
-a
para iniciar el proceso.
Deshabilita la unión de procesos hijos con el mismo nombre
-c
(réplicas de un mismo proceso).
Usa los caracteres de línea para dibujar el árbol. La
-G representación del árbol es más clara, pero no funciona al
redireccionar la salida.
Remarca la jerarquía del proceso actual (normalmente el
-h
terminal). No funciona al redireccionar la salida.

Por defecto los procesos con mismo padre se ordenan por el


-n
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/ch-
proc.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-directorios-
en-linux/

S-ar putea să vă placă și