Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Последовательность действий при монтировании




Утилита монтирования - mount. Демонтирования – umont. Аргументы – точка монтирования.

Аргументы:

- тип ФС;

- точка монтирования;

- дополнительны данные, связанные с реальной ФС;

- флаг (если требуются).

Для QNX: mount dos /dev/mnt/fd0. Для UNIX: mount dos /dev/fd0/mnt

Точка монтирования.

При монтировании осуществляются следующие действия:

1) Поиск vnode (lookup(), name_i()), соответствующей точке монтирования.

2) Проверяется, является ли vnode каталогом и не используется ли другими ФС данная (.) монтир-ия.

3) Поиск элемента-коммутатора ФС vfssw, который соответствует типу монтируемой ФС.

4) Процедура инициализации этого элемента (размещение специальных данных) – init().

5) Ядро размещает структуру vfs и помещает указатель vfs в список подключённых ФС.

6) Заполнение поля *vfs_vnodecovered. Сюда записывается ссылка на точку монтирования. Вычисление этого указателя производится с учетом всех путей. Если ФС – корневая (root) – записывается 0.

7) Заполнение поля *vfs_op – указатель на список операции, определённых для данной ФС.

8) Указатель на данный элемент (vfs) сохраняется в *v_vfsmountedhere/

9) Вызов функции vfs_mount() для данной ФС, он имеет возможность формировать реальную ФС.

Происходит проверка прав монтирования ФС:

- размещение и инициализация файлов данного типа;

- размещение vnode для корневого каталога, подключённого для данной ФС, доступ к которому возможен с помощью операции vfs_root.

10) После подключения ФС, она м.б. адресована по имени точки монтирования (/mnt либо /dev/fd0).

 

30. Файловые дескрипторы и трансляция имён

 

Прикладные процессы работают с файлами и модифицируют их. При работе с фалами мы работаем либо с файловыми дескрипторами, либо с именами. Ядро же различает файлы по индексному дескриптору => требуется установка соответствия между файловыми дескрипторами и индексными дескрипторами. В большинстве случаев используется трансляция имен.

Системные вызов, требующие трансляции имен: exec(), chown(), chgrp(), chmod(), rmdir, mkdir, mknode, open(), link()…

Для трансляции имен существенно указывать полный или относительный путь к файлу.

Если есть точка монтирования, то для проведения трансляции необходимо выполнить vfs_root() для перехода через точку монтирования, в результате которого получается vnode корневой системы.

Трансляция продолжается до тех пор, пока не будут просмотрены все имена. В результате завершения операции трансляции – возвращении виртуального дескриптора.

Доступ к ФС из процесса.

 

В системной таблице содержится следующая информация:

F_flag = fread;

F_cont=2;

F_vnode=03564; *

F_offset=0x32;

 

F_flag = fwrite;

F_cont=1;

F_vnode=03304; **

F_offset=0x16;

 

Окончательная таблица.

 

Виртуальная ФС позволяет пройти от пользовательского процесса до устройства.

Файловые дескрипторы получаются процессом в результате системных вызовов из пользовательских приложений. Файловый дескриптор – индекс в таблице файловых дескрипторов каждого из процессов. Хранится эта таблица в u_area каждого процесса.

 

Существует системная таблица, в которую переписывается информация из всех таблиц ФД всех активных процессов. Поскольку эта системная таблица одна на всех – возможны повторения. Каждая активная запись представляет открытый файл и адресует область таблицы. Существует суммарная таблица виртуальных дескрипторов, где каждый файл упоминается 1 раз. Делается соответствующая запись и по этим записям имеется возможность обратиться к реальной ФС, используя вышеописанные структуры.





Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 420 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2538 - | 2391 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.