Технология MOSIX :: Реализация :: Ограничение миграции |
Некоторые функции Linux-ядра не совместимы с таким разделением контекста процесса (заместитель+удаленный). Очевидными примерами могут являться прямые манипуляции с устройствами ввода/вывода, т.е., прямой доступ к привилегированным инструкциям шинного ввода/вывода, или прямой доступ в памяти устройства. Другим примером может являться разделяемая память с перезаписью и выполнение в режиме реального времени. Последнее не позволительно потому, что нет никаких гарантий, что во время миграции не произойдет миграции процессов с других узлов, что может нарушить баланс со всеми вытекающими для процесса реального времени последствиями. Так же по этим же причинам невозможно мигрировать потоки. Процесс, который использует любую из вышеприведенных особенностей автоматически блокируется на своем UHN. Если процесс все же был уже мигрирован, то он в первую очередь возвращается на UHN. |