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.