Un proceso es un conjunto de instrucciones de un programa destinadas a ser ejecutadas por el microprocesador, un estado de ejecución en un momento dado, una memoria de trabajo y una información que permite al sistema operativo su planificación. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos. Cuando se ejecutan dos o mas procesos estos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar, usando una variable de tipo semáforo para sincronizar los procesos, de manera que si un proceso esta esperando una señal, se suspende hasta que la señal se envíe; manteniendo una cola de espera en el semáforo. Ustedes se preguntaran ¿como yo se, que proceso se ejecutaría primero si doy click simultáneamente a dos programas? pues la respuesta esta en la política first in, first out en español primero en entrar primero en salir, política que es utilizada en estructuras de datos, contabilidad de costes y teoría de colas.
Los estados de los procesos:
- Ejecución: el proceso está actualmente en ejecución.
- Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.
- Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.