Un proceso es un programa en ejecucin. Un proceso simple tiene un hilo de ejecucin, por el momento dejemos esta ltima definicin como un concepto, luego se ver en ms detalle el concepto de hilo. Una vez definido que es un proceso nos podramos preguntar cul es la diferencia entre un programa y un proceso, y bsicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados. Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactan entre s y pertenecen a una misma aplicacin.
Todos los programas cuya ejecucin solicitan los usuarios, se ejecutan en forma de procesos, de ah la importancia para el informtico de conocerlos en detalle. El proceso se puede definir como un programa de gestin por el sistema operativo. Durante su eleccin el proceso va modificando en ejecucin y, de una forma un poco ms precisa, como la unidad de procesamiento los registro del modelo de programacin de la computadora, de acuerdo a las intrusiones de maquina involucradas.
El sistema operativo mantiene por cada proceso una serie de estructuras de informacin que permiten identificar las caractersticas de este, as como los recursos que tiene asignados. En esta ltima categora entran los descriptores de los segmentos de memoria asignados, los descriptores de los archivos abiertos, los descriptores de los puertos de comunicaciones, etc.
En el caso de procesos independientes en general se debe a que no interactan y un proceso no requiere informacin de otros o bien porque son procesos que pertenecen a distintos usuarios. Proceso - un programa en ejecucin; la ejecucin del proceso debe progresar de manera secuencial. Un proceso incluye: program counter stack data section Estados de los procesos Nuevo: El proceso es creado. Ejecucin: Se ejecutan instrucciones. Espera: El proceso est en espera por la ocurrencia de algn evento. Listo: El proceso est esperando a que le asignen el procesador. Terminado: El proceso finaliza su ejecucin. Diagrama de estados de los procesos. Informacin asociada con cada proceso: Estado del proceso Program counter Registros del CPU Informacin de planificacin del CPU Memoria Informacin para administracin Informacin de estatus de E/S Proceso: Programa o comando en ejecucin. Caractersticas: Un proceso consta de cdigo, datos y pila. Los procesos existen en una jerarqua de rbol (varios Hijos, un slo 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 segn su prioridad (slo root puede cambiar prioridades).
Ejecucin en 1 er plano: - Proceso iniciado por el usuario o interactivo. Ejecucin en 2 o plano: - Proceso no interactivo que no necesita ser iniciado por el usuario.
Demonio: Proceso en 2 o plano siempre disponible, que da servicio a varias tareas (debe ser propiedad del usuario root). Proceso zombi: Proceso parado que queda en la tabla de procesos hasta que termine su padre. Este hecho se produce cuando el proceso padre no recoge el cdigo de salida del proceso hijo. Proceso hurfano: Proceso en ejecucin cuyo padre ha finalizado. El nuevo identificador de proceso padre (PPID) coincide con el identificador del proceso init (1).
Una parte muy importante de esta informacin 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 esttica, que tiene un determinado nmero de BCP, todos ellos del mismo tamao.
La informacin que compone un proceso es la siguiente: Contenido de los segmentos de memoria en los que residen el cdigo y los datos del proceso. A esta informacin se le denomina imagen de memoria o core image. Contenido de los registros del modelo de programacin Contenido del BCP.
Concepto de proceso. Un proceso es bsicamente como un programa en ejecucin. Consta del programa ejecutable, los datos y la pila del programa, su contador de programa, apuntador de pila y otros registros, y la otra informacin que se necesita para ejecutar el programa. La manera sencilla de tener una nocin intuitiva de lo que es un proceso consiste en pensar en los sistemas con tiempo compartido. En forma peridica el sistema operativo decide suspender la ejecucin de un proceso y dar inicio a la ejecucin de otro, por ejemplo, porque el primero haya tomado ya ms de su parte del tiempo del CPU, en terrenos del segundo.
Cuando un proceso se suspende temporalmente como ste, debe reiniciarse despus exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la informacin relativa al proceso debe guardarse en forma explcita en algn lugar durante la suspensin.
En muchos sistemas operativos, toda la informacin 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 ms procesos diferentes (conocidos como proceso hijo) y estos procesos a la vez originan procesos hijos, se llega rpidamente a la estructura del rbol de procesos.
Estructura de rbol. Proceso Padre - Hijo. El proceso A cre dos procesos derivados, B y C. El proceso B cre tres derivados, D, E y F.
Se dispone de otras llamadas al sistema para solicitar ms memoria ( o para liberar memoria no utilizada), esperar a que termine un proceso hijo y cubrir su programa con uno diferente. En un sistema de multiprogramacin, el (CPU) tambin cambia de un programa a otro, ejecutando cada uno en decenas o cientos de milisegundos. En tanto que, en rigor, en cualquier instante de tiempo, el CPU est ejecutando slo un programa, en el curso de un segundo puede trabajar en varios programas, con la ilusin de paralelismo.
Proceso: Informalmente se define como la actividad que resulta cuando un proceso ejercita un programa.
P = < C, Co, E, S, A > Algoritmo Datos de salida Conjunto de datos de entrada {E1, E2,... En} Contexto inicial Conjunto de contexto inicial {C0, C1, C2,... Cn}
Un proceso puede tomar diferentes estados, puede estar corriendo, puede estar libre o puede estar detenido. Si consideramos que todo proceso est constituido de una serie finita de actividades elementales una regin crtica de un proceso se define como el conjunto de actividades elementales cuya ejecucin exige el monopolio de recursos compartidos. Formalmente se define como el conjunto de partes de los contextos internos compartidos.
Regiones crticas. Los problemas que deben resolverse en un contexto de procesos concurrentes (como regiones crticas) son los siguientes: - Exclusin mutua. - Sincronizacin. - Dead lock (Abraso mortal o Interbloqueo)