Не может добраться '-o повторно монтируют' опцию на доле NFS для работы в Slackware 13.1

Системные вызовы, обмениваясь сообщениями передающий (как описано в статье Wikipedia), и прерывания являются всеми вещами, которые вызывают контекстное переключение или переключатель от пользователя к привилегированному режиму. Поскольку Вы, вероятно, знаете:

  • привилегированный режим: программы имеют плоское или реальное представление памяти, и программы могут чтение-запись свободно ко всей памяти и всем устройствам непосредственно без ограничения.

  • непривилегированный режим: программы имеют виртуализированное представление памяти, программы не могут чтение-запись свободно ко всей памяти, и не могут устройства чтения-записи непосредственно. Для получения большего количества устройств памяти или доступа программа непривилегированного режима должна назвать ядро. Системные вызовы и передача сообщений являются двумя методами, чтобы сделать это.

Системные вызовы включают выполнение определенной инструкции ЦП или набора инструкций, которые заставляют ЦП перейти (сначала сохраняющий обратный адрес на стеке) к предопределенному адресу (не записываемый к непривилегированному режиму) и переместиться, ЦП от непривилегированного режима до привилегированного режима (звоните 3 для вызова 0 в архитектуре Intel).

Аппаратные прерывания делают почти такую же вещь, они заставляют ЦП перейти (сначала сохраняющий обратный адрес на стеке) к предопределенному адресу и переместить ЦП от непривилегированного режима до привилегированного режима. Таким образом во многих центральных процессорах тот же механизм может быть вызван программным обеспечением (названный "программным прерыванием") и может использоваться для вызовов ЦП.

Передача сообщений подразумевает (мне, по крайней мере), что ядро является "рабочим процессом", который получит поток сообщений и что там существует непривилегированный режим доступная функция, которая отправит такие сообщения. Или могло случиться так, что "отправить" функция просто пихает значения на стеке и в следующий раз, когда ядро имеет контроль (или если процесс блокируется или прерывание, происходит), это выталкивает сообщения от стека и отправляет внутренним стандартным программам соответственно.

В архитектуре микроядра, где фактическое "ядро" очень минимально и большинство функций, которые обеспечивает ядро, перемещены в процессы "сервера", все из которых могут работать одновременно в системе мульти-ЦП, что-то вроде этого могло бы быть более полезным, чем простой подход системного вызова. Интерпретация и маршрутизация "сообщений" к соответствующему ядру "сервер" были бы одним из немногих заданий микроядра.

4
10.11.2010, 09:51
1 ответ

Это точно не отвечает на Ваш вопрос, но я отговорил бы от использования rsnapshot по NFS. Вы инвертируете основное преимущество rsync, который является способностью перевести небольшой объем данных по сети для обнаружения значительных частей идентичных данных. Rsync разработан для работания на основе ssh, где он может вызвать rsync сервер другой стороны соединения и общаться с ним с помощью своего собственного оптимизированного протокола, который использует прокручивающуюся контрольную сумму для идентификации идентичных данных. Когда rsync выполняется по NFS, и он думает, что файл мог бы отличаться из-за меток времени или размера, он должен загрузить весь файл по NFS, даже если это - только небольшое изменение, так как он не имеет никакого способа запросить удаленную сторону для контрольных сумм через данные.

1
27.01.2020, 21:02

Теги

Похожие вопросы