La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, 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 dos o más y llegan al mismo tiempo a ejecutarse.
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 computadora en los que puede haber concurrencia:
• Multiprogramación con un CPU. El sistema operativo se encarga de repartir el CPU entre los procesos, intercalando su ejecución para dar una apariencia de ejecución simultánea.
• Multiprocesador. Máquina formada por más de un CPU que comparten memoria principal. Los procesos no sólo intercalan su ejecución sino también la superponer.
Tipos de procesos concurrentes:
Proceso independiente: El que se ejecuta sin cooperación de otros.
Procesos cooperantes: Los que están diseñados para trabajar conjuntamente, deben comunicarse e interactuar.
Tipos de interacción:
• Motivada porque los procesos comparten o compiten por el acceso a recursos.
• Motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común.
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.
No hay comentarios:
Publicar un comentario