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
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