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

5. Передача путей между процессами

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

При прохождении пути между процессами, чьи сетевые корни могут отличаться (например при передаче файла к спулеру для печати), Вы должны привязать корень сети по умолчанию к пути перед его принятием процессом-получателем. Если вы уверены, что процесс посылающий и процесс получающий имеют один и тот же корень сети по умолчанию (или если путь уже имеет продвижение // node /), то Вы можете опустить этот шаг в процесс

Лекция № 11.

Условные префиксы для управления процессами ввода – вывода

План лекции:

1. Условные префиксы

2. Относительные пути

3. Текущий рабочий каталог

4. Описатели файлов пространства

1. Условные префиксы

Мы обсудили префиксы, которые отображают управление ресурсами ввода - вывода. Вторая форма префикса, известная как условный префикс , является простой строкой подстановки для согласованного префикса. Префикс условного названия имеет форму:

prefix =replacement-string

Например, предположите, что вы работаете на машине, которая не имеет локальной файловой системы (не существует процессов управляющих "/"). Однако, имеется файловая система на другом узле (предположим на 10) к которой Вы желаете обратиться как к "/". Вы оформляете это использование следующим условным префиксом:

/ = // 10/

это заставит ведущую наклонную черту вправо (/) быть отображенным в префикс // 10/. Например, /usr/dtdodge/test будет заменен следующим выражением:

// 10/usr/dtdodge/test

Новый путь будет сопоставлен с префиксным деревом: на сей раз, однако, префиксное дерево на узле 10 будет использоваться из-за, того что сначала следует // 10. Он будет определен администратором файловой системы на узле 10, где формируется open(). Это условное название позволило нам, чтобы обратиться к удаленной фаловой системе, как к локальной.

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

/dev = 5, a: / = // 10/

с этим префиксным деревом, пути под /dev будут направлены к локальному администратору устройств, в то время как запросы с другими путями будут направлены к удаленным файловым системам.

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

/dev/printer = // 20/dev/spool

Любой запрос, чтобы открыть /dev/printer будет направлен через сеть к реальному спулеру. Аналогично, если локальный дисковод для гибких дискет не существует, псевдоним на отдаленную дискету на узле 20 мог бы быть сделан следующим образом:

/dev/fd0 = // 20/dev/fd0

В обоих случаях, переадресация псевдонима могла бы быть обойдена, и отдаленный ресурс мог бы быть непосредственно назван как:

// 20/dev/spool ИЛИ // 20/dev/fd0