lunes, 10 de noviembre de 2008

3 Sincronización en Sistemas Distribuídos

Un sistema tiene recursos únicos que necesitan ser compartidos entre los procesos. Generalmente, sólo un proceso puede accesar el recurso a la vez. Es necesario entonces sincronizar el acceso a estos recursos. Otras veces se requiere sincronizar el tiempo, la comunicación, el orden de los eventos de un algoritmo, etc.

En los sistemas monoprocesador, la sicronización era fácil porque todos los procesos comparten el mismo reloj, y el acceso a regiones críticas se hace con mecanismos como los semáforos y los monitores, los cuales presuponen la existencia de una memoria compartida. Entonces el núcleo del sistema operativo se encarga de mantener el semáforo o monitor y los procesos acceden a él por medio de señalamientos al núcleo. Esto es rápido porque todo se realiza sobre la misma memoria RAM.

Cuando se trata de un sistema distribuído, ya no hay memoria compartida y toda comunicación entre procesos supone un mensaje sobre la red, que es costoso en tiempo. Estas nuevas circunstancias requieren algoritmos y mecanismos diferentes. Igualmente, los errores que se presentan en el sistema son distintos.

No hay comentarios: