Anda di halaman 1dari 14

UNIDAD 5

MODELOS DE LENGUAJES PARA LA PROGRAMACIN


CONCURRENTE
CARACTERIZACIN DE LOS LENGUAJES
CONCURRENTES

La computacin concurrente es la simultaneidad en la ejecucin de mltiples tareas


interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecucin
creados por un nico programa. Las tareas se pueden ejecutar en una sola unidad
central de proceso (multiprogramacin), en varios procesadores o en una red de
computadores distribuidos.
Para definirla correctamente, debemos diferencias entre programa y proceso.

Programa: Conjunto de sentencias/instrucciones que se ejecutan secuencialmente. Se


asemeja al concepto de clase dentro de la POO. Es por tanto un concepto esttico.

Proceso: Bsicamente, se puede definir como un programa en ejecucin. Lneas de cdigo


en ejecucin de manera dinmica. Se asemeja al concepto de objeto en POO.
Concurrencia
La concurrencia aparece cuando dos o ms procesos son
contemporneos. Un caso particular es el paralelismo
(programacin paralela).
Beneficios

Velocidad de ejecucin. Al subdividir un programa en procesos, stos se pueden


repartir entre procesadores o gestionar en un nico procesador segn importancia.
Solucin a problemas de esta naturaleza. Existen algunos problemas cuya
solucin es ms fcil utilizando esta metodologa.
- Sistemas de control: Captura de datos, anlisis y actuacin (p.ej. sistemas de tiempo
real).
- Tecnologas web: Servidores web que son capaces de atender varias peticiones
concurrentemente, servidores de chat, email, etc.
- Aplicaciones basabas en GUI: El usuario hace varias peticiones a la aplicacin
grfica (p.ej. Navegador web).
- Simulacin: Programas que modelan sistemas fsicos con autonoma.
- Sistemas Gestores de Bases de Datos: Cada usuario un proceso.
Caractersticas de los sistemas concurrentes

Orden de ejecucin: A diferencia de los programas secuenciales el flujo del


programa sigue un orden parcial. Ante una misma entrada no se sabe cul va a
ser el orden seguido.

Indeterminismo: El orden parcial produce consecuentemente un


comportamiento indeterminista. Es decir, repetidas ejecuciones sobre un
mismo conjunto de datos resultan diferentes resultados.
Problemas inherentes a los sistemas concurrentes

Exclusin mutua: Como lo que realmente se ejecuta concurrentemente son las


instrucciones de ensamblador, cuando se comparten variables se excluyen los
valores. Por ejemplo, dos bucles que hacen x=x+1.

Condicin de sincronizacin: La necesidad de coordinar los procesos. Por


ejemplo, un capturado de imgenes con colas de impresin, el juego del pauelo,
etc.
CLASIFICACIN DE LOS LENGUAJES
CONCURRENTES

Algunos de los lenguajes concurrentes son:

ADA
JAVA
OCCAM
ADA

Ada es un lenguaje de programacin orientado a objetos y fuertemente tipado de


forma esttica. Es un lenguaje multipropsito, orientado a objetos y concurrente,
pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++.

Uno de los pocos lenguajes que provee estructuras embebidas para programacin
concurrente y provee herramientas para diseo de software de seguridad crtica y
proyectos grandes que requieran portabilidad y mantenimiento.
OCCAM

Occam es un lenguaje de programacin imperativo y estructurado (al igual que Pascal). Fue
desarrollado para desarrollar software.

Es un lenguaje de procesamiento paralelo diseado por un equipo en INMOS en conjunto


con el diseo del procesador transputer, y basado en CSP. Este lenguaje incorpora soporte
para un grano muy fino, hilos de ejecucin fciles de usar y un amplio soporte de ambientes
multiprocesadores. Este puede ser usado con sistemas de memoria compartida o distribuida,
y es una buena opcin cuando se requiere correccin
Java

Es un lenguaje de programacin de propsito general, concurrente, orientado a objetos y


basado en clases que fue diseado especficamente para tener tan pocas dependencias de
implementacin como fuera posible. Su intencin es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo
(conocido en ingls como WORA, o "write once, run anywhere"), lo que quiere decir que
el cdigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en
otra.
LENGUAJES DE PROGRAMACIN ORIENTADOS A
MENSAJES

Los sistemas de software orientados a los mensajes existen -


ServiceOrientedArchitecture, y por lo tanto, pero generalmente no
corresponden a un paradigma de lenguaje, ya que generalmente estn escritos
en varios idiomas. Lenguajes orientados a los mensajes son raros a
inexistentes Si tuvieras un lenguaje que funcionara de esa manera, no slo
como una metfora, podras tener algo suficientemente basado en
MessageOrientedProgramming para complacer a AlanKay.
Cul es la diferencia entre un envo de mensaje y una llamada de
mtodo?

Un envo de mensajes es dinmico, una llamada de mtodo esttico. Varias


cosas se derivan de eso. Los receptores de mensajes pueden, por ejemplo,
elegir ignorar mensajes, transmitirlos o manejarlos de diferentes maneras. El
mensaje est en efecto, una peticin, no un comando. MOP es una salida de
la programacin estrictamente imperativa.
LENGUAJES DE PROGRAMACIN ORIENTADOS A
OPERACIONES

Anda mungkin juga menyukai