Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 190 из 715



алгоритм mount

входная информация:

 имя блочного специального файла

 имя каталога точки монтирования

 опции («только для чтения»)

выходная информация: отсутствует

{

 if (пользователь не является суперпользователем)  return (ошибку);

 получить индекс для блочного специального файла (алгоритм namei);

 проверить допустимость значений параметров;

 получить индекс для имени каталога, где производится монтирование (алгоритм namei);

 if (индекс не является индексом каталога или счетчик ссылок имеет значение › 1)  {

  освободить индексы (алгоритм iput);

  return (ошибку);

 }

 найти свободное место в таблице монтирования;

 запустить процедуру открытия блочного устройства для данного драйвера;

 получить свободный буфер из буферного кеша;

 считать суперблок в свободный буфер;

 проинициализировать поля суперблока;

 получить корневой индекс монтируемой системы (алгоритм iget), сохранить его в таблице монтирования;

 сделать пометку в индексе каталога о том, что каталог является точкой монтирования;

 освободить индекс специального файла (алгоритм iput);

 снять блокировку с индекса каталога точки монтирования;

}

Рисунок 5.23. Алгоритм монтирования файловой системы

На Рисунке 5.23 показан алгоритм монтирования файловой системы. Ядро позволяет монтировать и демонтировать файловые системы только тем процессам, владельцем которых является суперпользователь. Предоставление возможности выполнять функции mount и umount всем пользователям привело бы к внесению с их стороны хаоса в работу файловой системы, как умышленному, так и явившемуся результатом неосторожности. Суперпользователи могут разрушить систему только случайно.

|< Пред. 188 189 190 191 192 След. >|

Java книги

Контакты: [email protected]