simulacion gr afica de eventos paralelos en … · tuberias (pipes). tubos nominados. tubos...
TRANSCRIPT
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
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
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
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
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
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