| |
DIPC состоит из двух частей: основная часть выполняется в пространстве пользователя как обыкновенный процесс с правами суперпользователя и применяется для управления. Она называется dipcd. Этот демон может привести к снижению производительности, но увеличивает гибкость системы: изменения установок dipcd могут вступить в силу без необходимости замены ядра. Он также упрощает разработку и предохраняет ядро от еще большего усложнения; dipcd создает большое количество дочерних процессов для выполнения различных задач во время своей активности. Другая часть DIPC находится внутри ядра и предоставляет первой части необходимую функциональность и информацию для выполнения ее заданий. Не предоставляется возможным работа dipcd на базе ядра без поддержки DIPC.
Часть DIPC, относящаяся к ядру, ``заглушена'', когда dipcd не выполняется. При отсутствии dipcd, вызовы DIPC в программе должны происходить так же, как если бы они были нормальными вызовами IPC System V. Сам dipcd использует обычные средства для получения доступа к механизмам IPC System V. Эти механизмы изменчивы - так, они предполагают отличие dipcd от других пользовательских процессов. Например, dipcd может получить доступ к сегменту разделяемой памяти с помощью smget(), даже в том случае, если он был удален (shmctl() - вследствие команды IPC_RMID), - но не окончательно из ядра. Все манипуляции dipcd со структурами IPC делаются локально, без проявления вне данной машины. Это противоречит подходам к нормальным пользовательским процессам, когда действия с распределенными структурами IPC могут затронуть другие компьютеры в сети.
DIPC затрагиваются только при передаче данных в распределенной среде. Запуск соответствующих программ на различных компьютерах - это дело пользователя/программиста DIPC. Это значит, что программы для исполнения могут нуждаться в размещении на компьютере, который предназначен для их исполнения. Программы могут быть перенесены на различные компьютеры один раз и использованы множество раз после этого. Это не вызывает перегрузок при передаче кода по сети во всех случаях, когда программа запускается. Считается, что код программы остается без изменений в течение относительно долгого периода, в то время как используемые им данные изменяются часто (может быть, от одного запуска к другому), что в большинстве случаев должно считаться плюсом.
Важно учитывать, что DIPC - это набор механизмов. Речь идет не о выборе стратегии: как распараллеливается программа, где должны запускаться процессы и т.д. - решает пользователь/программист. Известно несколько иных доступных средств для решения данного класса задач, хотя в полной мере удовлетворительного решения пока не известно.
Выделяют два вида активности DIPC:
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |