hardware de sincronización

8
Kleber Francisco Coronel Sotomayor Hardware de Sincronización Kleber Francisco Coronel Sotomayor

Upload: erick-alvarado

Post on 27-Jun-2015

384 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

Page 2: Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

Hardware de Sincronización

• En general Podemos afirmar que cualquier solución al problema de la sección critica requiere una herramienta muy simple un cerrojo. Las condiciones de carrera se evitan requiriendo que las regiones críticas se protejan mediantes cerrojos.

• El soporte hardware puede facilitar cualquier tarea de programación y mejorar la eficiencia del sistema.

• El problema de la sección crítica podría resolverse de forma simple

en un entorno de un solo procesador si pudiéramos impedir que se produjeran interrupciones mientras se está modificando una variable compartida.

Page 3: Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

Hardware de Sincronización

• Ninguna otra instrucción se ejecutará, por lo que no se producirán modificaciones inesperadas de la variable compartida.

• Desactivar las interrupciones en un sistema puede consumir mucho tiempo, ya que hay que pasar el mensaje a todos los procesadores.

• Muchos sistemas proveen soporte hardware para resolver el problema de la exclusión mutua.

• Una solución en máquinas con un solo procesador es deshabilitar las interrupciones.

• Las máquinas actuales proveen instrucciones atómicas especiales.

 

Page 4: Hardware de Sincronización

Gianela Beatríz Zambrano Balladares

TEST_AND_SET

do {

while ( TestAndSet Lock (& lock)};

// no hacer nada 

// sección crítica

Lock = FALSE;

// sección restante

} while (TRUE); 

Page 5: Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

• La instrucción TESTANDSET para leer y modificar

atómicamente una variable. • La característica importante es que esta instrucción se ejecuta

atómicamente. • Por tanto si dos instrucciones TESTANDSET se ejecutan

simultáneamente ( cada una en una CPU diferente), se ejecutarán secuencialmente en un orden arbitrario.

• Si la máquina soporta la instrucción TESTANDSET ,entonces

podemos implementar la exclusión mutua declarando una variable booleana Lock inicializada con el valor false.

TESTANDSET

Page 6: Hardware de Sincronización

Kleber Francisco Coronel Sotomayor

Swap

Do {

Key = TRUE;

While (key == True)

Swap(& lock, &key);

// sección crítica

Lock = FALSE;

// sección restante

} while (TRUE) ;

Page 7: Hardware de Sincronización

SWAP

• La instrucción swap() es para intercambiar el valor de dos variables , diferencia de la instrucción TestandSet() opera sobre los contenidos de 2 palabras ambas se ejecutan atómicamente.

• Si la máquina soporta la instrucción Swap() , entonces podemos declarar una variable booleana Lock y se inicializa como false.

• Además, cada proceso tiene una variable local booleana Key

Page 8: Hardware de Sincronización

ExpositorKleber Francisco Coronel Sotomayor

Kleber Francisco Coronel Sotomayor [email protected]

Graciaspor la atención

Puede encender su celular

¿PREGUNTAS?