Concurrencia de procesos
De Wiki de Sistemas Operativos
Revisión del 15:56 28 mar 2011 de Marmaclar (discusión | contribuciones)
Contenido
Formas de interacción entre procesos
Hay dos formas de interacción entre los procesos :
- Relaciones de Concurrencia : los procesos A y B tienen objetivos diferentes y compiten por los recursos para conseguirlos.
- Relaciones de Cooperación : los procesos A y B tienen un mismo objetivo y se ponen de acuerdo a la hora de emplear los recursos existentes para alcanzarlos.
El sistema operativo ofrece mecanismos que los procesos pueden emplear para arbitrar el acceso a los recursos.
Mecanismos de arbitraje
Los mecanismos de arbitraje que ofrece el sistema operativo son :
- Sincronización: el sistema operativo ofrece mecanismos que permiten a los procesos coordinar la ejecución para conseguir su objetivo en armonía (y no de manera indeseada).
- Mensajería: el sistema operativo ofrece mecanismos de comunicación basados en mensaje.
Programación concurrente
La programación concurrente consiste en el conjunto de técnicas que nos permite la elaboración de programas que emplean alguno de los mecanismos de arbitraje, basados en sincronización o mensajería, para resolver situaciones de concurrencia o cooperación.
Tipos de mecanismos de sincronización
- Optimista: se considera que la frecuencia de acceso a un recurso compartido es baja.
- Pesimista: se considera que la frecuencia de acceso a un recurso compartido es alta.
Es el programador el que tiene que tomar una de estos mecanimos a la hora de realizar su programa.