Source: https://www.powershow.com/view4/71378b-MTJhM/Temas_fundamentales_del_Curso_powerpoint_ppt_presentation
Timestamp: 2020-02-28 18:04:37+00:00

Document:
PPT – Temas fundamentales del Curso PowerPoint presentation | free to download - id: 71378b-MTJhM
Temas fundamentales del Curso - PowerPoint PPT Presentation
Temas fundamentales del Curso Conceptos b sicos. Concurrencia y arquitecturas de procesamiento. Multithreading, Procesamiento Distribuido, Procesamiento Paralelo. – PowerPoint PPT presentation
Provided by: Sergi163
Learn more at: http://weblidi.info.unlp.edu.ar
Tags: curso | del | fundamentales | fundamentos | redes | temas
Title: Temas fundamentales del Curso
Conceptos básicos. Concurrencia y arquitecturas
de procesamiento. Multithreading, Procesamiento
Distribuido, Procesamiento Paralelo.
Concurrencia por memoria compartida. Procesos y
sincronización. Locks y Barreras. Semáforos.
Monitores. Resolución de problemas concurrentes
con sincronización por memoria compartida.
Concurrencia por pasaje de mensajes(MP). Mensajes
asincrónicos. Mensajes sincrónicos. Remote
Procedure Call (RPC). Rendezvous. Paradigmas de
Introducción a la programación paralela.
Lenguajes, compiladores, bibliotecas y
Programación Concurrente 2004 - Clase 1
Metodología del Curso 2004
Teoría. Material para leer (bibliografía,
InterNet, etc). Posibilidad de promoción de la
Teoría. Preguntas teóricas en las clases. Pruebas
teóricas para la promoción.
Práctica. Explicaciones y atención de
consultas. Un examen parcial. Es necesario
aprobarlo para que se corrijan los exámenes
teóricos de la promoción.
Exposición final para los que tengan la
promoción. Coloquio sobre un tema preparado por
Plantear los fundamentos de la programación
concurrente, estudiando su sintaxis y semántica,
así como herramientas y lenguajes para la
resolución de programas concurrentes.
Analizar el concepto de sistemas concurrentes que
integran la arquitectura de hardware, el sistema
operativo y los algoritmos que permiten la
resolución de problemas concurrentes.
Estudiar los conceptos fundamentales de
comunicación y sincronización entre procesos, por
memoria compartida y por mensajes.
Vincular la concurrencia en software con los
conceptos de procesamiento distribuido y
paralelo, para tener los conceptos de soluciones
multiprocesador con algoritmos concurrentes.
El escenario de la Concurrencia
Múltiples automóviles tratando de ir desde el
punto A al punto B. Una ruta, un carril ?
secuencialidad, colisiones. Una ruta, múltiples
carriles ? paralelismo, interacciones
(?) Múltiples rutas? procesamiento distribuido,
El ejemplo tiene la esencia de la
concurrencia Los automóviles son tareas que
deben ejecutarse. Los carriles y las rutas
alternativas son los múltiples procesadores. Siemp
re los automóviles deberán sincronizarse (por
ejemplo por las luces del tráfico) para no
colisionar. La noción de paralelo y distribuido.
Un thread de control ? programación secuencial,
Múltiples threads de control? procesos?
Los procesos se comunican y sincronizan, en base
Exclusión mútua en el acceso a secciones críticas
Espera por condición.
La historia de la concurrencia? En los 60s ?
Controladores de dispositivos independientes(canal
es). Multiprogramación. En los 70s?
Formalización de la concurrencia en los
lenguajes. En los 80s? Redes, procesamiento
distribuido. En los 90s ? MPP , InterNet, CS,
Web computing... Hoy? Cluster computing, Grid
computing, Procesamiento masivo de datos
distribuidos, Real Time Distributed systems...
Algunos conceptos del Hardware.
Procesadores y niveles de memoria. Memoria
primaria. Memoria Caché. Niveles de memoria Caché.
Multiprocesadores de memoria compartida. Esquemas
UMA (Uniform memory access) con Bus o Swith.
(arquitecturas SMP- Symmetric multiprocessors) Esq
uemas NUMA para mayor número de procesadores
Multiprocesadores con memoria distribuida. Grado
de acoplamiento de los procesadores. Memoria
compartida distribuida.
Concurrencia Clases de Aplicaciones
El primer tipo de aplicaciones se corresponde
cuando ejecutamos N procesos independientes sobre
M procesadores, con N gt M. Un sistema de software
de multithreading maneja simultáneamente tareas
independientes, asignando (por ejemplo por
tiempos) los procesadores de que dispone.
Sistemas de ventanas en PCs o WS.
Time sharing en sistemas operativos
Sistemas de tiempo real en plantas industriales.
El segundo tipo de aplicaciones es el cómputo
distribuido una red de comunicaciones vincula
procesadores diferentes sobre los que se ejecutan
procesos que se comunican esencialmente por
mensajes. Cada componente del sistema distribuido
puede hacer a su vez multithreading.
Servidores de archivos (recursos) en una red.
Sistemas de Bases de datos distribuidas (bancos,
reservas de vuelos).
Servidores WEB distribuidos.
Arquitecturas cliente-servidor.
Sistemas tolerantes a fallas.
El procesamiento paralelo es el tercer tipo de
aplicaciones. Se trata de resolver un dado
problema en el menor tiempo posible, utilizando
una arquitectura multiprocesador en la que se
pueda distribuir la tarea global en tareas
(independientes? interdependientes?) que puedan
ejecutarse en diferentes procesadores. Paralelismo
de datos y paralelismo de procesos.
Cálculo científico. Modelos de sistemas
(meteorología, movimiento planetario).
Gráficos, procesamiento de imágenes, realidad
virtual, procesamiento de video.
Problemas combinatorios y de optimización lineal
y no lineal. Modelos econométricos.
Paradigmas de resolución de programas
Si bien el número de aplicaciones es muy grande,
en general los patrones de resolución
concurrente son pocos 1-Paralelismo iterativo,
2-paralelismo recursivo, 3-productores y
consumidores, 4-clientes y servidores, 5-pares
En el paralelismo iterativo un programa tiene un
conjunto de procesos (posiblemente idénticos)
cada uno de los cuáles tiene uno o más loops. Es
decir cada proceso es un programa iterativo. La
idea es que si estos procesos cooperan para
resolver un único problema (ejemplo un sistema de
ecuaciones) pueden trabajar independientemente y
sincronizar por memoria compartida o envío de
En el paralelismo recursivo el problema general
(programa) puede descomponerse en procesos
recursivos que trabajan sobre partes del conjunto
total de datos. Ejemplos clásicos son por ejemplo
el sorting by merging o el cálculo de raíces en
Los esquema productor-consumidor muestran
procesos que se comunican. Es habitual que estos
procesos se organicen en pipes a través de los
cuáles fluye la información. Cada proceso en el
pipe es un filtro que consume la salida de su
proceso predecesor y produce una salida para el
proceso siguiente.
Cliente-servidor es el esquema dominante en las
aplicaciones de procesamiento distribuido. Los
servidores son procesos que esperan pedidos de
servicios de múltiples clientes. Naturalmente
unos y otros pueden ejecutarse en procesadores
diferentes. Los mecanismos de invocación son
variados (rendezvous y RPC por ejemplo). El
soporte distribuido puede ser muy simple (LAN) o
extendido a toda la WEB.
En los esquemas de pares que interactúan los
procesos (que forman parte de un programa
distribuido) resuelven partes del problema
(normalmente mediante código idéntico) e
intercambian mensajes para avanzar en la tarea.
El esquema permite mayor grado de asincronismo
que C-S.
Procesamiento Secuencial y Concurrente.
Analizar la resolución secuencial y
mono-procesador (UNA máquina) de la fabricación
de un objeto compuesto por N partes o módulos.
La solución secuencial nos fuerza a establecer un
estricto orden temporal. Al disponer de sólo una
máquina el ensamblado final del objeto sólo se
podrá realizar luego de N pasos de procesamiento
Ahora supongamos que tenemos N máquinas, una por
componente o módulo a fabricar para ensamblar el
objeto. Si no hubiera dependencia de la materia
prima, cada una de las N máquinas puede trabajar
al mismo tiempogtMENOR tiempo para completar el
procesogtParalelismo del hardware.
Dificultades Distribución de la carga de
trabajo, Necesidad de compartir recursos,
Necesidad de esperarse en puntos clave, Necesidad
de comunicarse, Dificultad con las fallas
aisladas, Asignación de una de las N máquinas
para efectuar el ensamblado final (Cual??).
Un concepto importante que surge de este ejemplo
es el de Speed-Up.
Hemos visto la solución secuencial directa y la
solución paralela (multiplicando el hardware) en
el problema de la fabricación de un objeto
(sistema) de múltiples componentes (módulos).
Ahora supongamos otro enfoque una sóla máquina
le dedica una parte del tiempo a cada componente
del objeto finalgt Concurrencia sin paralelismo
de hardwaregt Menor speed-up.
de comunicarse, Dificultad con las fallas de
software aisladas, Necesidad de recuperar el
estado de cada proceso al retomarlo.
La concurrencia es un concepto de software no
restringido a una arquitectura particular de
hardware ni a un número determinado de
Un programa concurrente especifica dos o más
programas secuenciales que pueden ejecutarse
concurrentemente en el tiempo como tareas o
Un proceso o tarea es un elemento concurrente
abstracto que puede ejecutarse simultáneamente
con otros procesos o tareas, si el hardware lo
permite. (recordar los TASKs de ADA).
Un programa concurrente puede tener N procesos
habilitados para ejecutarse concurrentemente y un
sistema concurrente puede disponer de M
procesadores cada uno de los cuales puede
ejecutar uno o más procesos.
Objetivos de los sistemas concurrentes
Ajustar el modelo de arquitectura de hardware y
software al problema del mundo real a resolver.
Incrementar la perfomance, mejorando los tiempos
de respuesta de los sistemas de procesamiento de
datos, a través de un enfoque diferente de la
arquitectura física y lógica de las soluciones.
Algunas ventajas que merecen comentarse son la
velocidad de ejecución que se puede alcanzar, la
mejor utilización de la CPU de cada procesador, y
la explotación de la concurrencia inherente a la
mayoría de los problemas reales.
Areas de estudio en Programación Concurrente
ELECCION DE LA GRANULARIDAD Significa optimizar
(para una dada aplicación) la relación entre el
número de procesadores y el tamaño de la memoria
MANEJO DE LOS RECURSOS Asignación de recursos
compartidos, métodos de acceso a los recursos,
bloqueo y liberación de recursos, seguridad y
consistencia de los recursos.
SINCRONIZACIÓN Se debe asegurar el orden
correcto (incluyendo el tiempo) de las acciones
que los procesos ejecutan. Este orden es dinámico
e interdependiente.El objetivo de la
sincronización es restringir las historiaso
threads de un programa concurrente sólo a las
Sincronización en Programación Concurrente
Sincronización por exclusión mútua Significa
asegurar que sólo un proceso tenga acceso a un
recurso compartido en un instante de tiempo. Si
el programa tiene secciones críticas que pueden
compartir más de un proceso, la exclusión mútua
evita que dos o más procesos puedan encontrarse
en la misma sección crítica al mismo tiempo.
Sincronización por condición Debe permitir
bloquear la ejecución de un proceso hasta que se
cumpla una condición dada.
Ejemplos de los dos mecanismos de sincronización
en un problema de utilización de un área de
memoria compartida (buffer limitado con
productores y consumidores).
Comunicación y Prioridad en Programación
La comunicación entre procesos concurrentes
indica el modo en que se organiza y trasmiten
datos entre tareas concurrentes. Esta
organización requiere especificar protocolos para
controlar el progreso y corrección de la
comunicación. Los protocolos deben contemplar la
Un proceso que tiene mayor prioridad puede causar
la suspensión (pre-emption) de otro proceso
concurrente. Análogamente puede tomar un recurso
compartido, obligando a retirarse a otro proceso
que lo tenga en un instante dado.
Conceptos relacionados con la Programación
Dos o más procesos pueden entrar en deadlock, si
por un error en la programación concurrente ambos
se quedan esperando que el otro libere un recurso
compartido.La ausencia de deadlock es una
propiedad necesaria en los procesos concurrentes.
Una propiedad deseable en los sistemas
concurrentes es el equilibrio en el acceso a los
recursos compartidos por todos los procesos
Dos situaciones NO deseadas en los programas
concurrentes son la inanición de un proceso (no
logra acceder a los recursos compartidos) y el
overloading de un proceso (la carga asignada
excede su capacidad de procesamiento).
Programación Concurrente 2004 -
Desventajas de la Programación Concurrente
En Programación Concurrente los procesos no son
completamente independientes y comparten
recursos. La necesidad de utilizar mecanismos de
exclusión mútua y sincronización agrega
complejidad a los programas gt menor
Los procesos iniciados dentro de un programa
concurrente pueden NO estar vivos. Esta pérdida
de la propiedad de liveness puede indicar
deadlocks o una mala distribución de recursos.
Hay un no determinismo implícito en el
interleaving de los procesos concurrentes. Esto
significa que dos ejecuciones del mismo programa
no necesariamente son idénticas gt dificultad
para la interpretación y debug.
La comunicación y sincronización produce un
overhead de tiempo, inútil para el procesamiento
? Perder perfomance
Problemas asociados con la Programación
La mayor complejidad en la especificación de los
procesos concurrentes significa que los lenguajes
de programación tienen requerimientos
adicionales. gt mayor complejidad en los
compiladores y sistemas operativos asociados.
Aumenta el tiempo de desarrollo y puesta a punto
respecto de los programas secuenciales. También
puede aumentar el costo de los errores gt mayor
costo de los ambientes y herramientas de
Ingeniería de Software de sistemas concurrentes.
La paralelización de algoritmos secuenciales NO
es un proceso directo, que resulte fácil de
Para obtener una real mejora de perfomance, se
requiere adaptar el software concurrente al
hardware paralelo.
Mecanismos de comunicación y sincronización entre
Memoria compartida Los procesos intercambian
mensajes sobre la memoria compartida o actúan
coordinadamente sobre datos residentes en ella.
Lógicamente los procesos no pueden operar
simultáneamente sobre la memoria compartida, lo
que obligará a BLOQUEAR y LIBERAR el acceso a la
memoria. La solución más elemental será una
variable de control tipo semáforo que habilite
o no el acceso de un proceso a la memoria
Pasaje de Mensajes Es necesario establecer un
canal (lógico o físico) para trasmitir
información entre procesos. También el lenguaje
debe proveer un protocolo adecuado. Para que la
comunicación sea efectiva los procesos deben
saber cuando tienen mensajes para leer y cuando
deben trasmitir mensajes.
Independientemente del mecanismo de comunicación
/ sincronización entre los procesos, los
lenguajes de programación concurrente deberán
proveer primitivas adecuadas para la
especificación e implementación de las mismas.
De un lenguaje de programación concurrente se
Indicar las tareas o procesos que pueden
ejecutarse concurrentemente.
Mecanismos de exclusión mútua.
Mecanismos de comunicación entre los procesos.
Recordar el ejemplo de ADA.
La Concurrencia es un concepto de software. La
Programación Paralela se asocia con la ejecución
concurrente en múltiples procesadores que pueden
tener memoria compartida. La Programación
Distribuída es un caso de concurrencia con
múltiples procesadores y sin memoria compartida.
En Programación Concurrente la organización de
procesos y procesadores constituyen la
arquitectura del sistema concurrente.
Especificar la concurrencia es esencialmente
especificar los procesos concurrentes, su
Paralelismo iterativo multiplicación de
La solución secuencial double an,n, bn,n,
cn,n for i 0 to n-1 for
j 0 to n-1 compute inner
product of ai, and b,j ci,j
0.0 for k 0 to n-1
ci,j ci,j ai,kbk,j
El loop interno (índice k) calcula el producto
interior de la fila i de la matriz a por la
columna j de la matriz b y obtiene
ci,j. Acciones paralelas posibles...
Multiplicación de matrices. Paralelismo por
co i 0 to n-1 Calcula las filas en
paralelo for j 0 to n-1 ci,j
0.0 for k 0 to n-1 ci,j ci,j
ai,kbk,j
co j 0 to n-1 Calcula las columnas en
paralelo for i 0 to n-1 ci,j
Multiplicación de matrices. Ahora con n2
co i 0 to n-1, j 0 to n-1 TODAS las
filas y columnas ci,j 0.0 for k
0 to n-1 ci,j ci,j
co i 0 to n-1 FILAS en paralelo co
j 0 to n-1 COLUMNAS en paralelo
ci,j 0.0 for k 0 to n-1 ci,j
ci,j ai,kbk,j
Multiplicación de matrices. P procesadores con
N/P gt 1.
Un procesador WORKER se encargará de un
subconjunto de filas o columnas de la matriz
resultado. El tamaño del strip óptimo es un
problema muy interesante para balancear costo de
procesamiento con costo de comunicaciones.
process workerw 1 to P strips en
paralelo int first (w-1) n/P Primer fila
del strip int last first n/P - 1 Ultima
fila del strip for i first to last
for j 0 to n-1 ci,j
Aspectos de la Programación Secuencial
Toda la Programación Secuencial se puede expresar
con 3 clases de instrucciones básicas
ASIGNACIÓN, ALTERNATIVA (decisión) e ITERACION
(repetición con condición).
? asignación simple x e,
? sentencia compuesta asignación x x 1 y
y 1 z xy
? swap v1 v2
? skip Termina inmediatamente y no tiene efecto
sobre ninguna variable de programa.
? Sentencias de alternativa IF B ? S
B expresión booleana (condición), S
una instrucción simple o compuesta B guarda a S
pues S no se ejecuta si B no es verdadera. Puede
existir una condición ELSE para B.
En muchos casos pueden existir alternativas
múltiples (CASE) Las guardas son evaluadas en
algún orden arbitrario. Elección no
determinística. Si ninguna B es verdadera, el IF
? Sentencias de alternativa iterativa múltiple
Las sentencias guardadas son evaluadas y
ejecutadas hasta que todas las guardas sean
falsas. (relacionar con el SELECT ACCEPT de
ADA). La elección es no determinística si más de
una guarda es verdadera.
La repetición e iteración tienen una forma
general que se puede expresar con una instrucción
del tipo FOR-ALL FA cuantificadores ? Secuencia
de Instrucciones AF Cada cuantificador
especifica un rango de valores para una variable
de iteración (con un rango y una condición Such
That) variable expr_inicial to expr_final st B
El cuerpo del for-all se ejecuta una vez por cada
valor de la variable de iteración.
Si hay cláusula such-that, la variable de
iteración toma sólo los valores para los que B es
Si hay más de un cuantificador el cuerpo del fa
se ejecuta para cada combinación de valores.
Programa concurrente ? dos o más procesos
Múltiples threads de control (en el mismo t ?),
Los procesos interactúan comunicándose ?
Problema ? interferencia un proceso toma una
acción que invalida las suposiciones hechas por
otro proceso. co S1 // ..... // Sn oc
ejecuta las Si concurrentemente La ejecución del
co termina cuando todas las Si teminaron
Acciones atómicas y sincronización
Ejecución de un programa concurrente ?
interleaving de las acciones atómicas ejecutadas
por procesos individuales Interacción ? no todos
los interleavings son aceptables. La
sincronización debe prevenir los interleavings
Sincronizar gt Combinar acciones atómicas de
grano fino (fine-grained) en acciones
(compuestas) de grano grueso (coarse grained) que
den la exclusión mutua.
Sincronizargt Demorar un proceso hasta que el
estado de programa satisfaga algún predicado (por
Acciones atómicas y sincronización. Atomicidad de
Acción atómica ? hace una transformación de
estado indivisible Los estados intermedios en la
implementación de la acción no deben ser visibles
para los otros procesos ? Se debe implementar
Analicemos la atomicidad de la operación de
asignación... ab
La lectura y escritura de las variables x,y,z son
atómicas. y 1 x 0 z2 co x y z // y
x y // z 4 oc ? Analicemos los posibles
resultados si tenemos tres procesadores
ejecutando los procesos concurrentes (no
necesariamente de la misma velocidad)
Cuáles serían los posibles threads del
programa concurrente especificado??
Qué sucedería si tenemos un cambio en el tercer
proceso y 1 x 0 z2 co x y z // y
x y // z z - 1 oc
Se podría probar corrección??
En lo que sigue, supondremos máquinas con las
siguientes características Los valores de los
tipos básicos se almacenan en elementos de
memoria leídos y escritos como acciones atómicas
Los valores se cargan en registros, se opera
sobre ellos, y luego se almacenan los resultados
Cada proceso tiene su propio conjunto de
Todo resultado intermedio de evaluar una
expresión se almacena en registros o en memoria
privada del proceso
? Si una expresión e en un proceso no referencia
una variable alterada por otro proceso, la
evaluación será atómica, aunque requiera ejecutar
varias acciones atómicas de grano fino.
? Si una asignación xe en un proceso no
referencia ninguna variable alterada por otro
proceso, la ejecución de la asignación será
Pero... normalmente los programas concurrentes no
son disjuntos
? De algún modo habrá que proteger la variable
compartida o especificar un orden de precedencia
en las posibles operaciones concurrentes.
Especificación de la sincronización.
En general, necesitamos ejecutar secuencias de
sentencias como una única acción atómica
?Mecanismo de sincronización para construir una
acción atómica de grano grueso (coarse grained)
como secuencia de acciones atómicas fine grained
que aparecen como indivisibles.
En lo que sigue ?e? indica que la expresión e
debe ser evaluada atómicamente
await se debe implementar en su forma más general
(exclusión mutua y sincronización por condición)
Sólo exclusión mutua ? ?S? Ejemplo
? x x 1 y y 1 ?
El estado interno en el cual x e y son
incrementadas resulta invisible a los otros
procesos que referencian x o y.
Sincronización por condición ? ? await B
? Ejemplo ? await count gt 0 ?
?await B? puede ser implementado como busy
waiting o spinning do (not B) ? skip od
Acción atómica incondicional ? no contiene una
condición B Acción atómica condicional ?
sentencia await con guarda B
Propiedades de seguridad(safety) y vida(liveness)
Una propiedad de un programa concurrente es un
atributo que resulta verdadero para cualquiera de
los threads de ejecución del mismo. Toda
propiedad puede ser formulada en términos de dos
clases de propiedades seguridad y vida.
La clase de propiedades de seguridad se refiere
a la NO ocurrencia de eventos malos. Por
ejemplo son clásicas las propiedades de seguridad
ausencia de deadlock y ausencia de interferencia
(exclusión mútua) entre procesos.
La clase de propiedades de vida se refiere a la
posibilidad de ocurrencia de eventos buenos.
Por ejemplo son clásicas asegurar que un pedido
de servicio será atendido, asegurar que un
mensaje llega a destino, que un proceso
eventualmente alcanzará su sección crítica, etcgt
dependen de las políticas de scheduling.
Propiedades de procesos concurrentes
Fairness trata de garantizar que los procesos
tengan chance de avanzar, sin importar lo que
hagan los demás
Una acción atómica en un proceso es elegible si
es la próxima acción atómica en el proceso que
será ejecutado Si hay varios procesos, hay varias
acciones atómicas elegibles
Una política de scheduling determina cuál será la
próxima en ejecutarse
Fairness Incondicional. Una política de
scheduling es incondicionalmente fair si toda
acción atómica incondicional que es elegible
eventualmente es ejecutada.
Fairness Débil. Una política de scheduling es
débilmente fair si es incondicionalmente fair y
toda acción atómica condicional que se vuelve
elegible eventualmente es ejecutada si su guarda
se convierte en true y de allí en adelante
permanece true.
No es suficiente para asegurar que cualquier
sentencia await elegible eventualmente se
ejecuta la guarda podría cambiar el valor (de
false a true y nuevamente a false) mientras un
proceso está demorado. (Recordar el caso de
lectores-escritores de ADA)
Fairness Fuerte Una política de scheduling es
fuertemente fair si es incondicionalmente fair y
elegible eventualmente es ejecutada pues su
guarda se convierte en true con infinita
Relacionar lo anterior con los esquemas de
scheduling que tienen memoriapara favorecer a
los procesos retrasadosgt Prioridad dinámica.
En lo posible leer los cápítulos 1 y 2 del texto
Foundations of Mutithreaded, Parallel and
Distributed Programming de Gregory Andrews.
Addison Wesley 2000. Leer los ejemplos de
paralelismo recursivo, productores y
consumidores, clientes y servidores y el código
de la multiplicación de matrices distribuida del
Capítulo 1 del Andrews.
Investigue las primitivas de programación
concurrente de un lenguaje de programación que NO
sea ADA.
Analice un caso conocido de accion atómica de
grano grueso una transacción completa sobre una
BD. Explique como protegería la atomicidad de la
misma, suponiendo que hay acceso concurrente a la
BD. Qué significa el AWAIT en este caso?
Presentacin del Curso - Procesamiento de im genes para Ingenier a de Alimentos. Sitio ... 07.01.04, Lu.12.01.04, Mi.14.01.04 y Lu.19.01.04. de 15:00 a 17:50 hrs. Profesor: Domingo Mery ...	| PowerPoint PPT presentation | free to view
PRIMERA PARTE CONCEPTOS FUNDAMENTALES - Organizaci n que oferta bienes y servicios destinados a satisfacer las ... Transmisiones hereditarias(mortis causa) Otras modalidades negociales ...	| PowerPoint PPT presentation | free to view
Curso AMBAI Rotary Club OLIVOS - ES LA T CNICA QUE SE OCUPA DE REGISTRAR METOD LOGICAMENTE LA EVOLUCI N Y LAS ... Es la representaci n contable del valor de un conjunto homog neo de bienes, ...	| PowerPoint PPT presentation | free to view
Tema 2 - Tema 2 Din mica del punto. 2.1.- Introducci n. Objeto de la Din mica. 2.2.- Leyes cl sicas del movimiento. Fuerza y momento lineal. 2.3.-	| PowerPoint PPT presentation | free to view
The PowerPoint PPT presentation: "Temas fundamentales del Curso" is the property of its rightful owner.

References: Resolución 

resolución 

resolución 
 resolución 
 resolución

 resolución