Concurrencia y bloqueos

Páginas: 20 (4932 palabras) Publicado: 17 de noviembre de 2015
Concurrencia y Bloqueos
Es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en una sola unidad central de proceso , en varios procesadores (multiprogramación) o en una red de computadores distribuidos. La programación concurrente está relacionadacon la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina.

Principios Generales De Concurrencia
En un sistema multiprogramado con un único procesador, los procesos se intercalan enel tiempo para dar la apariencia de ejecución simultánea (figura 4.1a).

Aunque no se consigue un proceso paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del procesamiento y en la estructuración de los programas.
En un sistema con varios procesadores, no solo esposible intercalar los procesos, sino también superponerlos (figura 4.1b).

A primera vista, podría parecer que la intercalación y la superposición representan formas de ejecución muy diferentes y que introducen problemas distintos. De hecho, ambas técnicas pueden contemplarse como ejemplos de proceso concurrente y ambas plantean los mismos problemas. En el caso de un sistema monoprocesador, losproblemas creados por la multiprogramación parten del hecho de que la velocidad relativa de ejecución de los procesos no puede predecirse.

Depende de la actividad de otros procesos, de la forma en que el sistema operativo trata las interrupciones y de las políticas de planificación. Así surgen las siguientes dificultades:
1. La compartición de recursos globales está llena de riesgos. Por ejemplo,si dos procesos hacen uso al mismo tiempo de la misma variable global y ambos llevan a cabo tanto lecturas como escrituras sobre la variable, el orden en que se ejecuten las lecturas y escrituras es critico. En el siguiente apartado se ofrece un ejemplo de este problema.
2. Para el sistema operativo resulta difícil asignar los recursos de forma óptima. Por ejemplo, el proceso A puede solicitar eluso de un canal de E/S en particular y suspenderse antes de hacer uso del canal. Si el sistema operativo bloquea el canal e impide su uso por parte de otros procesos, se tiene una cierta ineficiencia.
3. Resulta difícil localizar un error de programación porque los resultados no son normalmente reproducibles.

Un ejemplo sencillo
Considérese el siguiente procedimiento:
Los procesos P1 y P2 estánejecutando, cada uno en un procesador diferente. Ambos invocan al procedimiento echo.
Se producen los siguientes sucesos; los sucesos de la misma línea tienen lugar en paralelo:

El resultado es que el carácter de entrada de P1 se pierde antes de visualizarse y el carácter de entrada de P2 se visualiza tanto por P1 como por P2. De nuevo, se va a aplicar la norma de que solo un proceso puedeestar en echo en cada instante.

Entonces, se tiene la siguiente secuencia:
Los procesos P1 y P2 están ejecutando, cada uno en un procesador diferente. P1 invoca al procedimiento echo.

Mientras P1 está en el procedimiento echo, P2 invoca a echo. Puesto que P1 todavía está ejecutando el procedimiento (tanto si está suspendido como si está ejecutando), P2 se bloquea al entrar al procedimiento. Portanto, P2 se suspende en espera de poder acceder al procedimiento echo.

Más tarde, el proceso P1 termina la ejecución de echo, lo abandona y continúa la ejecución. Inmediatamente después de que P1 salga de echo, P2 se reanuda y comienza a ejecutar echo.

En el caso de un sistema monoprocesador, La razón por la que se presenta el problema es que una interrupción puede detener la ejecución de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • concurrencia
  • Bloqueo
  • bloqueo
  • Bloqueo
  • Concurrencia
  • Concurrente
  • bloqueo
  • Bloqueo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS