Concurrencia de procesos

De Wiki de Sistemas Operativos
Revisión del 17:03 28 mar 2011 de Alexrdp (discusión | contribuciones) (Añadir enlaces)
Saltar a: navegación, buscar

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 elegir uno de estos mecanimos a la hora de realizar su programa, y no el sistema operativo. Se debe tener en cuenta que el uso de un mecanismo inadecuado puede llevar a que el programa no responda de la manera esperada.