Está en la página 1de 14

Coordinacion y Sincronizacion de Procesos

Seccin o Regin Critica Semforos Monitores

COMUNICACIN ENTRE PROCESOS


Cmo un proceso puede pasar informacin a otro?. Hacer que dos o ms procesos no se interpongan entre s. Obtener la secuencia apropiada cuando hay dependencias presentes.

Condiciones de carrera

Regiones crticas
Cmo evitamos las condiciones de carrera?

Exclusin Mutua

Exclusin mutua con espera ocupada


Mientras un proceso est ocupado actualizando la memoria compartida en su regin crtica, ningn otro proceso puede entrar a s regin crtica y ocasionar problemas.

Exclusin mutua con espera ocupada Deshabilitando interrupciones Variables de candado Alternancia estricta Solucin de Peterson La instruccin TSL Dormir y despertar El problema del productor-consumidor (bfer limitado)

Regiones crticas
Algunas veces un proceso tiene que acceder a la memoria compartida o a archivos compartidos, o hacer otras cosas crticas que pueden producir carreras. Esa parte del programa en la que se accede a la memoria compartida se conoce como seccin crtica o regin crtica

Evitar las condiciones de carrera


Necesitamos cumplir con cuatro condiciones para tener una buena solucin: 1. No puede haber dos procesos de manera simultnea dentro de sus regiones crticas. 2. No pueden hacerse suposiciones acerca de las velocidades o el nmero de CPUs. 3. Ningn proceso que se ejecute fuera de su regin crtica puede bloquear otros procesos. 4. Ningn proceso tiene que esperar para siempre para entrar a su regin crtica.

Exclusin mutua mediante el uso de regiones crticas.

Semforos
En 1965 E. W. Dijkstra sugiri el uso de una variable entera para contar el nmero de seales de despertar, guardadas para un uso futuro. En su propuesta introdujo un nuevo tipo de variable, al cual l le llam semforo.

Semforos
Operaciones Up (wakeup) Down (sleep)

Semforos
La operacin down en un semforo comprueba si el valor es mayor que 0. De ser as, disminuye el valor (es decir, utiliza una seal de despertar almacenada) y slo contina. Si el valor es 0, el proceso se pone a dormir sin completar la operacin down por el momento. Las acciones de comprobar el valor, modificarlo y posiblemente pasar a dormir, se realizan en conjunto como una sola accin atmica indivisible. Esta atomicidad es absolutamente esencial para resolver problemas de sincronizacin y evitar condiciones de carrera.

Mutexes
Es una versin simplificada del semforo Los mutexes son buenos slo para administrar la exclusin mutua para cierto recurso compartido o pieza de cdigo Un mutex es una variable que puede estar en uno de dos estados: abierto (desbloqueado) o cerrado (bloqueado). En consecuencia, se requiere slo 1 bit para representarla

Monitores
Un monitor es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de mdulo o paquete Los monitores tienen una importante propiedad que los hace tiles para lograr la exclusin mutua: slo puede haber un proceso activo en un monitor en cualquier instante

También podría gustarte