CLASE1 .pdf



Nombre del archivo original: CLASE1.pdf
Título: PROGRAMACION CONCURRENTE Y PARALELA
Autor: CARMEN

Este documento en formato PDF 1.5 fue generado por Microsoft® PowerPoint® 2010, y fue enviado en caja-pdf.es el 04/07/2016 a las 05:13, desde la dirección IP 201.157.x.x. La página de descarga de documentos ha sido vista 2991 veces.
Tamaño del archivo: 353 KB (29 páginas).
Privacidad: archivo público



Vista previa del documento


PROGRAMACION
CONCURRENTE Y PARALELA

EVOLUCION DE LA
PROGRAMACION CONCURRENTE
 Años 60 - Sistemas operativos
 Años 70 - Avances en programación concurrente.
 Concepto de proceso y ejecución concurrente
 Años 80 - Aparición de Ada. Pocos desarrollos
posteriores, en general relacionados con tiempo real.
 Se enfatiza en otros paradigmas (objetos, declarativa,
etc.)
 Años 90 - Aparición de la Web y la programación con
procesos ligeros. Reactivación de la programación
concurrente

PROGRAMA SECUENCIAL

PROGRAMA CONCURRENTE

PROBLEMA COTIDIANO
 La abuela nos quiere hacer un regalo. Un
sweter confeccionado a mano.
 Datos:





Lana
Agujas
Patrón
Medidas

 Proceso:
 Secuencial
 Paralelo
 Concurrente

Forma Secuencial






Brazo izqdo
Brazo dcho
Espalda
Frente
Unión

Forma Paralelo
 Brazo izqdo
 Brazo dcho

 Espalda
 Frente

 Unión

La abuela pide ayuda a una vecina y se reparten la tarea
Para confeccionar un sweter.

PARALELO:
 VENTAJAS
 Reducción del tiempo necesario
 Reducción del esfuerzo

 INCONVENIENTES






Necesidad
Necesidad
Necesidad
Necesidad
Necesidad

de
de
de
de
de

compartir los trabajos
compartir los recursos
esperar en ocasiones
comunicar
prevenir fallos

CONCURRENTE
Brazo izdo.
Brazo dcho.
Frente

Espalda
 Unión de todo
•Uso de un temporizador
•La abuela distribuye el tiempo dedicado a
cada tarea

CONCURRENTE:
 INCONVENIENTES
 Los mismos que la programación
paralela
 Los mismos que la programación
secuencial

 VENTAJAS
 La implementación puede ser paralela o
secuencial
 NO DEPENDE DE LA ARQUITECTURA
UTILIZADA

DEFINICIONES
 PROCESO: Programa capaz de ejecutarse
en paralelo
 PROCESADOR: Dispositivo hardware capaz
de ejecutar procesos
 UNI-PROCESADOR: Computador que
contiene un único procesador
 MULTI-PROCESADOR: Computador que
contiene varios procesadores

SEMANTICA SECUENCIAL





Los programas secuenciales terminan
Sea Progs el conjunto de programas
Sea Est el conjunto de estados de memoria
La semántica de un programa puede
establecerse
Sem : Progs

( Est

Est )

 La característica fundamental es que el
comportamiento es determinista

SEMANTICA CONCURRENTE
 Los programas concurrentes no terminan
 La semántica de un programa no es una
función de estados
 La característica fundamental es que el
comportamiento es no determinista
 El orden de ejecución de las sentencias no
puede ser prederminado
 Existen interferencias de unas partes del
programa en otras

¡¡ No es válida la arquitectura Von Neumann

MOTIVACION CONCURRENCIA
1. VELOCIDAD DE EJECUCION
 Existen aplicaciones donde la velocidad de
respuesta es crítica
 Tenemos varios procesos y varios (número
menor) procesadores
 No es aplicable la programación paralela. No
coincide número de procesos y procesadores
 En este caso la programación concurrente puede
mejorar el tiempo de respuesta

2. USO DEL PROCESADOR
La programación concurrente puede optimizar el
uso del procesador

3. ALGORITMOS CONCURRENTES
 Existen programas que son
concurrentes por naturaleza

Problemas de la Programación
Concurrente





Sincronización
Exclusión Mutua
Comunicación
Prioridades

Sincronización
 Intercambio de información para
coordinar actividades
Ejemplos: caso del sweter, chat,etc.

Exclusión Mutua
 Exclusión Mutua: Garantía de que un
único proceso accede a un recurso en
un determinado instante.
 Ejemplo: Cruzar una avenida o
boulevard.

Comunicación
 Comunicación: Intercambio de datos
en uno u otro sentido entre procesos

Prioridad
 Prioridad: Un proceso o comunicación
que causa una interrupción en la
ejecución de otro proceso, se dice
que tiene mayor prioridad

Arquitectura
 La arquitectura que suele soportar la
programación concurrente puede ser
 Fuertemente acoplada
 Débilmente acoplada

Arquitectura fuertemente acoplada
 Arquitectura con memoria compartida
 Los procesadores acceden todos a la misma
memoria
 Es poco utilizada en sistemas
multiprocesador
 Es común en sistemas monoprocesador
 Está implementada en la programación con
hilos (java)

Arquitectura débilmente acoplada
 Los procesadores están interconectados,
cada uno tiene su memoria
 La comunicación se realiza mediante
mensajes
 Arquitectura de sistemas distribuidos

Ejecución Concurrente
 Un sistema concurrente se compone de un
conjunto de procesos secuenciales
autónomos que se ejecutan de forma
(aparentemente) paralela
 Cada proceso tiene un flujo de control
independiente
 A veces se habla de procesos con varios
flujos de control (hilos o threads)
 Las instrucciones de los procesos se
ejecutan intercalándose unas con otras
(paralelismo lógico)

 La forma de ejecutar las tareas concurrentes puede
variar, según se ejecuten:
 En un sistema monoprocesador
(multiprogramación)
 En un sistema multiprocesador (fuertemente
acoplado)
 (multiproceso)
 En un sistema distribuido (débilmente acoplado)
(procesamiento distribuido)
 En general es posible que haya que multiplexar el
uso del procesador o procesadores entre los
procesos (paralelismo lógico)

Procesos
 Los sistemas operativos suelen soportar procesos
“pesados” en un sistema monoprocesador
(multiprogramación)


Cada proceso se ejecuta sobre una máquina virtual
distinta

 Algunos sistemas operativos tienen procesos
“ligeros”(threads)





Todos los hilos de un mismo proceso comparten la
misma máquina virtual
Tienen acceso al mismo espacio de memoria
El programador o el lenguaje deben proporcionar
mecanismos para evitar interferencias entre unos y
otros

 La concurrencia puede estar soportada por el lenguaje
o sólo por el sistema operativo

Concurrencia en el Lenguaje
 VENTAJAS
 Programas más
legibles y fáciles de
mantener
 Programas más
portátiles
 Se pueden detectar
errores al compilar
 No hace falta
sistema operativo

 INCONVENIENTES
 Distintos modelos de
concurrencia según
lenguajes
 Puede ser difícil de
realizar
eficientemente
 Se puede mejorar la
portabilidad con SO
normalizados

Lenguajes concurrentes
 Tienen elementos de lenguaje para
 Crear procesos concurrentes
 Sincronizar su ejecución
 Comunicarse entre sí

 Los procesos pueden ser
 independientes,
 cooperar para un fin común,
 competir por el uso de recursos

 Los procesos que cooperan o compiten
necesitan comunicarse y sincronizar sus
actividades


CLASE1.pdf - página 1/29
 
CLASE1.pdf - página 2/29
CLASE1.pdf - página 3/29
CLASE1.pdf - página 4/29
CLASE1.pdf - página 5/29
CLASE1.pdf - página 6/29
 





Descargar el documento (PDF)

CLASE1.pdf (PDF, 353 KB)





Documentos relacionados


Documento PDF clase1
Documento PDF clase 2 lp
Documento PDF docker
Documento PDF clase 1 lp
Documento PDF ope sas tecnicos de mantenimiento 2016
Documento PDF manual python

Palabras claves relacionadas