Diferencia entre revisiones de «Procesos»

De CURE - Informática
Saltar a: navegación, buscar
(Tipos)
(Información almacenada por el kernel)
Línea 19: Línea 19:
 
* Información de Estado
 
* Información de Estado
 
* Espacio de direcciones del proceso.
 
* Espacio de direcciones del proceso.
 +
 +
=== Identificadores ===
 +
 +
Cuando se crea un proceso se le asigna un === Información almacenada por el kernel ===
 +
 +
Para cada proceso definido en el sistema, el kernel del sistema operativo almacena y mantiene al día varios tipos de información sobre el proceso. Esta información podemos ordenarla de la siguiente forma:
 +
* Información general. Identificadores de proceso, usuario y grupo
 +
* Ambiente (variables, directorio actual, etc.)
 +
* Información de E/S
 +
* Información de Estado
 +
* Espacio de direcciones del proceso.
 +
 +
=== Identificadores ===
 +
 +
Cuando se crea un proceso se le asigna un identificador unico. Este numero debe utilizarse por el administrador para referirse a un proceso dado al ejecutar un comando.
 +
 +
*Process ID (PID): este es asignado por el sistema a cada nuevo proceso en orden creciente empezando desde cero. Si antes de reiniciar el sistema se llega al numero maximo, se vuelve a comenzar desde cero, salteando los procesos que aun esten activos.
 +
*Parent Process ID (PPID): la creación de nuevos procesos en Unix se realiza por la vía de duplicar un proceso existente invocando al comando fork(). Al proceso original se le llama "padre" y al nuevo proceso "hijo". El PPID de un proceso es el PID de su proceso padre. El mecanismo de creación de nuevos procesos en Unix con el comando fork().
 +
*UID y EUID:el User ID (UID) del proceso identifica al creador del proceso, esto es a la persona que lo lanzó a correr. Este usuario y root son los únicos que pueden modificar al proceso. El UID se utiliza con fines de tarificación o accounting. El sistema de accounting carga a la cuenta del usuario identificado por el UID del proceso por los recursos del sistema que el proceso utilice (tiempo de CPU, impresoras, terminales, etc.).
 +
*GID y EGIDidentificador unico. Este numero debe utilizarse por el administrador para referirse a un proceso dado al ejecutar un comando.
 +
 +
*Process ID (PID): este es asignado por el sistema a cada nuevo proceso en orden creciente empezando desde cero. Si antes de reiniciar el sistema se llega al numero maximo, se vuelve a comenzar desde cero, salteando los procesos que aun esten activos.
 +
*Parent Process ID (PPID): la creación de nuevos procesos en Unix se realiza por la vía de duplicar un proceso existente invocando al comando fork(). Al proceso original se le llama "padre" y al nuevo proceso "hijo". El PPID de un proceso es el PID de su proceso padre. El mecanismo de creación de nuevos procesos en Unix con el comando fork().
 +
*UID y EUID:el User ID (UID) del proceso identifica al creador del proceso, esto es a la persona que lo lanzó a correr. Este usuario y root son los únicos que pueden modificar al proceso. El UID se utiliza con fines de tarificación o accounting. El sistema de accounting carga a la cuenta del usuario identificado por el UID del proceso por los recursos del sistema que el proceso utilice (tiempo de CPU, impresoras, terminales, etc.).
 +
*GID y EGID
  
 
==Objetivos==
 
==Objetivos==

Revisión del 00:27 21 nov 2011

Procesos

Se le llama proceso a un programa en ejecución y al objeto abstracto que crea el sistema operativo para manejar el acceso de ese programa a los recursos del sistema (memoria,CPU, dispositivos de E/S). En el sistema puede coexistir varias instancias de un mismo programa ejecutándose a la misma vez, cada uno de estos se toman como un proceso diferente. Unix es un sistema multiproceso por tiempo compartido, se dice así debido a que a los ojos de un usuario en un momento dado hay multiples programas ejecutandose, sin embargo en una maquina con un solo procesador hay en cada instante un proceso ejecutando. El encargado de hacer que parezca que se están ejecutando todos simultáneamente es el procesador, este va rotando el uso del procesador a intervalos breves entre los procesos definidos en el sistema.

Tipos

Procesos del sistema: son aquellos asociados al funcionamiento local de la máquina, kernel, o procesos (daemons) asociados a diferentes servicios (locales o de red).

Procesos del usuario administrador: en caso de actuar como tal, nuestros procesos aparecerán asociados al usuario root.

Procesos del usuario del sistema: asociados a la ejecución de sus aplicaciones.

Información almacenada por el kernel

Para cada proceso definido en el sistema, el kernel del sistema operativo almacena y mantiene al día varios tipos de información sobre el proceso. Esta información podemos ordenarla de la siguiente forma:

  • Información general. Identificadores de proceso, usuario y grupo
  • Ambiente (variables, directorio actual, etc.)
  • Información de E/S
  • Información de Estado
  • Espacio de direcciones del proceso.

Identificadores

Cuando se crea un proceso se le asigna un === Información almacenada por el kernel ===

Para cada proceso definido en el sistema, el kernel del sistema operativo almacena y mantiene al día varios tipos de información sobre el proceso. Esta información podemos ordenarla de la siguiente forma:

  • Información general. Identificadores de proceso, usuario y grupo
  • Ambiente (variables, directorio actual, etc.)
  • Información de E/S
  • Información de Estado
  • Espacio de direcciones del proceso.

Identificadores

Cuando se crea un proceso se le asigna un identificador unico. Este numero debe utilizarse por el administrador para referirse a un proceso dado al ejecutar un comando.

  • Process ID (PID): este es asignado por el sistema a cada nuevo proceso en orden creciente empezando desde cero. Si antes de reiniciar el sistema se llega al numero maximo, se vuelve a comenzar desde cero, salteando los procesos que aun esten activos.
  • Parent Process ID (PPID): la creación de nuevos procesos en Unix se realiza por la vía de duplicar un proceso existente invocando al comando fork(). Al proceso original se le llama "padre" y al nuevo proceso "hijo". El PPID de un proceso es el PID de su proceso padre. El mecanismo de creación de nuevos procesos en Unix con el comando fork().
  • UID y EUID:el User ID (UID) del proceso identifica al creador del proceso, esto es a la persona que lo lanzó a correr. Este usuario y root son los únicos que pueden modificar al proceso. El UID se utiliza con fines de tarificación o accounting. El sistema de accounting carga a la cuenta del usuario identificado por el UID del proceso por los recursos del sistema que el proceso utilice (tiempo de CPU, impresoras, terminales, etc.).
  • GID y EGIDidentificador unico. Este numero debe utilizarse por el administrador para referirse a un proceso dado al ejecutar un comando.
  • Process ID (PID): este es asignado por el sistema a cada nuevo proceso en orden creciente empezando desde cero. Si antes de reiniciar el sistema se llega al numero maximo, se vuelve a comenzar desde cero, salteando los procesos que aun esten activos.
  • Parent Process ID (PPID): la creación de nuevos procesos en Unix se realiza por la vía de duplicar un proceso existente invocando al comando fork(). Al proceso original se le llama "padre" y al nuevo proceso "hijo". El PPID de un proceso es el PID de su proceso padre. El mecanismo de creación de nuevos procesos en Unix con el comando fork().
  • UID y EUID:el User ID (UID) del proceso identifica al creador del proceso, esto es a la persona que lo lanzó a correr. Este usuario y root son los únicos que pueden modificar al proceso. El UID se utiliza con fines de tarificación o accounting. El sistema de accounting carga a la cuenta del usuario identificado por el UID del proceso por los recursos del sistema que el proceso utilice (tiempo de CPU, impresoras, terminales, etc.).
  • GID y EGID

Objetivos

  • Manejar y listar procesos
  • Detener procesos por linea de comando
  • Cambiar prioridad de procesos
  • Modificar prioridad de procesos ejecutandose.

Comandos

top

El comando top muestra a tiempo real un listado de los procesos que se estan ejecutando en el sistema

ps

El comando ps muestra un listado de los procesos que se están ejecutando en el sistema. Si solamente presionamos ps mostrara los procesos del usuarios el cual este logueado.

kill

Este comando se utiliza para enviar mensajes sencillos a los procesos ejecutándose en el sistema. El mensaje por defecto que envía es el de terminación.

nice

Este comando modifica la prioridad de procesos, la prioridad que se emplea con este comando varia desde -20 a +20, siendo -20 la prioridad máxima, esto significa que va a utilizar mas recursos del sistema, en comparación con los otros procesos en ejecución.

renice

Altera la prioridad de uno o mas procesos en ejecución. Aplicar este comando a un grupo de procesos, provoca que todos los procesos del grupo de procesos vean alterada su prioridad.

strace

Es una utilidad para la comprobación de errores de comandos. Cada vez que strace es ejecutado, puede registrar todos los archivos utilizados y el comando usado en un stack, el cual puede ser utilizado en un archivo de salida, este es una herramienta muy potente. Su uso mas frecuente consiste en arrancarlo junto a un programa al que se le va a efectuar el trazado, este imprime una lista de llamadas al sistema que dicho programa ejecuta.

Procedimientos

Verificación

Comandos útiles:

  • ps: lista los procesos con los datos de usuario, tiempo, identificador de proceso y terminal usado. Una de las opciones más utilizadas es ps -axu (ver página man).
  • top: da una lista actualizada de los procesos, monitorizando dinámicamente los cambios. Además da información de CPU, memoria y swap. Útil en situaciones de saturación de uso de recursos.
  • kill: permite eliminar procesos del sistema mediante el envío de señales al proceso. Útil en programas con comportamiento inestable o programas interactivos que por alguna razón dejan de responder (ver man 7 signal).
  • nice: modifica la prioridad de un proceso, esta es un número n entre -20 y 20, la máxima prioridad es -20. Si no se define se corre el proceso con prioridad 0.
  • renice: igual que nice pero utiliza el número de proceso (PID).
  • strace: utilitario para hacer un "debug" a un comando particular, muestra todos los pedidos que se le hace al sistema.


Referencias

http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/administracion-avanzada-del-sistema-operativo-gnu-linux/materiales/

http://www.vik.mx/blog/?p=20

http://en.wikipedia.org/wiki/Nice_(Unix)