domingo, 12 de octubre de 2014

2.4 CONCURRENCIA Y SECUENCIABILIDAD.

Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan sincronizarse para actuar conjuntamente. Se trata, en este caso, de un concepto lógico, ya que sólo hace referencia a las actividades, sin importar el número de procesadores presentes.

     Para que dos actividades, sean concurrentes, es necesario que tengan relación entre sí, como puede ser la cooperación en un trabajo determinado o el uso de información compartida.

La concurrencia puede presentarse en tres contextos diferentes:
Varias aplicaciones: (multiprogramación) para permitir que el cpu sea compartido entre varios trabajos.
Aplicaciones estructuradas: Como ampliación 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 sistemas operativos que están implementados como un conjunto de procesos.
Tipos de procesos concurrentes:
     Proceso independiente: El que se ejecuta sin cooperación de otros. Ejemplo: varias ventanas de una misma aplicación de forma simultánea.
  Procesos cooperantes: Los que están diseñados para trabajar conjuntamente, deben comunicarse e interactuar.
(Aplicaciones en red)
Tipos de interacción:
• Motivada porque los procesos comparten o compiten por el acceso a recursos. Ejemplo: dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
• Motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común. Ejemplo: compilador con varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
Aspectos de un sistema operativo para  gestionar la concurrencia.
1. Debe  seguir la pista de los distintos procesos activos, por medio de PBC’s
2. Debe asignar y quitar recursos a cada proceso activo:
• Tiempo de procesador.
• Memoria: (virtual, swapping)
• Archivos
• E/S:
 3. Debe proteger datos y recursos de cada proceso contra injerencias no intencionadas de otros procesos. 
Beneficios de la Concurrencia:
·                     Trata de evitar los tiempos muertos de la UCP
·                     Comparte y optimiza el uso de recursos
·                     Permite la modularidad en las diferentes etapas del proceso
·                     Acelera los cálculos
·                     Da mayor comodidad
Desventajas de la Concurrencia:
·                     Inanición e interrupción de procesos
·                     Ocurrencia de bloqueos
·                     Que dos o más procesos requieran el mismo recurso (no apropiativo).

No hay comentarios:

Publicar un comentario