LINUX PROCESOS
INTRODUCCIÓN Los SO modernos suelen ser multitarea, lo que significa que crean la ilusión de hacer más de una cosa a la vez cambiando rápidamente de una ejecución de programa a otro. El kernel de Linux maneja esto a través del uso de procesos. Los procesos son la forma cómo Linux organiza los diferentes programas en espera de su turno en la U.
INTRODUCCIÓN A veces un computador se vuelve lento, o una aplicación dejará de responder. Hay herramientas disponibles en la línea de comandos que nos permiten examinar lo que los programas están haciendo y cómo poner fin a los procesos que tienen problemas. • ps: Muestra una instantánea de los procesos actuales. • top: Visualiza tareas. • jobs: Lista los trabajos activos.
INTRODUCCIÓN • bg: Coloca un trabajo en segundo plano. • fg: Coloca un trabajo en primer plano. • kill: Envía una señal a un proceso. • killall: Elimina procesos por su nombre. • shutdown: Apagar o reiniciar el sistema.
COMO TRABAJA UN PROCESO Cuando el sistema inicia, el kernel inicia algunas de sus propias actividades como procesos y lanza un programa llamado init. Init a su vez, ejecuta una serie de Shell scripts (localizados en /etc) llamados init scripts, los que inician todos los servicios del sistema. Muchos de estos servicios son implementados como programas demonios.
COMO TRABAJA UN PROCESO El hecho de que un programa puede poner en marcha otros programas se expresa en el esquema de proceso como un proceso padre produciendo un proceso hijo. El kernel mantiene información acerca de cada proceso para ayudar a mantener las cosas organizadas. •
A cada proceso se le asigna un número llamado identificador de proceso (PID).
•
PIDs se asignan en orden ascendente, con init siempre con el PID 1.
•
El kernel también mantiene un registro de la memoria asignada a cada proceso.
•
Al igual que los archivos, procesos también tienen propietarios, ID de , etc.
VIENDO PROCESOS CON PS El comando mas comúnmente usado para ver procesos es ps. El programa ps tiene muchas opciones, pero la forma simple de usarlo es la siguiente:
Por defecto ps muestra los procesos asociados a la sesión actual de la terminal. • TTY es la abreviatura de teletipo y se refiere a la terminal de control para el proceso • El campo TIME es la cantidad de tiempo de U consumido por el proceso.
PS X
PS X | MORE (ALT+124)
VIENDO PROCESOS CON PS Si agregamos una opción, podemos obtener información mas amplia de lo que el sistema esta haciendo.
Una nueva columna con titulo STAT ha sido agregada a la salida. STAT es la abreviatura de estado y revela el estado actual del proceso
VIENDO PROCESOS CON PS
VIENDO PROCESOS CON PS Otro conjunto popular de opciones es aux:
Este conjunto de opciones muestra los procesos correspondientes a cada . Con estas opciones, obtenemos columnas adicionales de información.
VIENDO PROCESOS CON PS
PS AUX | MORE
VER PROCESOS DINÁMICAMENTE CON TOP El comando ps sólo proporciona una instantánea del estado de la máquina en el momento en que se ejecuta. Para obtener una vista más dinámica de la actividad de la máquina, se utiliza el comando top.
El programa top muestra una pantalla de actualización continua (por defecto, cada 3 segundos) de los procesos del sistema listados en base a la actividad de cada proceso.
VER PROCESOS DINÁMICAMENTE CON TOP Su nombre viene del hecho de que el programa top se utiliza para ver los procesos "top" en el sistema. La pantalla de comando top se compone de dos partes: • Un resumen del sistema en la parte superior de la pantalla. • Una tabla de procesos ordenados por la actividad de la U:
VER PROCESOS DINÁMICAMENTE CON TOP
VER PROCESOS DINÁMICAMENTE CON TOP
VER PROCESOS DINÁMICAMENTE CON TOP
TOP –D 10 (EL TIEMPO DE ACTUALIZACIÓN DE PANTALLA)
VER PROCESOS DINÁMICAMENTE CON TOP El programa top acepta una serie de comandos de teclado. Los dos más interesantes son: • h que muestra la pantalla de ayuda del programa. • q que cierra el programa top.
AYUDA COMANDO TOP
CONTROLANDO PROCESOS INTERRUMPIENDO UN PROCESO En un terminal, presionando CTRL-C interrumpe un programa.
Después presionamos CTRL-C, la ventana de xlogo es cerrada y el intérprete de comandos es retornado. Muchos (pero no todos) los programas de línea de comandos se pueden interrumpir mediante el uso de esta técnica.
CONTROLANDO PROCESOS COLOCAR UN PROCESO EN SEGUNDO PLANO Si queremos usar el intérprete de comandos sin terminar el programa en curso, debemos colocar el programa en segundo plano. Para poner un programa para que se ejecute en segundo plano, colocamos al final del comando el símbolo &:
CONTROLANDO PROCESOS COLOCAR UN PROCESO EN SEGUNDO PLANO Se muestra un mensaje que es parte de una función de shell llamada control de trabajos. Con este mensaje, el shell nos está diciendo que hemos iniciado el trabajo número 1 ([1]) y que tiene PID 28236. Si ejecutamos el comando ps, podemos ver nuestro proceso:
AGREGAR PROGRAMAS A SEGUNDO PLANO
CONTROLANDO PROCESOS COLOCAR UN PROCESO EN SEGUNDO PLANO La función de control de trabajo del Shell también nos proporciona una manera listar los trabajos que se han lanzado desde nuestro terminal. Usando el comando jobs, podemos ver la siguiente lista:
Los resultados muestran que tenemos un trabajo, numerados 1, que se está ejecutando, y que la orden fue xlogo &.
CONTROLANDO PROCESOS RETORNANDO UN PROCESO A PRIMER PLANO Un proceso en segundo plano es inmune a la entrada de teclado, incluyendo cualquier intento de interrumpirlo con un CTRL-C. Para devolver un proceso a primer plano, se utiliza el comando fg.
El comando fg seguido de un signo de porcentaje y el número de trabajo devuelve un proceso a primer plano.
CAMBIAR DE SEGUNDO PLANO A PRIMER PLANO
CONTROLANDO PROCESOS DETENIENDO (PAUSANDO) UN PROCESO A veces vamos a querer detener un proceso sin terminarlo. Esto se hace a menudo para permitir un proceso de primer plano a ser trasladado a un segundo plano. Para detener un proceso en primer plano, pulse Ctrl-Z.
CONTROLANDO PROCESOS Podemos o bien restaurar el programa al primer plano, con el comando fg, o mover el programa a un segundo plano con el comando bg.
Mover un proceso desde el primer plano a segundo plano es útil si lanzamos un programa gráfico desde la línea de comandos, pero olvidamos colocarlo en segundo plano agregando el símbolo &.
CONTROLANDO PROCESOS ¿Por qué desearíamos lanzar un programa gráfico desde la línea de comandos? Hay dos razones. En primer lugar, el programa que se desea ejecutar podría no ser listado en los menús del gestor de ventanas (como xlogo). En segundo lugar, con el lanzamiento de un programa desde la línea de comandos, es posible ver los mensajes de error que serían invisibles si el programa fuera lanzado de forma gráfica. Además, algunos programas gráficos tienen muchas opciones de línea de comandos interesantes y útiles.