Un proceso es un programa en ejecución. Los procesos son
gestionados por el sistema
operativo y están
formados por:
§ Las
instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
§ Su
estado de ejecución en un momento dado, esto es, los valores de los registros
de la CPU para dicho programa.
§ Su
memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
§ Otra
información que permite al sistema
operativo su planificación.
Esta definición varía ligeramente en el caso
de sistemas operativos multihilo, donde un
proceso consta de uno o más hilos, la memoria de trabajo
(compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecució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, pero lo hace a petición de otros
procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no
compartir el espacio de memoria con el proceso que los ha creado o ser creados
en el mismo espacio de memoria.
En los sistemas operativos multihilo es
posible crear tanto hilos como procesos. La diferencia estriba en que un
proceso solamente puede crear hilos para sí mismo y en que dichos hilos
comparten toda la memoria reservada para el proceso.