Un proceso es básicamente como un programa en
ejecución. Consta del programa ejecutable, los datos y la pila del programa, su
contador de programa, apuntador de pila y otros registros, y la otra
información que se necesita para ejecutar el programa.
La manera sencilla de tener una noción intuitiva de lo que es un proceso
consiste en pensar en los sistemas con tiempo compartido. En forma periódica el
sistema operativo decide suspender la ejecución de un proceso y dar inicio a la
ejecución de otro, por ejemplo, porque el primero haya tomado ya más
de su parte del tiempo del CPU, en terrenos del segundo.
Cuando un proceso se suspende temporalmente como éste, debe reiniciarse
después exactamente en el mismo estado en que se encontraba cuando se detuvo.
Esto significa que toda la información relativa al proceso debe guardarse en
forma explícita en algún lugar durante la suspensión.
En muchos sistemas operativos, toda la información referente a cada
proceso, diferente del contenido de su espacio de direcciones, se almacena en
una tabla de sistema operativo, llamada tabla de procesos, la cual es un
arreglo o lista enlazada de estructuras, una para cada proceso en existencia
corriente.
Si un proceso puede crear uno o más procesos diferentes (conocidos como
proceso hijo) y estos procesos a la vez originan procesos hijos, se llega
rápidamente a la estructura del árbol de procesos.
Los procesos pueden ser cooperantes o independientes, en el primer caso
se entiende que los procesos interactúan entre sí y pertenecen a una misma
aplicación.
En el caso de procesos independientes en general se debe a que no
interactúan y un proceso no requiere información de otros o bien porque son
procesos que pertenecen a distintos usuarios.
• Proceso - un programa en ejecución; la ejecución del
proceso debe progresar de manera secuencial.
• Un proceso incluye:
– program
counter
– stack
– data section
Estados de los procesos
Nuevo: El proceso es creado.
Ejecución: Se ejecutan instrucciones.
Espera: El proceso está en espera por la ocurrencia de algún evento.
Listo: El proceso está esperando a que le asignen el procesador.
Terminado: El proceso finaliza su ejecución.
Diagrama de estados de los procesos.
Información asociada con cada proceso:
Estado del proceso
Program counter
Registros del CPU
Información de planificación del CPU
Memoria
Información para administración
Información de estatus de E/S
Características:
· Un proceso consta de código, datos y pila.
· Los procesos existen en una jerarquía de árbol (varios Hijos, un
sólo padre).
· El sistema asigna un identificador de proceso (PID) único al
iniciar el proceso.
· El planificador de tareas asigna un tiempo compartido para el
proceso según su prioridad (sólo root puede cambiar prioridades).