PROGRAMACION CONCURRENTE

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

1.3. PROGRAMACION PARALELA
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
DIAGRAMA DE ACTIVIDAD Roberto Certain Leonardo Molina.
Mecanismo de semáforos
Concurrencia y Exclusión Mutua
Programando con OpenMP*
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
T5-multithreading SO-Grado Q1.
Administración de procesos y del procesador.
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS UNIDAD 1..
Administración de procesos y del procesador.
Mejoras a las Máquinas Von Neumann
Tema 3. Optimización de Código
Scheduling and Mapping Introducción Marco de referencia Módulos independientes Tareas con precedencia sin costo Precedencia de tareas y retardos en la.
Elemento Lógico (Software)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
CLASIFICACIÓN DEL SISTEMA OPERATIVO POR APLICACIÓN
Semana 5 Subprogramas..
Sistemas Operativos Procesos.
Unidad III Administración de procesos
CONCEPTOS FUNDAMENTALES FORMAS DE ALMACENAR INFORMACION UNIDAD BASE DE INFORMACION: BIT BYTE = 8 BITS UN KILOBYTE = 1024 BYTES UN MEGABYTE = 1024 KILOBYTES.
Ing. Karen Torrealba de Oblitas
Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda.
Programación de Memoria Compartida
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Sistemas Concurrentes: programación concurrente
Overview Sistemas Computacionales
PROGRAMACION CONCURRENTE
LENGUAJES DE PROGRAMACIÓN
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Hilos En La Computación. (THREADS).
Especialista en Business Intelligence Integration Services SSIS Tareas de Flujo de Control (Parte I) Microsoft SQL Server 2008 R2 Suscribase a
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
Sistemas Concurrentes: Conceptos fundamentales
Una transacción debe estar en uno de los estados siguientes: Activa Parcialmente comprometida Fallida Abortada Comprometida Activa: El estado inicial;
Sincronización de Procesos
CONTROL DE PROYECTOS.
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
“Organización y Arquitectura de Computadores” William Stallings
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s07 Se ha tomado como base el material generado por Peter Marwedel de.
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Programación Básica con NQC Patricio A. Castillo 10/05/2008.
VENTAJAS DE LAS BASES DE DATOS.  Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie.
Términos algoritmo diseñar algoritmo implementar algoritmo
Unidad 2 – Gestión de Procesos
1 5. UNIDADES DE PROGRAMAS. 2 Uso de mecanismos de control de secuencia de: Invocaciones Retornos Entre: PPSP 1 a) I R SP 1 SP 2 b) I R Unidades subordinadas.
UNIDAD 7 “OTROS PARADIGMAS DE PROGRAMACIÓN“ LI & MSC OSCAR RAMIREZ CORTÉS Universidad de la Huasteca Veracruzana.
Capítulo 8 Segmentación de Instrucciones.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
BASE DE DATOS.
UTFSM - Sistemas Operativos
¿QUE ES EL DIAGRAMA DE ESTADO ?
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
3.2.1 Administración de almacenamiento
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Curso: Fundamentos de Computación
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Transcripción de la presentación:

PROGRAMACION CONCURRENTE Los elementos que constituyen un programa concurrente son módulos independientes denominados tareas o procesos. La programación concurrente se encarga fundamentalmente de temas vinculados a la comunicación y sincronización de procesos. La comunicación permite que los procesos cooperen entre sí en la ejecución de un objetivo global, en tanto que la sincronización permite que un proceso continúe su ejecución después de que un determinado evento ha ocurrido. La comunicación entre tareas o procesos se puede realizar básicamente de dos maneras: a) comunicación a través de un área común de memoria, o b) comunicación mediante el intercambio de mensajes. En el caso a) es necesario contar con mecanismos de sincronización para garantizar la consistencia de los datos almacenados como por ejemplo semáforos, monitores, etc. En el caso b) las variables son locales. Un mensaje al llegar a su destino sólo es entregado a su tarea cuando ésta lo requiere. Si lo requiere y aún no está disponible la tarea debe suspenderse y esperar la llegada del mensaje.

GRAFO DE NO PRECEDENCIA GRAFO DE PRECEDENCIA Un grafo de precedencia es un grafo sin ciclos donde cada nodo representa una única sentencia. Un arco que parte del nodo S1 hacia el S2 indica que S2 puede ser ejecutado sólo si S1 ha completado su ejecución. GRAFO DE NO PRECEDENCIA GRAFO DE PRECEDENCIA

Dos sentencias cualesquiera Si y Sj pueden ejecutarse concurrentemente produciendo el mismo resultado que si se ejecutaran secuencialmente sí y sólo sí se cumplen las siguientes condiciones: 1. R (Si) ¿ W (Sj) = (Ø). 2. W (Si) ¿ R (Sj) = (Ø). 3. W (Si) ¿ W (Sj) = (Ø). Estas condiciones se conocen con el nombre de Condiciones de Bernstein.

CORRUTINAS La transferencia de control es la instrucción RESUME. Este mecanismo implementa la sincronización entre tareas para un único procesador, luego sirven para un ambiente de multiprogramación, y no para el caso de procesamiento en paralelo, ya que este sistema permite la ejecución de una rutina a la vez. Las corrutinas mantienen su estado anterior de ejecución, esto es, los resultados o modificaciones realizados durante la última invocación permanecen para la próxima vez que se la utilice (debido a que cuentan con una memoria local que permanece).

INSTRUCCIONES FORK Y JOIN count := 2; fork L1; - - - - - S2; go to L2; L1: S3; L2: join count; S4; S1; fork L1; S2; - - - go to L2 L1: S3; L2: join; S4;

S1; cuenta = 3; fork L1; S2; S4; fork L2; S5; go to L3; L2 : S6; L1: S3; L3: join cuenta; S7;

INSTRUCCION DE CONCURRENCIA COBEGIN/COEND

Ejercicio Propuesto

Instrucción Cobegin/Coend expresada mediante Fork/Join COBEGIN S1; S2; ..............; SN COEND cuenta = n; fork L2; fork L3; ... fork Ln; S1; go to Lj; L2: S2; Ln: Sn; Lj: join cuenta;