Programación concurrente
Click here to load reader
-
Upload
frandy-javier-alvarez-paulino -
Category
Education
-
view
248 -
download
0
Transcript of Programación concurrente
PROGRAMACIÓN CONCURRENTE
LENGUAJE DE PROGRAMACION
Carlos Javier Almanzar
Frandy Javier Álvarez
HISTORIA DE LA PROGRAMACIÓN CONCURRENTE
La programación concurrente tiene sus raíces en los sistemas operativos.
En los años 60’s se introdujeron en las computadoras dispositivos controladores independientes de entrada-salida llamados canales.
La programación de sistemas con capacidades de concurrencia se hacía a bajo nivel, en ensamblador.
HISTORIA DE LA PROGRAMACIÓN CONCURRENTE
Los pioneros en este campo fueron:
Edsger Wybe Dijkstra fue un científico de la computación de los Países Bajos.
Per Brinch Hansen fue un informático danés-estadounidense conocido por la teoría de la programación concurrente.
Charles Antony Richard Hoare también conocido familiarmente como Tony Hoare, es un científico británico en computación.
PROGRAMACION CONCURRENTE
La programación concurrente 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.
MULTITAREA Y MULTIPROGRAMACIÓN
MULTITAREAS
Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un procesador. Con los sistemas operativos DOS esto era incapaz de realizarse.
TIPOS DE MULTITAREA
Multitarea Nula (Usada cuando solo existía un procesador)
Multitarea Cooperativa (Usada por los sistemas operativos Windows antes de la versión 1995.
Multitarea Preferente (Usada por Windows en los años 2000)
Multitarea Real (Usada Actualmente)
MULTIPROGRAMACIÓN
Es la técnica que permite que dos o más programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo.
VENTAJAS DE LA PROGRAMACIÓN CONCURRENTE
Proporciona el modelo más simple y natural de concebir muchas aplicaciones.
Facilita el diseño orientado a objeto de las aplicaciones, ya que los objetos reales son concurrentes.
Hace posible compartir recursos y subsistema complejos. En sistemas monoprocesador permite optimizar el uso de los recursos.
Facilita la programación de tiempo real, ya que se pueden concebir como procesos cuya ejecución se planifican de acuerdo con la urgencia.
Permite reducir los tiempos de ejecución sobre plataformas multiprocesadoras.
Facilita la realización de programas fiables por despliegue dinámico de los procesos en los procesadores.