33
SIMULACI ´ ON GR ´ AFICA DE EVENTOS PARALELOS EN TIEMPO REAL SINCRONIZADOS CON MENSAJES Dr. Maximino Pe˜ na Guerrero Ing. Jos´ e de Jes´ us Negrete Redondo AC ´ USTICA-ESIME-IPN 1 Noviembre, 2010 1 [presen4.tex] 1

SIMULACION GR AFICA DE EVENTOS PARALELOS EN … · TUBERIAS (pipes). TUBOS NOMINADOS. TUBOS ANONIMOS. 18. COMUNICACION ENTRE PROCESOS: BUZONES. SOCKETS. RPCs (Remote Process Calls)

Embed Size (px)

Citation preview

SIMULACION GRAFICA DE EVENTOS PARALELOSEN TIEMPO REAL SINCRONIZADOS CON MENSAJES

Dr. Maximino Pena GuerreroIng. Jose de Jesus Negrete Redondo

ACUSTICA-ESIME-IPN1

Noviembre, 20101[presen4.tex]

1

OBJETIVO:

• Presentar la simulacion grafica de procesos concurrentes quenos permitan analizar y estudiar su interactividad en tiempo realutilizando paso de mensajes.

• Presentar tambien un caso sencillo de la dinamica de un sis-tema masa-resorte graficando el resultado para cada proceso inde-pendiente: desplazamiento, velocidad, factor de calidad, y calculosmatematicos auxiliares.

2

PROBLEMATICA:

• Una maquina von neumann con un solo procesador y con mu-chos procesos en ejecucion debe compartir sus ciclos de reloj enrebanadas de tiempo para cada proceso.

• Esta tecnica de tiempo compartido da la impresion de que losprocesos se estan ejecutando en forma paralela.

• Con este metodo se tienen que sincronizar los procesos paraevitar el bloqueo del sistema debido a que estos deben concurrir enun solo punto en el tiempo.

• Para resolver este problema se han desarrollado varios metodosde sincronıa: SEMAFOROS y la COMUNICACION ENTRE PRO-CESOS.

3

PROCESOS, HILOS:

• Un sistema computacional uniprocesador debe compartir en eltiempo muchos procesos residentes en la memoria operativa.

• Un programa en ejecucion es un proceso que esta formado pormuchos subprocesos llamados hilos (threads).

• Un hilo es la mınima unidad de ejecucion de codigo binario quetiene su propio contexto tıpicamente almacenado dentro de registrosen RAM.

4

PROCESOS, HILOS:

• Debe haber un proceso o hilo principal (scheduler) que permitaarmonizar a todos los demas hilos.

• El scheduler asigna a cada hilo un periodo de ejecucion deacuerdo con su propia rebanada de tiempo.

• Debido a la velocidad de multiplexacion (cambio de contexto)da la impresion que los hilos corren todos en paralelo.

5

MUCHOS PROCESOS EN PARALELO (HILOS/FPGA):

6

MUCHOS PROCESOS DEDICADOS EN PARALELO:

7

SIMULACION DEL MUNDO REAL:

• Los fenomenos fısicos en el mundo real son eventos que concu-rren en el tiempo de una manera simultanea.

• Las ciencias de la ingenierıa requiere simular eventos fısicos delmundo real para su estudio y analisis (eventos paralelos).

• Necesitamos realizar un modelo de una seccion de la dinamicade fluidos para estudiar la deformacion molecular producida por lapresion ondulatoria de un fluido.

8

SIMULACION DEL MUNDO REAL:

• Esto se logra con la solucion y la simulacion de una ecuaciondiferencial para cada molecula (un hilo) que se representa con unsistema masa-resorte.

• El resultado sera la simulacion computacional de una matriz cuyonumero de elementos (hilos) depende de la cantidad de unidadesmasa-resorte formando una malla tridimensional.

9

MUCHOS PROCESOS DEDICADOS EN PARALELO:

10

SIMULACION DE UNA ORQUESTA DE CARNE Y HUESO:

11

DESARROLLO DE UNA ORQUESTA DIGITAL:

12

SPLINE PARA CLAVE DE SOL:

13

SIMBOLOS MUSICALES CON SPLINES SOLIDOS:

14

SIMBOLOS MUSICALES CON SPLINES SOLIDOS:

15

CLIENTE-SERVIDOR DE NOTAS:

16

COMUNICACION ENTRE PROCESOS:

Dos o mas procesos pueden estar enlazados con varios mecanis-mos de comunicacion, incluso si los procesos se encuentran dispersosgeograficamente. La sincronizacion entre procesos puede ser sincro-na o asıncrona.

• Paso de mensajes. Es un metodo de comunicaciones que seutiliza en el diseno de maquinas paralelas para transmitir y recibirtramas de informacion entre procesos.

17

COMUNICACION ENTRE PROCESOS:

• VARIABLES GLOBALES.

• MEMORIA COMPARTIDA.

• IPC Inter-Process Comunmunication de alto nivel

• TUBERIAS (pipes).

• TUBOS NOMINADOS.

• TUBOS ANONIMOS.

18

COMUNICACION ENTRE PROCESOS:

• BUZONES.

• SOCKETS.

• RPCs (Remote Process Calls)

19

MECANISMOS DE SINCRONIA DE PROCESOS:

SECCION CRITICA: Se utiliza para reforzar la exclucionmutua entre hilos (threads) con un solo proceso. Una seccioncrıtica 2:

• Es un objeto local, no del kernel.

• Es rapido y eficiente.

• No puede esperar a mas de uno.

• No puede determinar si un hilo lo ha abandonado.2Beveridge J., R Winner, Multithreading Applications in Win32 pg.101-102

20

MECANISMOS DE SINCRONIA DE PROCESOS:

MUTEX: Un mutex es un objeto del kernel que refuerza laexclusion mutua entre hilos (threads) incluso si ellos pertenecen adiferentes procesos. Un mutex:

• Es un objeto del kernel.

• Genera error de “abandonado”si su propio hilo ha finalizado eltrabajo.

• Puede invocar llamadas a sistema (call system) wait.

• Se puede nombrar y abrir durante el proceso.

• Solamente puede ser liberado por su propio hilo.

21

MECANISMOS DE SINCRONIA DE PROCESOS:

SEMAFORO: Un semaforo se utiliza para mantener la pistade un recurso limitado. Un semaforo:

• Es un objeto del kernel.

• No tiene propietario.

• Se puede nombrar y abrir durante el proceso.

• Cualquier hilo lo puede liberar.

22

MECANISMOS DE SINCRONIA DE PROCESOS:

EVENT OBJECT: Los objetos evento se utilizan para tras-lapar dispositivos de Entrada/Salida y por objetos disenados a lamediada. Un Event Object:

• Es un objeto del kernel.

• Se encuentra totalmente bajo el control del programa.

• Es adecuado para disenar nuevos objetos de sincronizacion.

• No encola solicitudes de despertar (wake up)

• Se puede nombrar y abrir durante el proceso.

23

MECANISMOS DE SINCRONIA DE PROCESOS:

INTERLOCKED VARIABLE: La invocacion a la llamadaal sistema Interlocked() solamente es un mecanismo de sincroni-zacion si esta se utiliza para un spin-lock (ciclo corto de espera paraejecutarse a la cabeza de otros). Ocacionalmente la utiliza el kernel.Esta variable es util como contador de referencia:

• Permiten operaciones basicas con 4 bytes sin tener que utilizaruna seccion crıtica o mutex.

• Trabajan incluso con sistemas SMP (Simmetric Multi-Processing)

• Un monitor (desarrollado por C.A.R Hoare & Brinch Hansenpara Pascal concurrente) es un objeto utilizado por mas de un hilode una manera segura. Trabaja con base en la exclusion mutua.

24

MODELOS DE SINCRONIA:

• Filosfos Comelones.

• El Barbero Dormilon.

• Productor Consumidor.

25

SINCRONIA: FILOSOFOS COMELONES:

26

SIMULACION MASA-RESORTE:

27

PROCESAMIENTO MATEMATICO AVANZADO:

28

PROBLEMATICA: ¿DE QUIEN ES EL PUNTO A?:

ANALOX.FIG

G1

G2

G3

G5

G4

G6

G7

G8

G9

A

GRABACION

CONVERTIDORANALOGICO

DIGITAL

Punto comun a todas las fuentes.

1011 1000 1100 1100

29

RECONOCIMIENTO DE PATRONES:

30

CONCLUSIONES

• Programar un sistema paralelo utilizando un sistema compu-tacional con un solo procesador se requieren mecanismos que per-mitan sincronizar muchos procesos que concurren en el tiempo enparalelo.

• La simulacion de fenomenos fısicos, por su naturaleza, son even-tos paralelos, que requieren de una gran cantidad de calculo depunto flotante.

• Los sistema digitales estandard tienen limitaciones en cuanto asu representacion de datos numericos.

31

CONCLUSIONES

• Si se utiliza muchos procesadores hardware para realizar simu-lacion, surge otro problema: la burocracia digital.

• Debe haber entonces uno o mas procesadores dedicados unica-mente a administrar los procesadores restantes.

• Esto da como resultado que el sistema se haga lento, contradi-ciendo la filosofıa de los sistemas paralelos.

• Una posible solucion es hacer dispositivos de hardware dedicados(FPGAs, CPLDs) a ciclo de reloj.

• El paso de mensajes permite construir maquinas paralelas utili-zando dispositivos de hardware y software estandard.

32

GRACIAS...

www.max.esimez.ipn.mx

[email protected]

33