Planificación en Sistemas Distribuidos
Generalmente cada procesador hace su planificación local (si tiene varios procesos en ejecución) independientemente de lo que hacen los otros procesadores [25, Tanenbaum].
La planificación independiente no es eficiente cuando se ejecutan en distintos procesadores un grupo de procesos:
- Relacionados entre sí.
- Con una gran interacción entre los procesos.
Se necesita una forma de garantizar que los procesos con comunicación frecuente se ejecuten de manera simultánea.
En muchos casos un grupo de procesos relacionados entre sí iniciarán juntos.
La comunicación dentro de los grupos debe prevalecer sobre la comunicación entre los grupos.
Se debe disponer de un número de procesadores suficiente para soportar al grupo de mayor tamaño.
Cada procesador se multiprograma con “n” espacios para los procesos (multiprogramación de nivel “n”).
El algoritmo de Ousterhout utiliza el concepto de coplanificación:
- Toma en cuenta los patrones de comunicación entre los procesos durante la planificación.
- Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.
- Se emplea una matriz conceptual donde:
- Las filas son espacios de tiempo.
- Las columnas son las tablas de procesos de los procesadores.
- Cada procesador debe utilizar un algoritmo de planificación Round Robin:
- Todos los procesadores ejecutan el proceso en el espacio “0” durante un cierto período fijo.
- Todos los procesadores ejecutan el proceso en el espacio “1” durante un cierto período fijo, etc.
- Se deben mantener sincronizados los intervalos de tiempo.
- Todos los miembros de un grupo se deben colocar en el mismo número de espacio de tiempo pero en procesadores distintos.
|