Programacion concurrente

Páginas: 449 (112153 palabras) Publicado: 2 de febrero de 2014
Programación Concurrente - Cap. 1.
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Conceptos básicos

Un programa concurrente especifica dos o más procesos que cooperan para realizar una
tarea. Cada proceso es un programa secuencial que ejecuta una secuencia de sentencias. Los
procesos cooperan por comunicación: se comunican usando variables compartidas o pasaje de
mensajes. Cuando se usanvariables compartidas, un proceso escribe en una variable que es leída por
otra. Cuando se usa pasaje de mensajes, un proceso envía un mensaje que es recibido por el otro.
Los programas concurrentes son inherentemente más complejos que los secuenciales.
En muchos aspectos, son a los programas secuenciales como el ajedrez a las damas: ambos son
interesantes, pero el primero es intelectualmente másintrigante. El libro explora el “juego” de la
programación concurrente, observando sus reglas, piezas de juego y estrategias. Las reglas son
herramientas formales que nos ayudan a entender y desarrollar programas correctos; las piezas son
los mecanismos de los lenguajes para describir computaciones concurrentes; y las estrategias son
conjuntos de paradigmas de programación útiles.
Lasherramientas formales están basadas en razonamiento asercional. El estado de un
programa está caracterizado por un predicado llamado aserción, y los efectos de ejecutar sentencias
están caracterizados por transformadores de predicado. El razonamiento asercional provee la base
para un método sistemático para derivar programas que satisfacen propiedades especificadas.
Se han propuesto muchos mecanismosdiferentes para especificar la ejecución
concurrente, la comunicación y la sincronización. Se describirán los más importantes (incluyendo
semáforos, monitores y pasaje de mensajes) y también nociones de los lenguajes de programación
que emplean diferentes combinaciones. Para cada mecanismo de sincronización se muestra cómo
desarrollar programas correctos y eficientes, se presentan numerososejemplos, y se muestra cómo
implementar el mecanismo.
Finalmente se describen paradigmas identificados para programación concurrente. Estos
incluyen estrategias de solución y técnicas de programación que son aplicables a una gran variedad de
problemas. La mayoría de los programas concurrentes resultan de combinar un pequeño número de
estructuras y pueden verse como instancias de unos pocosproblemas standard. Aprendiendo estas
estructuras y técnicas de solución es fácil resolver problemas adicionales.

Hardware y aplicaciones
La historia de la programación concurrente siguió las mismas etapas que otras áreas
experimentales de la ciencia de la computación. Así como el hardware fue cambiando en respuesta a
los cambios tecnológicos, las aproximaciones ad-hoc iniciales evolucionaronhacia técnicas de
programación generales.
Los sistemas operativos fueron los primeros ejemplos de programas concurrentes y
permanecen entre los más interesantes. Con el advenimiento de los controladores de dispositivos
independientes en los ‘ 60, se volvió natural organizar un SO como un programa concurrente, con
procesos que manejan dispositivos y la ejecución de tareas de usuario. Losprocesos en un sistema
monoprocesador son implementados por multiprogramación, ejecutando un proceso por vez en el
tiempo y usando interleaving.
La tecnología evolucionó para producir una variedad de sistemas multiprocesador. En un
multiprocesador de memoria compartida, múltiples procesadores comparten una memoria común; el
tiempo de acceso a memoria es uniforme (UMA) o no uniforme (NUMA). En unmulticomputador,
varios procesadores llamados nodos se conectan por hardware de alta velocidad. En un sistema en
red, varios nodos mono o multiprocesador comparten una red de comunicaciones (por ej, Ethernet).
También existen combinaciones híbridas como redes de workstations multiprocesador. Los SO para
multiprocesadores son programas concurrentes en los cuales al menos algunos procesos pueden...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • PROGRAMACION CONCURRENTE
  • programación concurrente
  • Programacion concurrentes hilos
  • Programación concurrente servlet
  • Programacion concurrente y paralela
  • Programación concurrente en java
  • Python en programación concurrente
  • Unidad IV Programación concurrente (Multihilo)

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS