Diferencia entre revisiones de «Concurrencia de procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(revisión)
Línea 1: Línea 1:
=Formas de interacción entre procesos=
+
La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos pueden coincidir en el acceso a un recurso compartido. Para evitar dicha coincidencia, se tienen que emplear mecanismos de arbitraje que permitan coordinar la ejecución de los procesos de acuerdo con las premisas.
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.
+
= Formas de interacción entre procesos =
  
El sistema operativo ofrece mecanismos que los procesos pueden emplear para arbitrar el acceso a los recursos.
+
Hay dos formas básicas de interacción entre los procesos:
  
=Mecanismos de arbitraje=
+
* '''Relaciones de competencia''': Dados dos procesos A y B, ambos procesos tienen objetivos diferentes y compiten por los recursos para conseguirlos.
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=
+
* '''Relaciones de cooperación''': Dados dos procesos A y B, ambos con un mismo objetivo, ''se ponen de acuerdo'' a la hora de emplear los recursos existentes para alcanzarlos.
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=
+
El sistema operativo ofrece mecanismos que los procesos, sea de la naturaleza que sean, puedan coordinar su ejecución, así como el acceso a los recursos.
*[[Mecanismos de sincronización#Optimista|Optimista]]: se considera que la frecuencia de acceso a un recurso compartido es ''baja''.
 
*[[Mecanismos de sincronización#Pesimista|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.
+
= Mecanismos de arbitraje =
 +
 
 +
Los mecanismos de arbitraje que ofrece el sistema operativo son básicamente dos:
 +
 
 +
* '''Sincronización''': el sistema operativo ofrece mecanismos que permiten a los procesos coordinar su ejecución para conseguir el objetivo sin que sucedan situaciones no deseadas, como por ejemplo que dos o más procesos coincidan simultáneamente en el acceso a un cierto recurso que no se puede compartir.
 +
 
 +
* '''Mensajería''': el sistema operativo ofrece mecanismos de comunicación basados en mensajes. El intercambio de mensajes entre procesos permite coordinarlo.
 +
 
 +
= Programación concurrente =
 +
 
 +
La programación concurrente se trata del conjunto de técnicas que nos permiten elaborar programas que resuelven situaciones de concurrencia. En programación concurrente, el programador emplea alguno de los mecanismos de arbitraje existentes, basados en sincronización o mensajería, para resolver el problema de concurrencia.
 +
 
 +
= Tipos de mecanismos de sincronización =
 +
 
 +
Los mecanismos de sincronización los podemos catalogar en dos categorías:
 +
 
 +
*[[Mecanismos de sincronización#Optimista|Optimistas]]: Este mecanismo considera que la frecuencia de acceso a un cierto recurso compartido es ''baja''.
 +
*[[Mecanismos de sincronización#Pesimista|Pesimistas]]: Este mecanismo permite coordinar la ejecución de dos o más procesos que acceden al recurso compartida con una frecuencia ''alta''.
 +
 
 +
Se debe tener en cuenta que si el programador selecciona un mecanismo inadecuado, es decir, que seleccione un mecanismo de sincronización optimista para una situación que requiere el uso de una aproximación pesimista, no se obtendría el efecto deseado.

Revisión del 08:45 30 mar 2011

La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos pueden coincidir en el acceso a un recurso compartido. Para evitar dicha coincidencia, se tienen que emplear mecanismos de arbitraje que permitan coordinar la ejecución de los procesos de acuerdo con las premisas.

Formas de interacción entre procesos

Hay dos formas básicas de interacción entre los procesos:

  • Relaciones de competencia: Dados dos procesos A y B, ambos procesos tienen objetivos diferentes y compiten por los recursos para conseguirlos.
  • Relaciones de cooperación: Dados dos procesos A y B, ambos con un mismo objetivo, se ponen de acuerdo a la hora de emplear los recursos existentes para alcanzarlos.

El sistema operativo ofrece mecanismos que los procesos, sea de la naturaleza que sean, puedan coordinar su ejecución, así como el acceso a los recursos.

Mecanismos de arbitraje

Los mecanismos de arbitraje que ofrece el sistema operativo son básicamente dos:

  • Sincronización: el sistema operativo ofrece mecanismos que permiten a los procesos coordinar su ejecución para conseguir el objetivo sin que sucedan situaciones no deseadas, como por ejemplo que dos o más procesos coincidan simultáneamente en el acceso a un cierto recurso que no se puede compartir.
  • Mensajería: el sistema operativo ofrece mecanismos de comunicación basados en mensajes. El intercambio de mensajes entre procesos permite coordinarlo.

Programación concurrente

La programación concurrente se trata del conjunto de técnicas que nos permiten elaborar programas que resuelven situaciones de concurrencia. En programación concurrente, el programador emplea alguno de los mecanismos de arbitraje existentes, basados en sincronización o mensajería, para resolver el problema de concurrencia.

Tipos de mecanismos de sincronización

Los mecanismos de sincronización los podemos catalogar en dos categorías:

  • Optimistas: Este mecanismo considera que la frecuencia de acceso a un cierto recurso compartido es baja.
  • Pesimistas: Este mecanismo permite coordinar la ejecución de dos o más procesos que acceden al recurso compartida con una frecuencia alta.

Se debe tener en cuenta que si el programador selecciona un mecanismo inadecuado, es decir, que seleccione un mecanismo de sincronización optimista para una situación que requiere el uso de una aproximación pesimista, no se obtendría el efecto deseado.