Puebla, Pue a 4 de Junio del Programación Concurrente y Paralela

Documentos relacionados
Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación

Sistemas Distribuidos

FUNCIONAMIENTO DEL ORDENADOR

Práctica 3: Monitoreo y Depuración de Programas

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson

SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III

La Máquina de Acceso Aleatorio (Random Access Machine)

Lusitania. Pensando en Paralelo. César Gómez Martín

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Aunque cada servicio es diferente, por lo general hay varios niveles de privacidad para elegir. A veces se les llama niveles de acceso.

Manipulación de procesos

Contabilidad de costos

Manual Power Point. RGA Training & Solutions

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Anexo. Control de errores

4.6.- Integridad: Control de concurrencia.

Enrique Gallardo Juárez MANUAL PARA HACER UNA CONEXIÓN LAN

Manual de Usuario de la Aplicación Web Gestión de Convenio y Becas - RELEXT 2015 UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA

Pontificia Universidad Católica del Ecuador

Secretos de la Programación Concurrente

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

un programa concurrente

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

El modelo de Procesos

Algoritmos glotones. mat-151

Descomposición en forma canónica de Jordan (Segunda versión)

Materia: Sistemas Operativos

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

DESCRIPCIÓN PROJECT PRO FOR OFFICE 365

ANEXO XVIII INSTRUCTIVO DE RESGUARDO Y RESTAURACIÓN DE DATOS APIB.CBA CON LA VERSIÓN 6 (ART. 286 R.N. 1/2009)

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Manual de usuario de cga-comparte-impresora-v4

Seguridad. Mecanismos de protección Canales encubiertos Seguridad multinivel

Estructuras de Control

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

Pruebas de Funcionalidad. Pruebas de Funcionalidad.


EZEQUIEL Y LAS PROMESAS DE DIOS (D )

CAPITULO 6. Control de Concurrencia y Recuperación

Trabajando con Listas

Materia: Matemática de 5to Tema: Método de Cramer. Marco Teórico

Manual de Registro. Sistema de Registro de Proveedores del Grupo EDP (SRP) EDP España Dirección de Compras. Marzo 2016

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

BLOQUEOS. Por aprendebaloncesto.

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

DPTO. FISICA APLICADA II - EUAT

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Lección 13: Proporcionalidad y algunos por centajes

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Creado Por L.E.F. Armando Barrios Mercado 1

SOLICITUD DE INFORMACIÓN DE OFICIO A UNIVERSIDADES Y OTROS ORGANISMOS

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

El término productividad, con frecuencia, se confunde con el término producción. Muchas

6.2 Interfaz del Programa de Diseño de una Guía Circular.

Curso Intensivo Completo DE PROGRAMACIÓN NEURO-LINGÜÍSTICA

Configuración de protocolos TCP/IP

A continuación se presenta la información de la altura promedio para el año de 1998 en Holanda de hombres y mujeres jóvenes.

configuración de tu equipo. Rellena la siguiente tabla y contesta a las siguientes preguntas:

ES PHP UN BUEN LENGUAJE DE PROGRAMACIÓN? CUÁLES SON LAS VERSIONES DE PHP? UN POCO DE HISTORIA. (CU00806B)

Funciones básicas del depurador

Formamos grupos y representamos números de cuatro cifras

Núcleo: LENGUAJE VERBAL. Nivel: SEGUNDO CICLO. Duración: 7 MINUTOS RELACIÓN ENTRE EL PROGRAMA Y BCEP

ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO

Diagrama de Actividades. Fuente: Profesor Guillermo Bustos.

FUNCIONALIDAD EN EL ERP SA DIAGRAMA DE PROCESO

Demostrando lo que aprendimos Todos podemos aprender, nadie se queda atrás

IMPRESORA. Realizado por: Moisés Álvarez Rodríguez. Jorge Brenes García. Miguel Ternero Algarín. Iván Gallego Jiménez. Ricardo Filipe do Carmo Pauleta

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Clase 2: Arquitectura de Software

Mensajes. Interbloqueo

Estructuras de control

MANUAL DE ADMINISTRADOR

Unidad 6: Compartir y proteger

Electrónica: Electrotecnia y medidas. UNIDAD 1. Leyes de Kirchhoff

Guía cómo entrar a la plataforma y subir tus actividades buscas la palabra entrar en la parte superior derecha como lo indica la flecha.

Club GeoGebra Iberoamericano. 9 INECUACIONES 2ª Parte

Depurar programas

Versión Fecha de última actualización: Enero

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Cristian Blanco

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES

Manual del padre de familia

Cómo calificar actividades en Moodle?

SUS - Creación de Factura Manual de Capacitación Gcia. de Abastecimiento

En efecto, todo natural, todo número entero, acepta una escritura en forma de fracción:

GUIÍA DE USO DE ADOBE CONNECT (VIDEOCONFERENCIA) PARA DOCENTES

6. PROCESADORES SUPERESCALARES Y VLIW

Lineamiento de las Salas de Cómputo de la Facultad de Ciencias de la Conducta de la Universidad Autónoma del Estado de México

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Estuardo Roehrs # Cristian Chau # Algoritmos y Programación básica. Sección 60

MANUAL DEL PROGRAMA EXCEL LABORAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

textos: sustantivas, complemento del nombre, pronombres adjetivos, complemento del

Para solucionar este problema, se recomienda seguir alguna de las siguientes estrategias:

Transcripción:

Puebla, Pue a 4 de Junio del 2015 Programación Concurrente y Paralela Algoritmo de Dekker y Peterson Problemas: 1.- Esquimales 2.- Identificar procesos. ALUMNOS: OSCAR EDUARDO GONZÁLEZ RAMOS MICHAEL CASTAÑEDA TREJO JESÚS URIEL RODRÍGUEZ CUAUTLE IVÁN HERNÁNDEZ PEDRAZA JUDITH ANGÉLICA HERRERA NICIO ALAN JOB DE LA LUZ HERNÁNDEZ

ALGORITMOS: DEKKER Y PETERSON Algoritmo de Dekker: El algoritmo de Dekker es un algoritmo de programación concurrente para exclusión mutua, que permite a dos procesos o hilos de ejecución compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por Edsger Dijkstra. Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo elige un proceso según una variable de turno. Si el otro proceso está ejecutando en su sección crítica, deberá esperar su finalización. Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4. Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su desventaja es que acopla los procesos fuertemente, esto significa que los procesos lentos atrasan a los procesos rápidos. Versión 2: Problema interbloqueo. No existe la alternancia, aunque ambos procesos caen a un mismo estado y nunca salen de ahí. Versión 3: Colisión región crítica no garantiza la exclusión mutua. Este algoritmo no evita que dos procesos puedan acceder al mismo tiempo a la región crítica. Versión 4: Postergación indefinida. Aunque los procesos no están en interbloqueo, un proceso o varios se quedan esperando a que suceda un evento que tal vez nunca suceda. Algoritmo de Peterson: Es un algoritmo de programación concurrente para exclusión mutua, que permite a dos o más procesos o hilos de ejecución compartir un recurso sin conflictos, utilizando sólo memoria compartida para la comunicación. Peterson desarrolló en 1981 el algoritmo básico para dos procesos, como una simplificación del algoritmo de Dekker. El algoritmo básico puede generalizarse fácilmente a un número arbitrario de procesos. Los procesos p0 y p1 no pueden estar en la sección crítica al mismo tiempo: si p0 está en la sección crítica, entonces bandera[0] = 1, y ocurre que bandera[1] = 0, con lo que p1 ha terminado la sección crítica, o que la variable compartida turno = 0, con lo que p1 está esperando para entrar a la sección crítica. En ambos casos, p1 no puede estar en la sección crítica.

Programa 1: El problema de los esquimales Solo uno de los esquimales puede acceder a la vez al pizarrón y cuando uno de los esquimales quiere acceder al agujero para pescar debe consultar si tiene permiso para hacerlo; si el permiso lo tiene otro esquimal esperara un tiempo, cuando se le indique que tiene permiso entonces este podrá ir a pescar. Código: Aquí se establecen las propiedades del esquimal 2, dentro del método run y se cambian las banderas para decidir si espera o va a pescar

Aquí se establecen las propiedades del esquimal 1, dentro del método run y se cambian las banderas, para establecer si va a la pizarra o a pescar.

Este es el método principal en el que se inicializan las variables y métodos que harán que funcionen las clases de los procesos (esquimales). Ejecución

Como podemos observar en la salida, se puede notar que cada esquimal pesca un pescado a la vez, respetando sus condiciones, de acuerdo a la bandera

Programa 2: Algoritmo de Peterson (identificar procesos) En el algoritmo propuesto por la profesora, se identificaba que así como se producía el mismo proceso podía interpretar que se consumía lo producido, para esto, se deben identificar los procesos y escribir correctamente los mensajes que se muestren en la salida, para identificar qué proceso produce y cual consume. Código: Para este programa se implementa una lista con 2 métodos, insertardato y ObtenerDato.

Aquí tenemos la clase PetersonP1 en la cual se van a establecer las condiciones que va a llevar el hilo1.

Aquí vemos las condiciones para el hilo2.

Ejecución: Como se puede observar en la salida, se identifica perfectamente que hilo es el que produce y cuál es el hilo que consume.

CONCLUSION El resolver al problema de los esquimales usando el algoritmo de Dekker nos dimos cuenta, la manera en la que funciona el algoritmo llevando el control, mediante la bandera haciendo que el programa se ejecute sincronizadamente. Mientras que por parte de el algoritmo de Peterson, se observó y aprendió la forma en la que por medio de la lista los hilos iban produciendo y consumiendo, en las clases correspondientes a los hilos se pudo observar la manera en la que se hace la sincronización, nunca el hilo1 puede producir si el hilo2 no a consumido, así como, el hilo2 no puede consumir sin que el hilo1 ya haya producido el elemento.