algoritmos distribuidos de asignación de procesadores
TRANSCRIPT
ALGORITMOS DISTRIBUIDOS DE ASIGNACIÓN DE PROCESADORES
14 de Mayo de 2013
Algoritmos de Asignación de Procesadores
Los principales aspectos son los siguientes:
• Algoritmos deterministas vs. heurísticos.
• Algoritmos centralizados vs. distribuidos.
• Algoritmos óptimos vs. subóptimos.
• Algoritmos locales vs. globales.
• Algoritmos iniciados por el emisor vs. iniciados por el receptor.
Algoritmos deterministas
• Son adecuados cuando se sabe anticipadamente todo acerca del comportamiento de los procesos.
• En pocos, si no es que en ninguno de los sistemas, se tiene un conocimiento total de antemano, pero a veces se puede obtener una aproximación razonable.
Algoritmos deterministas
• Por ejemplo, aplicaciones o empresas donde el trabajo de un día es similar al del día anterior.
• El objetivo de este algoritmo es minimizar el tráfico en la red, cuando tenemos que asignar varios procesos a un procesador.
Algoritmos Heurísticos
(Heurística.- Arte de inventar o descubrir.)
• Sistemas donde la carga es por completo impredecible.
• Las solicitudes de trabajo dependen de quien esté haciendo qué, y puede variar de manera drástica cada hora, e incluso cada minuto.
Algoritmos Heurísticos
La asignación de procesadores en tales sistemas no se puede hacer de manera determinista o matemática, sino que por necesidad utiliza técnicas adhoc llamadas heurísticas.
Algoritmo centralizado:
Permiten reunir toda la información en un lugar y tomar una mejor decisión; la desventaja es que la máquina central se puede sobrecargar y se pierde robustez ante su posible falla.
Este algoritmo evita maximizar el uso de la CPU, asignando de manera justa la capacidad. A diferencia del algoritmo determinista.
Algoritmos óptimos
• Si se conoce toda la información sobre el estado del sistema y sobre los recursos que necesitan los procesos, se puede hacer una asignación óptima.
• Generalmente, este problema es computacionalmente inabordable
Algoritmos óptimos
• (la mejor asignación) consumen más recursos que los subóptimos (una asignación aceptable), además, en la mayoría de los sistemas reales se buscan soluciones subóptimas, heurísticas y distribuidas.
Algoritmo Jerárquico
• Este algoritmo divide a los procesadores en jerarquías lógicas con distintos niveles. Cada grupo de procesadores tiene una máquina coordinadora, que tiene el registro de las máquinas ocupadas e inactivas.
• Para mantener el flujo de la información controlada, cada procesador se comunica con unos pocos subordinados y uno superior.
Algoritmo Distribuido Heurístico iniciado por el emisor (Eager)
• Este algoritmo reparte los procesos en cada máquina hasta alcanzar un cierto valor.
• Envía mensajes a una maquina cualquiera desde la que se origina el proceso, para averiguar si la carga está por debajo de un valor, si es menor se envía el proceso a esa máquina y si no se repite en cada una de las máquinas hasta encontrar una.
Algoritmo Distribuido Heurístico iniciado por el emisor (Eager)
• En el caso de que no encontrara ninguna máquina disponible, el proceso se ejecuta en la máquina donde se genero el proceso.
• En estaciones con mucha carga, las pruebas serian constantes y el costo aumentaría
Algoritmo Distribuido Heurístico Iniciado por el Receptor
• Este algoritmo es complementario al anterior, solo que este se inicia por un receptor subcargado.
Al terminar un proceso se establece si tiene carga suficiente, sino tiene se solicita trabajo a las otras máquinas, sino encuentra más trabajo vuelve a intentarlo más tarde.
Algoritmo Distribuido Heurístico Iniciado por el Receptor
• Las ventajas de este algoritmo es que no sobrecarga el sistema en momentos críticos.
• Podríamos hacer un algoritmo que combinara estos dos últimos, para que cuando el sistema este cargado reparta el trabajo, y lo pida cuando tiene poco.
Algoritmo de Remates
• Este algoritmo utiliza en modelo económico creado por Ferguson, con compradores y vendedores, y la ley de la oferta y la demanda. En nuestro caso los compradores serían los procesos, y los vendedores los procesadores.
• El precio de los procesadores viene establecido según sus características y servicios. Estos precios se anuncian en un archivo a los procesos.
Algoritmo de Remates
• Cuando el proceso quiere iniciar un proceso hijo, busca los procesadores que ofrezcan el servicio deseado, establece que procesadores están libres, elige el mejor candidato y genera una oferta al procesador elegido.
• El procesador reúne todas las ofertas recibidas y eligen la mejor, comunicándoselo a los procesos. Después actualizan los precios, con la cifra pagada por el último cliente.