Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Лекций ПСРВ.doc
Скачиваний:
81
Добавлен:
12.02.2016
Размер:
2.73 Mб
Скачать

5.6. Управление пространством путевых имен

Пространство путевых имен является одной из особенностей ОС QNX. Дело в том, что управление ресурсами ввода/вывода не встроено в микроядро, а реализуется посредством администраторов ресурсов. Например, записью файлов на диск управляет Администратор файловой системы, отправкой данных по сети — Администратор сети. Для того, что бы интегрировать услуги администраторов ресурсов в операционную систему Администратор процессов предоставляет механизм пространства путевых имен.

5.7. Пространство путевых имен

5.7.1. Файловая система qnx

В QNX файлы организованы в виде древовидной структуры (дерева), называемой файловым пространством. Корнем этого дерева является корневой каталог, имеющий имя </>. Все доступное пользователям файловое пространство объединено в единое дерево каталогов, корнем которого является каталог с именем </>. Поэтому полное (абсолютное) имя любого файла начинается с </>. Это, однако, не означает, что файловое пространство выражает собой только одну файловую систему. В общем случае единое дерево, такое, каким его видит пользователь системы, составлено из нескольких отдельных файловых систем, которые могут располагаться на различных устройствах и иметь различные внутренние организации. QNX располагает средствами, позволяющими объединять различные файловые системы, находящиеся на различных устройствах в единое дерево.

Заметим, что QNX более тонко определяет понятие имени файла. Имя файла рассматривается как атрибут файловой системы, косвенно связанный с набором некоторых данных на диске, который не имеет имени как такового. Каждый файл (набор данных) имеет связанные с ним метаданные (хранящиеся в индексных дескрипторах - inode), содержащие все характеристики файла и позволяющие операционной системе управлять выполнением операций, заказанных прикладной задачей: открыть файл, прочитать или записать данные, создать или удалить файл. В частности, метаданные содержат указатели на дисковые блоки хранения данных файла. Имя файла в файловой системе рассматривается как ссылка на его метаданные, в то время как метаданные не содержат сведений об имени файла.

Для каждого процесса ОС ведет два атрибута, связанных с файловой системой – атрибут, указывающий на каталог, который рассматривается для процесса в качестве корневого, и атрибут, указывающий на каталог, который рассматривается для процесса в качестве текущего рабочего. В связи с этим процесс может адресоваться к файлу по имени либо в абсолютном, либо в относительном формате. Имя файла состоит из последовательности компонентов – локальных имен, разделенных символами '/'. Каталог, содержащий локальное имя, считается родительским каталогом этого имени. Последовательность имен каталогов, предшествующая последнему локальному имени в имени файла, считается префиксом имени файла. Абсолютное имя файла начинается с символа '/', обозначающего корневой каталог. Например, /user/bin/sh является абсолютным именем файла sh, а /user/bin/ - его префикс. Если имя файла не начинается с символа '/', то оно обозначает путь в файловой системе от текущего каталога процесса до указанного файла. Такое имя считается относительным. Например, mydir/test1.c.

Каждый каталог всегда содержит две скрытых системных жестких ссылки на каталоги. Первая ссылка имеет локальное имя ".". Она ссылается на свой родительский каталог. Вторая ссылка имеет локальное имя "..". Она ссылается на родительский каталог своего родительского каталога. Исключение составляет корневой каталог. Для него имя "." означает то же, что и имя "..". Например, имя ../andy/mydir/test1.c заставляет искать файл, начав с поиска локального имени andy в каталоге, являющемся родительским для текущего каталога.

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