
- •1. Назначение и функции операционных систем. Принципы построения операционных, систем.
- •3. Принципы управления памятью. Распределение памяти. Организация виртуальной памяти.
- •4. Назначение и функции файловой системы. Организация данных на носителе.
- •Основные функции подсистемы управления вводом-выводом. Способы организации обмена данными. Управление обменом. Буферизация.
- •6. Процессы в ос unix. Типы процессов. Атрибуты процессов. Планирование выполнения процессов в ос unix. Таймеры. Порождение и завершение процессов в ос unix.
- •7.Организация взаимодействия процессов в ос unix
- •8. Файловая система в ос unix. Дескрипторы и атрибуты файлов в ос unix.
- •9 Архитектура виртуальной файловой системы. Монтирование и доступ к файловым системам.
9 Архитектура виртуальной файловой системы. Монтирование и доступ к файловым системам.
.
Каждая ФС делится на зависимый и независимый от реализации уровни. Независимый уровень – виртуальная ФС – для остальных подсистем ядра представляет некоторую абстрактную ФС. На уровне vfs – виртуальные методанные, следовательно виртуальный индексный дескриптор vnode. Он содержит поле v_data (указатель на данные, относящиеся к реальной ф.с.), v_op (операции vnode, например, открыть, закрыть vnode, прочитать данные файла, адресованого vnode, записать в файл и т.д.) и др.
Монтирование ФС.
ФС должна быть встроена в существующее иерархическое дерево. Тогда ядро сможет выполнить файловые операции – это называется монтированием.
Каждая монтированная ФС представлена на независимом уровне в виде структуры vfs – аналоге записи таблицы монтирования дисковой ФС. Структуры vfs всех монтированных ФС организованы в виде односвязаного списка, в совокупности обеспечивая информацию, необходимую для обслуживания всего иерархического дерева, информацию о реальной ФС, которые изменяются на протяжении работы. Первая запись списка - всегда корневая ФС.
Для инициализации и монтирования ФС UNIX хранит коммутатор ФС.
Монтирование ФС производится системный вызовом mont(). В качестве аргументов передаются:
тип монтируемой ФС
имя каталога, к которому монтируется ФС
флаги (например, доступ к ФС только для чтения)
дополнительные данные
При этом производится поиск vnode, соответствующего файлу - точке монтирования и проверка что файл является каталогом и не используется в настоящее время для монтирования других ФС. Затем происходит поиск элемента коммутатора ФС, соответствующего типу монтируемой ФС. Если такой элемент найден, вызывается операция инициализации. При этом выполняется размещение специфических для данного типа ФС данных Потом ядро размещает структуру vfs и помещает ее в связный список подключенных ФС. После подключения ФС может быть адресована по имени точки монтирования
Доступ к ФС.
Процесс совершает операции с файлами, адресуя их при помощи файловых дескрипторов- целых чисел, имеющих локальное для процесса значение. Процесс получает файловый дескриптор с помощью системных вызовов (open(), creat()), выполняющих операцию трансляции имени, в результате которой выделяемый файловый дескриптор адресует определенный inode (или vnode) и, соответственно, файл ФС. Процесс имеет таблицу файловых дескрипторов. Каждая активная запись таблицы(открытый файл) адресует запись системной файловой таблице (она используется всеми процессами).
Блокирование доступа у файлу. Для этого используется системный вызов fcntl() и библиотечная функция lockf. Рекомендательное блокирование – процессы могут руководствоваться блокировками, но ядро не запрещает чтение или запись в блокированный участок. Обязательное блокирование – ограничение на доступ накладывается самим ядром.