Concepto de Proceso:
• Un proceso es una instancia de ejecución de un programa, caracterizado por su contador de programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y datos, etc.
Estados y transiciones de los procesos:
• En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
• Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
• Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU.
Procesos ligeros: Hilos ó Hebras:
• El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
• Un estado de ejecución (en ejecución, listo, bloqueado).
• Un contexto de procesador, que se salva cuando no esté ejecutándose.
• Una pila de ejecución.
• Algún almacenamiento estático para variables locales.
• Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.
Concurrencia y secuenciabilidad
• Puede verse la concurrencia de procesos como la ejecución simultánea de varios procesos.
Concepto de exclusión mutua.Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
Concepto de sección crítica.Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una o más variables compartidas.
– Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas.
– No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
– Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica.
– Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.
Concurrencia
• Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cuando son procesados almismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.
Semáforo
• Es una estructura diseñada para sincronizar dos o mas procesos, de modo que su ejecución se realice de forma ordenada sin conflictos entre ellos.
Monitor
• Es el conjunto de procedimientos que proporciona el acceso con exclusión mutua a recurso o conjunto de recursos, de modo que los procesos que quieran utilizarlo deberán entrar dentro de ella.
Paso de mensajes
• Manda un mensaje que es recibido por otro proceso que suele esperar dicho mensaje.
Paralelismo
• El paralelismo se basa en la informática, es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en el paralelo.