4.1. El concepto de proceso
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
El concepto de proceso
La noción de proceso es fundamental para entender los sistemas modernos que ejecutan muchas actividades simultaneamente. No hay una definicion exacta, pero las mas utilizadas son:
- Un programa en ejecucion.
- El espiritu animado de un procedimiento.
- El centro de control de un procedimiento en ejecucion.
- La entidad a la que se asignan recursos de un ordenador.
- La instanciacion de un programa.
La expresion "un programa en ejecucion" es una de las mas aceptadas:
- Programa: descripcion detallada para la resolucion de un problema de manera general, en abstracto.
- Proceso: aplicacion concreta del programa a un caso particular y en un momento determinado, con asignacion de recursos concretos. Un proceso es irrepetible.
Un mismo programa puede tener muchas instanciaciones (copias) ejecutandose de manera concurrente en el mismo sistema. Por ejemplo, varios programadores utilizando el mismo editor de texto.
Analogia: un programa es a un proceso como el futbol es a un partido. El futbol define las normas; cuando asignamos recursos (campo, jugadores), instanciamos un partido concreto que termina cuando finaliza.
Algunos SO aceptan hilos de ejecucion concurrentes (threads) dentro de un proceso.
Esquema de repaso
- Proceso = programa + recursos + ejecucion concreta.
- Un mismo programa puede generar varios procesos.
- Los procesos son irrepetibles; los programas son reutilizables.
Debes poder explicar
- La diferencia entre programa y proceso con una analogia.
- Por que un mismo programa puede tener multiples procesos.
- Que es un hilo y como se relaciona con un proceso.