procesos cooperativos

1
Fredy Oswaldo Pérez Pérez 0909-07-09368 Los procesos concurrentes que se ejecutan en el sistema operativo pueden ser independientes o cooperativos. Un proceso es independiente si no puede afectar ni ser afectado por los demás procesos que se ejecutan en el sistema. Queda claro que cualquier proceso que no comparte datos (temporales o persistentes) con ningún otro proceso es independiente. por otro lado un proceso cooperativo si puede afectar o ser afectado por los demás procesos que se ejecutan en el sistema. Obviamente cualquier proceso que comparte datos con otros procesos es cooperativo. Existen varias razones para permitir la ejecución concurrente Compartir recursos físicos. Compartir recursos lógicos. Acelerar los cálculos. Modularidad. Comodidad. Para ilustrar el concepto de procesos cooperativos, consideremos el problema de productores y consumidores, que es un paradigma común de procesos cooperativos. Un proceso productor produce información que es consumida por un proceso consumidor. Por ejemplo, un programa de impresión produce caracteres que son consumidos por el controlador de la impresora. Un compilador podría producir código de ensamble, que es consumido por un ensamblador. Éste a su vez, podría producir módulos objeto, que son consumidos por el cargador. Para que procesos productores y consumidores puedan ejecutarse de forma concurrente, es preciso contar con un buffer de elementos que el productor pueda llenar y el consumidor pueda vaciar. Un productor puede producir un elemento mientras el consumidor está consumiendo otro. El productor y consumidor deben estar sincronizados para que el consumidor no trate de consumir un elemento que todavía no se ha producido.

Upload: freduyz

Post on 27-Jun-2015

2.480 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROCESOS COOPERATIVOS

Fredy Oswaldo Pérez Pérez0909-07-09368

Los procesos concurrentes que se ejecutan en el sistema operativo pueden ser independientes o cooperativos. Un proceso es independiente si no puede afectar ni ser afectado por los demás procesos que se ejecutan en el sistema. Queda claro que cualquier proceso que no comparte datos (temporales o persistentes) con ningún otro proceso es independiente. por otro lado un proceso cooperativo si puede afectar o ser afectado por los demás procesos que se ejecutan en el sistema. Obviamente cualquier proceso que comparte datos con otros procesos es cooperativo.

Existen varias razones para permitir la ejecución concurrente

         Compartir recursos físicos.

         Compartir recursos lógicos.

         Acelerar los cálculos.

         Modularidad.

         Comodidad.

Para ilustrar el concepto de procesos cooperativos, consideremos el problema de productores y consumidores, que es un paradigma común de procesos cooperativos. Un proceso productor produce información que es consumida por un proceso consumidor. Por ejemplo, un programa de impresión produce caracteres que son consumidos por el controlador de la impresora. Un compilador podría producir código de ensamble, que es consumido por un ensamblador. Éste a su vez, podría producir módulos objeto, que son consumidos por el cargador.Para que procesos productores y consumidores puedan ejecutarse de forma concurrente, es preciso contar con un buffer de elementos que el productor pueda llenar y el consumidor pueda vaciar. Un productor puede producir un elemento mientras el consumidor está consumiendo otro. El productor y consumidor deben estar sincronizados para que el consumidor no trate de consumir un elemento que todavía no se ha producido.