Вы находитесь на странице: 1из 2

2.

4 CONCURRENCIA Y SECUENCIABILIDAD

La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin


entre procesos, comparacin y competencia por los recursos, sincronizacin de la ejecucin de
varios procesos y asignacin del tiempo de procesador a los procesos y es fundamental para que
existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido
Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al
mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es
importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que
tengan alguna relacin entre ellos
La concurrencia puede presentarse en tres contextos diferentes:
Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la
mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas.
Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la
programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un
conjunto de procesos concurrentes.
Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los
programadores de sistemas y se ha comprobado que algunos sistemas operativos estn
implementados como un conjunto de procesos.
Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes:
Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir repartiendo el
tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para
dar as una apariencia de ejecucin simultnea.
Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten
memoria principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden
intercalar su ejecucin sino tambin superponerla.
Multicomputadora. Es una maquina de memoria distribuida, que est formada por una serie de
computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los
procesos sobre los diferentes procesadores.
En general, la concurrencia ser aparente siempre que el nmero de procesos sea mayor que el de
procesadores disponibles, es decir, cuando haya ms de un proceso por procesador. La
concurrencia ser real cuando haya un proceso por procesador. Aunque puede parecer que la
intercalacin y la superposicin de la ejecucin de procesos presentan formas de ejecucin
distintas, se ver que ambas pueden contemplase como ejemplos de procesos concurrentes.
Existen diversas razones que motivan la ejecucin de procesos concurrentes en un sistema:
Facilita la programacin de aplicaciones al permitir que stas se estructuren como un conjunto de
procesos que cooperan entre s para alcanzar un objetivo comn.
Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede
hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los dems.
Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea. Permite un
mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las
fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros.

As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin existen
sus contras:
Inanicin e interrupcin de procesos
Ocurrencia de bloqueos
Que dos o ms procesos requieran el mismo recurso (No apropiativo)
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:

Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros
procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan
de forma simultnea en un sistema.

Procesos son cooperantes: Son aquellos que estn diseados para trabajar conjuntamente
en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de
interacciones entre ellos y pueden ser de dos tipos:
Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos
fsicos o lgicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para
modificar una base de datos.
Interaccin motivada porque los procesos se comunican y sincronizan entre s para alcanzar un
objetivo comn, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente
para obtener un solo archivo de salida.
Elementos a gestionar y disear a causa de la concurrencia.
Se pueden enumerar los siguientes:
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo
hace por medio de PBCs (Bloque de Control de Procesos)
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre
estos recursos se incluyen:
Tiempo de procesador: Es funcin de la planificacin.
Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual.
Archivos:
Dispositivos de E/S:
3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra
injerencias no intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se
realiza la ejecucin con respecto a otros procesos concurrentes

Вам также может понравиться