Un proceso no es más que un programa en ejecución.
El proceso se puede definir como
un programa de gestión por el sistema operativo.
Un
proceso es un concepto manejado por el sistema operativo que consiste en
el conjunto formado 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.
El sistema operativo mantiene por cada
proceso una serie de estructuras de información que permiten identificar las
características de este, así como los recursos que tiene asignados.
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.
Una parte muy importante de esta
información se encuentra normalmente como en el llamado bloque de control de
procesos (BCP). El sistema operativo mantiene una tabla de procesos con todos
los BCP de los procesos. Por razones de eficiencia, la tabla de procesos se
construye normalmente como una estructura estática, que tiene un determinado
número de BCP, todos ellos del mismo tamaño.
La información que compone un proceso
es la siguiente:
§
Contenido
de los segmentos de memoria en los que residen el código y los datos del
proceso. A esta información se le denomina imagen de memoria o core image.
§
Contenido
de los registros del modelo de programación
§
Contenido
del BCP.
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.
En los
sistemas operativos multihilo es posible crear tanto hilos como procesos. La
diferencia es que en un proceso solamente puede crear hilos para sí mismo y que
en dichos hilos comparten toda la memoria reservada para el proceso.
En este modelo todo software ejecutable de la
computadora (lo que a menudo incluye al sistema operativo), está organizado en una serie del proceso secuenciales.
Se puede compartir un procesador entre varios
procesos, usando algún algoritmo de planificación para determinar cuándo debe
de trabajar en un proceso para atender a uno distinto.


