Технология MOSIX :: Что такое MOSIX :: Алгоритмы разделения ресурсов |
Основные алгоритмы разделения ресурсов в MOSIX это распределение нагрузки (load-balancing) и диспетчер памяти (memory ushering). Динамический алгоритм распределения нагрузки непрерывно пытается уменьшить разницу в загрузке между парами узлов миграцией процессов с более загруженного узла на менее нагруженный. Эта схема децентрализована: все узлы запускают одни и те же алгоритмы, и уменьшение загрузки различно нагруженных выполняется независимо от пар узлов. Число процессоров на каждом из узлов и их скорость являются важным фактором для алгоритма распределения нагрузки. Этот алгоритм реагирует на изменение загрузки на узле или на характеристики процессора в реальном режиме времени. Это доминирует до тех пор, пока нет критической нехватки ресурсов, например, свободной памяти или слотов для процессов. Алгоритм предотвращения истощения памяти работает при росте потребления оперативной памяти процессом (процессами), позволяет избежать своппинга. Алгоритм срабатывает, когда узел запускает страницу памяти превышающую наличную свободную память (рис. 2). В этом случае алгоритм подменяет алгоритм распределения нагрузки и пытается мигрировать процесс на узел, на котором имеется в достаточном количестве свободная память, необходимая для миграции, но возможно неравномерная по распределению нагрузки). Рис.1 Алгоритм предотвращения истощения памяти |