| |
Очевидно, что доступ к сети обеспечить весьма непросто. В некоторых операционных системах используется переотображение адресов (с помощью блока управления памятью (Memory Management Unit - MMU) - для предоставления доступа к части памяти процесса другому процессу), следовательно, пересылки данных между адресными пространствами ядра и пользователя должны быть очень ``дешевыми''. К сожалению, Linux не поддерживает этого метода при реализации механизмов IPC System V.
Одним из возможных путей уменьшения числа копирований между адресными пространствами пользователя и ядра является воздержание от копирования данных из адресного пространства процесса в память ядра в тех случаях, когда нужный процесс на вызываемой машине еще не выполняется, а данные снова будут скопированы в адресное пространство dipcd для посылки по сети. Этот подход также помогает избегать копирований данных, поступающих из сети, в ядро, когда известно, что они будут скопированы повторно в адресное пространство пользовательского процесса.
Можно использовать и ``заглушки'' в пользовательском пространстве для перемещения обычного кода IPC System V в ядро. Код "заглушки" должен протестировать данные и цель и решить, нужно ли послать данные по сети, не беспокоясь о локальном ядре. Другой процесс на вызываемой машине должен принять эти данные, выполнить операцию и передать результаты назад, после чего они доставляются оригинальному процессу-заглушке. Для этого необходимо предоставить возможность этому процессу заменить обычные заглушки IPC. Следует также обеспечить наличие объектных файлов, которые должны прикомпоновываться к программе или, что еще лучше, изменить стандартные библиотеки C.
Эти две проблемы можно сформулировать так:
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |