Архитектура файловой системы NFS
Предоставляется доступ к каталогу (экспортируется) с подкаталогами. Информация об экспортируемых каталогах хранится в /etc/exports. При подключении эти каталоги монтируются к локальной файловой системе.
Примеры монтирования удаленных файловых систем
Протоколы файловой системы NFS
Протокол - набор запросов и ответов, клиента и сервера.
Используется два протокола:
1. Протокол управления монтирования каталогов
2. Протокол управления доступа к каталогам и файлам
Реализация файловой системы NFS
Структура уровней файловой системы NFS
VFS (VirtualFileSystem) - виртуальная файловая система. Необходима для управления таблицей открытых файлов.
Записи для каждого открытого файла называются v-узлами (virtual i-node).
VFS используется не только для NFS, но и для работы инородными файловыми системами (FAT, /proc и т.д.)
Алгоритм работы NFS (рассмотрим последовательность системных вызовов mount, open и read):
1. Вызывается программа mount, ей указывается удаленный каталог и локальный каталог для монтирования.
2. Программа ищет сервер, соединяется с ним.
3. Запрашивает дескриптор каталога.
4. Программа mount обращается к системному вызову mount для монтирования полученного каталога.
5. Ядро формирует v-узел для открытого удаленного каталога.
6. Ядро формирует r-узел (удаленный i-узел) для удаленного каталога в своих внутренних таблицах. В результате v-узел указывает либо на r-узел для удаленного каталога, либо на i-узел одной из локальных файловых систем.
|
|
7. Система просит программу клиента NFS открыть файл.
8. Создаются v-узел и r-узел для удаленного файла.
9. Вызывающему процессу выдается дескриптор удаленного файла.
10. Теперь этот процесс может работать с файлом, используя вызов read.
Процессы
Понятие процесса
Процесс (задача) - программа, находящаяся в режиме выполнения.
С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.
Адресное пространство содержит:
o саму программу
o данные к программе
o стек программы
С каждым процессом связывается набор регистров, например:
o счетчика команд (в процессоре) - регистр в котором содержится адрес следующей, стоящей в очереди на выполнение команды. После того как команда выбрана из памяти, счетчик команд корректируется и указатель переходит к следующей команде.
o указатель стека
o ид.р.
Во многих операционных системах вся информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в таблице процессов операционной системы.
Некоторые поля таблицы:
Управление процессом | Управление памятью | Управление файлами |
Регистры Счетчик команд Указатель стека Состояние процесса Приоритет Параметры планирования Идентификатор процесса Родительский процесс Группа процесса Время начала процесса Использованное процессорное время | Указатель на текстовый сегмент Указатель на сегмент данных Указатель на сегмент стека | Корневой каталог Рабочий каталог Дескрипторы файла Идентификатор пользователя Идентификатор группы |
Модель процесса
|
|
В многозадачной системе реальный процессор переключается с процесса на процесс, но для упрощения модели рассматривается набор процессов, идущих параллельно (псевдопараллельно).
Рассмотрим схему с четырьмя работающими программами.
В каждый момент времени активен только один процесс
С права представлены параллельно работающие процессы, каждый со своим счетчиком команд. Разумеется, на самом деле существует только один физический счетчик команд, в который загружается логический счетчик команд текущего процесса. Когда время, отведенное текущему процессу, заканчивается, физический счетчик команд сохраняется в памяти, в логическом счетчике команд процесса.
Создание процесса
|
|
Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess):
o Загрузка системы
o Работающий процесс подает системный вызов на создание процесса
o Запрос пользователя на создание процесса
Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.
В UNIX каждому процессу присваивается идентификатор процесса ( PID - ProcessIDentifier)
Завершение процесса
Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess):
o Плановое завершение (окончание выполнения)
o Плановый выход по известной ошибке (например, отсутствие файла)
o Выход по неисправимой ошибке (ошибка в программе)
o Уничтожение другим процессом
Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти(coreimage), и компонентов таблицы процессов (в числе компонентов и его регистры).
Иерархия процессов
В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским.
|
|
В таком случае в UNIX существует и прародитель всех процессов - процесс init.
Дерево процессов для систем UNIX
Состояние процессов
Три состояния процесса:
o Выполнение (занимает процессор)
o Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)
o Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)
Возможные переходы между состояниями.
1. Процесс блокируется, ожидая входных данных
2. Планировщик выбирает другой процесс
3. Планировщик выбирает этот процесс
4. Поступили входные данные
Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.
На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания, и как только сервер получит запрос, процесс переходит из "ожидания" в "выполнение". Этот переход выполняется намного быстрее, чем запуск нового процесса.
Дата добавления: 2018-08-06; просмотров: 236; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!