programación pararelo

6
Universidad Fermín Toro Facultad de Ingeniería Ingeniería en Computación Procesos en paralelo Andreina Paredes Sistemas Operativos Saia

Upload: andreina-paredes-di-pascuale

Post on 31-Jul-2015

358 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Programación pararelo

Universidad Fermín Toro

Facultad de Ingeniería

Ingeniería en Computación

Procesos

en

paralelo

Andreina Paredes

Sistemas Operativos

Saia

Page 2: Programación pararelo

Procesamiento en

paralelo

Permiten

La

ejecución

simultánea

de

diferentes

procesos

Es Se basa en El procesamiento

concurrente de datos

para conseguir menos

tiempo en las

ejecuciones

Activar la ejecución de un programa mediante su

división en fragmentos para ser ejecutados

simultáneamente

Acelerar los procesos de cálculos

Mejora la velocidad de procesamiento y de E/S

Mejora el tiempo de respuesta

Mejora la productividad T

I

P

O

S Implícito

Explícito

Algunos diseños

SMP (Multiprocesamiento simétrico)

MPP (Procesamiento masivamente Paralelo)

SPP (Procesamiento paralelo escalable)

Page 3: Programación pararelo

Concurrencia

Permite

Varias

actividades

ejecutadas

simultáneamente

Son Características Comunica

procesos

Compite por

recursos

Sincroniza la

ejecución de los

procesos

Asigna el tiempo

a los procesos

Programación Concurrente

Como

Exclusión Mutua El manejo de los

procesos

asíncronos

Permite Evita

Fragmentos de códigos

Usa

La sincronización

para regresar a un

estado anterior

conocido en caso de

error durante la

sesión

Usando

Algoritmos

Variables

Dekker

Peterson

Semáforos

Monitores

Page 4: Programación pararelo

Algoritmo de Peterson

Permite

Algoritmo de Dekker

Permite

Compartir recursos sin

conflictos a dos procesos

Ejemplo

shared int cierto = 1;

''/* Definición de variables compartidas */ ''

shared int bandera[2] = {0,0};

shared int turno = 0;

while (cierto)

{ bandera[proc_id] = cierto;

while (bandera[1-proc_id] == cierto)

{ if (turno == 1-proc_id)

{ bandera[proc_id] = 0;

while (turno == (1-proc_id)) /* espera a que

sea su turno de intentar */;

bandera[proc_id] = 1; } }

/* ''Sección crítica'' */

turno = 1-proc_id; /* es el turno del otro

proceso */

bandera[proc_id] = 0;

/* ''Sección no crítica'' */ }

Compartir recursos sin conflictos

a dos procesos usando memoria

compartida para la comunicación

Ejemplo

bandera[0] = 0

bandera[1] = 0

turno = 0

p0: bandera[0] = 1

turno = 1

while( bandera[1] && turno == 1 );

bandera[0] = 0

p1: bandera[1] = 1

turno = 0

while( bandera[0] && turno == 0 );

bandera[1] = 0

Page 5: Programación pararelo

Monitores

Son

Procedimientos, variables y estructuras de

datos que se agrupan en un módulo especial y

facilitan la sincronización de las actividades

simultáneas.

Variables de condición

Signal Wait

Tienen

Características

Se activan al ser invocados por procesos en ejecución

Aumentan la concurrencia y facilitan el mantenimiento

Permiten suspender procesos y reanudar su ejecución en

otro momento

Evitan inconvenientes ocasionados por los semáforos. Tipos

Hoare

Mesa

Page 6: Programación pararelo

Semáforos

Son

Variables numéricas enteras de tipo protegida

Dos Estados

Cero Uno

Tienen

El manejo de las secciones críticas

La Exclusión mutua entre procesos

Restringir o permitir el acceso a recursos compartidos y

Evitar que fragmentos de códigos accedan al mismo

tiempo a recursos que no deben ser compartidos

Permiten

El recurso está

siendo utilizado

El recurso está

disponible