lunes, 25 de noviembre de 2013

U2: 2.4 Concurrencia y Secuenciabilidad


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