Gestión De Procesos:
Enviado por chamenclas • 7 de Septiembre de 2011 • 2.620 Palabras (11 Páginas) • 872 Visitas
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 ilusión de que cada usuario tiene dedicado el sistema completa para él.
Un proceso es una instancia de un programa en ejecución 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 asignándole un identificador numérico -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 máximo, 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 sólo tiene una CPU que ejecuta los programas, y por tanto, sólo un programa podrá estar ejecutandose en un momento determinado.
Esta planificación de la CPU de conmutación temporal de procesos, está basada en un sistemas de colas FIFO multinivel con actualización de prioridad, es posible establecer prioridades externamente. Ello permite que los usuarios del sistemas tengan la impresión de que la máquina les pertenece por completo.
Así, sólo se puede considerar un proceso cuando la orden que lo genera está en ejecución real o en espera de acceso a la CPU. Los procesos describen el estado actual de la máquina. Un proceso es creado desde otro proceso, tiene una estructura jerárquica 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 conexión
login
login
PID = 45
PPID = 23
Interp de comandos
bash
ls -l
bash
PID = 87
PPID = 45
Procesos del sistema
A continuación 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 básicos en los que se puede encontrar un proceso son
los siguientes:
• Ejecutándose.
• Listo para ejecutarse
• Esperando o bloqueado
Por el contrario en Linux nos podemos encontrar 3 tipos de procesos, cada uno con características y atributos diferentes, en función de cómo se haya comenzado su ejecución:
• Interactivos: iniciados y controlados por un intérprete de comandos. Pueden ejecutarse en primer
(foreground) o segundo plano (background).
• En cola: no están asociados a ningún terminal, sino que se envían 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 quién
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. Además visualiza la hora actual y el número medio de trabajos esperando a ejecutarse desde el último, los cinco y los diez últimos minutos. Si el número 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 están usando el sistema, visualizando su identificador, el terminal que está utilizando y la fecha y hora de entrada en el sistema.
$who
-H muestra más información
ami visualiza el usuario actual
ps
Esta orden muestra información sobre los procesos que están vivos al ejecutar
la orden. Sin argumentos, la orden ps muestra la información acerca de los
procesos asociados a la sesión de presentación de un usuario. La información 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 opción -f se obtiene información 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 día en que se inició el proceso
Otras opciones de la orden son:
• -e todos los procesos que están ejecutándose en el sistema.
• -a todos los procesos asociados a un terminal.
• -r sólo los procesos cuyo estado sea ejecutándose
• -l obtiene información completa de la tabla de procesos:
à F: Flags asociados con el proceso. Cada bit indica una condición de tipo de proceso.
à S: Estado del proceso (S-sleeping, bloqueado; R-running, ejecutandose)
à PRI: prioridad del proceso (dinámica).
...