Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Архитектура файловой системы NFS
Предоставляется доступ к каталогу (экспортируется) с подкаталогами. Информация об экспортируемых каталогах хранится в /etc/exports. При подключении эти каталоги монтируются к локальной файловой системе. Примеры монтирования удаленных файловых систем Протоколы файловой системы NFS Протокол - набор запросов и ответов, клиента и сервера. Используется два протокола: 1. Протокол управления монтирования каталогов 2. Протокол управления доступа к каталогам и файлам Реализация файловой системы NFS Структура уровней файловой системы NFS VFS (Virtual File System) - виртуальная файловая система. Необходима для управления таблицей открытых файлов. Записи для каждого открытого файла называются 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 - Process IDentifier) Завершение процесса Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess ): o Плановое завершение (окончание выполнения) o Плановый выход по известной ошибке (например, отсутствие файла) o Выход по неисправимой ошибке (ошибка в программе) o Уничтожение другим процессом Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти ( core image ), и компонентов таблицы процессов (в числе компонентов и его регистры). Иерархия процессов В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским. В таком случае в UNIX существует и прародитель всех процессов - процесс init. Дерево процессов для систем UNIX Состояние процессов Три состояния процесса: o Выполнение (занимает процессор) o Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу) o Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода) Возможные переходы между состояниями. 1. Процесс блокируется, ожидая входных данных 2. Планировщик выбирает другой процесс 3. Планировщик выбирает этот процесс 4. Поступили входные данные Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания. На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания, и как только сервер получит запрос, процесс переходит из " ожидания" в " выполнение". Этот переход выполняется намного быстрее, чем запуск нового процесса. Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 740; Нарушение авторского права страницы