Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты Дорогов.docx
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

37 Билет

В ОС QNX Neutrino поддерживается большое число различных файловых систем. Как и большинство процессов, реализующих в ОС QNX Neutrino те или иные службы, файловые системы работают вне ядра. Приложения используют файловые системы посредством обмена сообщениями, которые генерируются с помощью программного интерфейса POSTX на основе разделяемых библиотек.

В архитектуре ОС QNX Neutrino большинство из этих файловых систем представляют собой администраторы ресурсов. Каждая файловая система получает свою область в пространстве имен путей (называемую точкой монтирования) и предоставляет свои службы посредством стандартного программного интерфейса POSIX {openQ, close(), read(), write(), lseek() и т. д.). Администраторы ресурсов файловой системы получают точку монтирования и управляют структурой каталогов ниже этой точки. Они также проверяют отдельные компоненты путевых имен на уровень разрешений и доступа.

Такая схема реализации имеет следующие преимущества:

- файловые системы можно запускать и останавливать динамически;

- множество файловых систем могут работать одновременно;

- приложения используют одно общее пространство путевых имен и единый интерфейс независимо от конфигурации и количества применяемых файловых систем;

- файловая система, которая используется на одном узле, является прозрачной для доступа с других узлов.

38 Билет

Механизм совмещения точек монтирования очень удобен с точки зрения динамического обновления версий программного обеспечения, обслуживания “на лету” и т. д. Кроме того, этот механизм увеличивает степень интеграции системы, так как имена путей позволяют устанавливать соединения независимо от того, какие службы они предоставляют, что, естественно, дает более унифицированный программный интерфейс.</p>

Символьные префиксы

Мы уже обсуждали префиксы, которые отображаются в администраторе ресурсов. Еще одной формой префикса является символьный префикс (symbolic prefix), который представляет собой простую символьную подстановку подходящего префикса.

Символьные префиксы создаются POSIX-командой in (от англ. слова link — связать). Эта команда в сочетании с ключом обычно используется для создания жестких или символьных связей в файловой системе. Если в дополнение задать ключ -р, то символьная связь будет создана в префиксном пространстве модуля procnto, которое расположено в оперативной памяти.

Следует обратить внимание на то, что символьная связь в дереве префиксов всегда предшествует символьной связи в файловой системе.

Например, допустим, у вас имеется машина, в которой нет локальной файловой системы. Однако на другом узле (назовем его neutron) существует файловая система, к которой вы хотите получить досту- по имени пути “/bin”. Это достигается с помощью следующего символьного префикса; In -Ps /net/neutron/bin /bin

В результате имя пути /bin будет отображено в /net/neutron/bin. Например, имя пути /bin/is будет преобразовано в следующее: /net/neutron/bin/Is

Это новое имя пути снова будет сопоставлено с деревом префиксов, но теперь соответствующим префиксом будет /net, указывающий на администратор ресурсов npm-qnet, который выполнит разрешение компонента neutron и переадресует последующие запросы на разрешение на узел neutron. На этом узле остальная часть путевого имени (т. е. /bin/is) будет разрешена в соответствии с содержимым префиксного пространства на предыдущем узле, в результате чего произойдет переход к администратору файловой системы узла neutron, на который будет направлен запрос ореп(). Таким образом, с помощью всего лишь нескольких символов данный символьный префикс обеспечивает доступ к удаленной файловой системе, как если бы она была локальной.

Мы видим, что для осуществления такой переадреса ц и и нет необходимости иметь локальный процесс, реализующий файловую систему. На рабочей станции, не оснащенной дисками, дерево префиксов может выглядеть, например, следующим образом.

В соответствии с данным деревом префиксов, такие локальные устройства, как, например, /dev/seri и /dev/concole, будут перенаправлены (routed) на локальный администратор устройств символьного ввода/вывода, а запросы к другим путевым именам будут перенаправлены на удаленную файловую систему.