2.4 CONCURRENCIA Y SECUENCIABILIDAD
La concurrencia comprende un gran número de cuestiones de diseño, incluyendo
la comunicación entre procesos, comparación y competencia por los recursos,
sincronización de la ejecución de varios procesos y asignación del tiempo de
procesador a los procesos y es fundamental para que existan diseños como
Multiprogramación, Multiproceso y Proceso distribuido.
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos La concurrencia puede presentarse en tres contextos diferentes:
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos La concurrencia puede presentarse en tres contextos diferentes:
• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de
procesador de la máquina fuese compartido dinámicamente entre varios trabajos o
aplicaciones activas.
• Aplicaciones estructuradas: Como ampliación de los principios del diseño
modular y la programación estructurada, algunas aplicaciones pueden
implementarse eficazmente como un conjunto de procesos concurrentes.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son
aplicables a los programadores de sistemas y se ha comprobado que algunos
sistemas operativos están implementados como un conjunto de procesos.
Existen tres modelos de computadora en los que se pueden ejecutar procesos
concurrentes:
• Multiprogramación con un único procesador. El sistema operativo se encarga de
ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la
ejecución de los mismos para dar así una apariencia de ejecución simultánea.
• Multiprocesador. Es una maquina formada por un conjunto de procesadores que
comparten memoria principal. En este tipo de arquitecturas, los procesos
concurrentes no sólo pueden intercalar su ejecución sino también superponerla.
•
Multicomputadora. Es una máquina de memoria distribuida, que está formada por
una serie de computadoras. En este tipo de arquitecturas también es posible la
ejecución simultánea de los procesos sobre los diferentes procesadores.
En general, la concurrencia será aparente siempre que el número de procesos sea
mayor que el de procesadores disponibles, es decir, cuando haya más de un
proceso por procesador. La concurrencia será real cuando haya un proceso por
procesador. Aunque puede parecer que la intercalación y la superposición de la
ejecución de procesos presentan formas de ejecución distintas, se verá que
ambas pueden contemplase como ejemplos de procesos concurrentes
Existen diversas razones que motivan la ejecución de procesos concurrentes en
un sistema:
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos:
- Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
- Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
BIBLIOGRAFIA:
http://administraciondeprocesos2.blogspot.mx/2011/09/24-concurrencia-secuenciabilidad.htm

Comentarios
Publicar un comentario