Cual es el mejor Anti Virus ?

martes, 25 de mayo de 2010

Tareas Y Procesos

El control de tareas es una utilidad incluida en la shells como bash o tcsh que permiten el control de comandos o tareas (en ingles: jobs) al mismo tiempo.
Cada vez que se ejecuta un programa se lanza un proceso (por lo menos) que es, simplemente, el nombre que se le da a ese programa cuando se esta ejecutando.

Para ver la lista de procesos que se están ejecutando actualmente usamos el comando ps

$ ps

PID TTY TIME CMD
20169 pts/1 00:00:00 bash
20170 pts/1 00:00:00 ps

PID: Identificador del proceso (process identifier).
TTY: Terminal
TIME: Tiempo que ha usado (o usa) el proceso.
CMD (COMMAND): Nombre del proceso.

El comando ps sin argumentos solo muestra los procesos del usuario y sin mucha información, para obtener mas información usaremos la opción -l.

$ ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIM CM
0 S 1004 20203 20168 0 72 0 - 639 wait4 pts/2 00:00:00 bash
0 R 1004 20224 20203 0 76 0 - 626 - pts/2 00:00:00 ps

F:
S (STAT): Estado del proceso.
UID:
PID: Identificador del proceso.
PPID: Identificador del proceso padre.
C:
PRI:
NI: Prioridad con la que se ejecuta el proceso, 0 por defecto.
ADDR:
SZ:
WCHAN:
TTY: Terminal desde la que se lanzo el proceso.
TIME: Tiempo usado por el comando.
CMD (COMMAND): Nombre del comando.

Las letras que pueden estar en el estado del proceso (S o STAT) son las siguientes:

D: proceso que no se puede interrumpir.
R: proceso que se esta ejecutando actualmente
S: proceso parado o dormido
T: proceso que ha sido detenido por el usuario o el sistema.
Z: proceso zombie. Este estado indica que el proceso ha tenido
algún fallo y no funciona correctamente.

Para mostrar todos los procesos del sistema usamos la opción -A que, combinada con -l, nos da casi toda la información posible de todos los procesos.

$ ps -Al

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 60 0 - 372 select ? 00:00:05 init
.............................................................................................................................................
0 S 1004 20169 20168 0 60 0 - 639 wait4 pts/2 00:00:00 bash
0 S 1004 20277 20169 0 60 0 - 428 wait4 pts/1 00:00:00 man
0 R 1004 20311 20203 0 70 0 - 626 - pts/2 00:00:00 ps

Para obtener informacion sobre los consumos de memoria del sistema y de los procesos se usa el comando top, que es especialmente util para cuando el equipo va lento a causa de un proceso.

El proceso INIT: El proceso INIT es especial, cuando el kernel termina de cargar todo lo necesario llama a INIT y este pasa a ser el 'proceso 0' , INIT ahora llamara al resto de procesos que pasan a ser sus hijos en un arbol de procesos (con el comando pstree podemos verlo) encabezado en todo momento por INIT.
INIT no solo llamara a los procesos sino que ajustara los niveles de ejecucion, montara la unidades necesarias y chequeara el sistema si es necesario...
Despues de esto INIT espera a que sucedan 3 cosas: que uno de los procesos hijos finalizen, un fallo en el suministro electrico o que el nivel de ejecucion sea cambiado.

Cuando el nivel de ejecución es cambiado INIT manda la señal 'SIGTERM' a todos los procesos para que guarden los datos y finalicen, si al cabo de 20 segundos alguno no ha terminado es 'matado' con la señal 'SIGKILL'.
Más información sobre el arranque de un sistema con GNU/Linux.

Los términos proceso y tarea son prácticamente sinónimos, sin embargo se suele llamar tarea a un proceso cuando es usado en conjunto con un control de tareas que es una característica propia de la shell.

Normalmente se suele trabajar solo con un proceso a la vez (monotarea) pero la posibilidad de, junto con un control de tareas, poder usar la capacidad multitarea de Linux es sin duda una de las grandes ventajas respecto a sus competidores.


Primer y segundo plano:

Cuando un proceso recibe entradas desde el teclado y emite salidas a la pantalla (al no ser que se le haya redireccionado la salida o la entrada) se dice que esta en primer plano.
Solo puede haber un programa en primer plano a la vez.

Cuando un programa no necesita entradas, su salida no es interesante o se quiere ejecutar otro mas interesante se le puede dejar en segundo plano.

Los procesos también pueden ser suspendidos, un proceso suspendido no se ejecuta actualmente pero sus datos siguen en memoria.
Suspender un proceso no es lo mismo que interrumpirla (con Ctrl-C normalmente), cuando lo interrumpimos el proceso deja de estar en memoria y se pierden todos sus datos no guardados, aunque algunos programas cuando capturan que se ha pulsado Crtl-C guardan todos sus datos ordenadamente y salen.


No hay comentarios:

Publicar un comentario