- •1. Операционные системы
- •2. Функциональные компоненты локальной ос
- •3. Назначение и функции сетевой ос
- •4. Функциональные компоненты сетевой ос
- •5. Коммуникационные средства
- •6. Классификация ос
- •8. Архитектура ос
- •9. Монолитные и многоярусные ядра
- •10. Функциональные компоненты Linux
- •11. Структура ядра
- •12. Функции слоёв ядра
- •13. Вспомогательные модули
- •14. Микроядерные системы
- •15. Объектная модель функционирования
- •16. Состав исполнительной системы WinNt
- •17. Совместимость
- •18. Множественные прикладные среды. Способы реализации
- •19. Интерфейсы ос
- •20. Файловая система
- •21. Логическая организация файла
- •22. Физическая организация файла
- •23. Общая модель фс
- •Непрерывное
- •2) Цепочечная
- •3) Фиксированный
- •Битовые карты (таблицы) – каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)
- •Цепочки сводных свободных порций
- •Список свободных блоков
- •Индексированный
- •24. Функции фс
- •25. Фс unix-подобных ос
- •26. Структура фс
- •27. Структура фс базовых unix-подобных ос
- •28. Архитектура виртуальной фс
- •29. Последовательность действий при монтировании
- •30. Файловые дескрипторы и трансляция имён
- •31. Физическая организация fat
- •32. Физическая организация ntfs
- •33. Управление процессами
- •34. Контекст и дескриптор
- •35. Структура контекста процесса
- •36. Планирование и диспетчеризация
- •37. Алгоритмы планирования
- •38. Планирование и диспетчеризация в unix системах
- •39. Управление процессами в unix-подобных системах
- •40. Атрибуты, инфраструктура процесса
- •41. Создание процессов
- •42. Этап exec()
- •43. Межпроцессные взаимодействия (ipc)
- •44. Каналы (pipe)
- •45. Fifo
- •46. Пространство имен
- •47. Сообщения
- •48. Семафоры
- •49. Разделяемая память
- •50. Сигналы
- •51. Последовательность событий
- •52. Функции управления процессами
- •53. Сообщения в микроядерных ос.
- •54. Процессы и потоки в WinNt
- •55. Базовая структура процесса, создание процесса в WinNt
- •56. Основные различия управления процессами в различных средах
- •57. Состав потока в WinNt и контекст потока
- •58. Передача сообщений с помощью lpc (локальный вызов процедур)
- •59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
- •60. Система ввода-вывода в Win nt
- •61. Реализация свв в Windows nt
- •62. Унифицированная модель драйвера
- •63. Формат пакета irp
- •64. Структура драйвера
- •65. Редиректор и сервер. Встроенные сетевые компоненты
28. Архитектура виртуальной фс
Физические носители: hard disk, floppy, compact.
Ядро поддерживает возможность работы с различными ФС.
Поля struct vfs
-
Переменная
Смысл
struct vfs *vfs_next
struct vfsops *vfs_ops
struct vnode *vfs_vnodecovered
int vfs_flags
int vfs_bsize
caddr_t vfs_data
…
Следующая ФС
Операции над ФС
Связь с точкой монтирования
Флаги чтения/записи
Размер блока ФС
Указатель на специальные данные реальной ФС
Активный файл – такой, на который ссылается хотя бы один процесс.
Метаданные всех активных файлов, представленных в памяти в виде in_core_inode, хранятся в структуре vnode. Структура vnode одинакова для всех файлов, принадлежащих всем различным ФС. В vnode хранятся неизменные характеристики файла.
Необходим для функционирования ФС.
Поля struct vnode
-
Переменная
Смысл
int v_flag
int v_count
struct filock *v_filocks
struct vfs *v_vfsmountedhere
struct vfs *v_vfsp
struct vfs v_type
struct vfs v_date
struct moleops *v_op
Флаги vnode
Число ссылок на vnode
Блокировки файлов
Указатель на точку монтирования
Указатель на ФС, где находится файл
Тип vnode (regular, dir, link etc)
Данные
Операции vnode, которые разрешены для конкретного файла
Различные ФС представлены данными в ядре – структурами vfs.
Метаданные, всех открытых файлов, на которые ссылается один или несколько процессов представлены в структуре vnode (одинаковы для всех файлов независимо от ФС, в которой они содержатся).
Информация о реальном представлении в ядре содержится в структуре vfs.
Ещё одна структура описания файлов в ФС – vfs sw (switch).
Поля: имя типа ФС, адрес процедуры инициализации, указатель на вектор операций (vsw_vfops), флаги. При инициализации монтирования реальной ФС UNIX коммутирует … и адресует интерфейс для каждой ФС, поддерживаемой ядром.
29. Последовательность действий при монтировании
Утилита монтирования - 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).