
- •1. Управление процессами
- •1.1 Операции над процессами
- •1.2 Обработка прерываний
- •2. Иерархическая структура ос.
- •2.1 Понятие параллельных и асинхронных процессов
- •2.2 Алгоритм Деккера.
- •2.3 Аппаратная реализация взаимоисключения
- •2.4 Реализация взаимоисключения с помощью семафоров
- •3. Тупиковые ситуации
- •3.1 Четыре необходимых условия возникновения тупика
- •3.2 Основные направления исследований по проблеме тупиков
- •3.3 Предотвращение тупиков, 3 стратегических принципа.
- •3.5 Обнаружение тупиков
- •3.6 Восстановление после тупиков
- •4. Управление памятью
- •4.1 Организация памяти
- •4.2 Стратегии управления памятью
- •4.3 Связное и несвязное распределение памяти
- •4.4 Мультипрограммирование с фиксированными разделами
- •4.5 Мультипрограммирование с переменными разделами
- •4.6 Стратегии размещения информации в памяти
- •5. Организация виртуальной памяти
- •5.1 Страничная организация памяти
- •5.2 Сегментная организация памяти
- •5.3 Странично-сегментная организация памяти
- •5.4 Стратегии управления виртуальной памятью
- •5.5 Принцип локальности
- •5.6 Стратегии вталкивания страниц
- •6. Управление процессорами
- •6.1 Уровни планирования загрузки процессоров
- •6.2 Цели планирования
- •6.3 Принципы планирования
- •7 Управление внешней памятью
- •8. Производительность
- •8.1 Методы оценки производительности
- •9. Операционная система ms-dos – структура и механизмы
- •9.1 Этапы загрузки ms-dos
- •9.2 Параметры загрузки ms-dos
- •9.3 Структура диска в ms-dos
- •9.4 Использование памяти системой ms-dos
- •9.5 Средства использования памяти
- •10. Операционная система windows 9.X
- •10.1 Сравнение dos и Windows 9.X
- •10.2 Windows 9.X Функции операционной системы
- •10.3 Виртуальная адресация памяти Windows 9.X
- •10.4 Виртуальные машины ос Windows 9.X
- •10.5 Процессы и сообщения в ос Windows 9.X
- •10.6 Планирование приоритетов
- •10.7 Файловая система Windows 9.X
- •11. Операционная система unix
- •11.1 Структура ос unix
- •11.2 Файловая система ос unix
- •11.3 Типы файлов.
- •11.4 Структура файловой системы unix.
- •11.4.1 Базовая файловая система. System V (s5fs).
- •11.4.2 Файловая система ffs.
- •11.5 Архитектура виртуальной файловой системы.
- •11.6 Подсистема управления процессами
- •11.6.1 Типы процессов
- •11.6.2 Атрибуты процесса.
- •11.6.3 Состояния процесса.
- •11.7 Принципы управления памятью
- •11.8 Планирование выполнения процессов
- •11.9 Взаимодействия между процессами
- •12. Загрузка ос windows 2000
- •12.3 Загрузка и инициализация драйверов устройств
- •12.6.1 Раздел [boot loader]
- •12.6.2 Раздел [operating systems]
- •13 Файловая система windows nt (ntfs)
- •13 Новые возможности ntfs 5.0
- •14 Структура ntfs
- •14.1 Главная файловая таблица
- •14.2 Атрибуты файла ntfs
- •14.3 Системные файлы ntfs
- •14.4 Сравнение ntfs с hpfs и fat
- •15 Конфигурирование системы
11.5 Архитектура виртуальной файловой системы.
Несмотря на то, что различные типы файловых систем существенно отличаются по внутренней архитектуре, современные версии UNIX обеспечивают одновременную работу с несколькими типами файловых систем. Среди них можно выделить локальные файловые системы различной архитектуры, удаленные и даже отличные от файловой системы UNIX, например DOS. Такое сосуществование обеспечивается путем разделения каждой файловой системы на зависимый и независимый от реализации уровни, последний из которых является общим и представляет для остальных подсистем ядра некоторую абстрактную файловую систему. Независимый уровень также называется виртуальной файловой системой. При этом дополнительные файловые системы различных типов могут быть встроены в ядро UNIX подобно тому, как это происходит с драйверами устройств.
Прежде чем может состояться работа с файлами, соответствующая файловая система должна быть встроена в соответствующее иерархическое дерево. Только после этого ядро сможет выполнять файловые операции.
Каждая подключенная файловая система представлена на независимом уровне в виде структуры vfs. Структуры vfs всех подключенных файловых систем организованны в виде односвязного списка. Первой записью списка всегда является корневая файловая система. Структура vfs содержит следующие поля:
Vfs_next: следующая файловая система в списке монтирования;
Vfs_op: операции файловой системы;
Vfs_vnodecovered: (vnode) виртуальный индексный дескриптор, перекрываемый файловой системой. Структура данных vnode одинакова для всех файлов, независимо от типа реальной файловой системы, где фактически располагается файл.
Vfs_flag: флаги;
Vfs_bsize: размер блока файловой системы;
Vfs_data: указатель на специфические данные, относящиеся к реальной файловой системе.
Поле vfs_data содержит указатель на данные реальной файловой системы. Например для s5fs, это поле указывает на операции файловой системы, которые называются виртуальными методами объекта vfs. Поля vfs_op заполняются указателями на соответствующие функции реальной файловой системы при её монтировании.
Для инициализации и монтирования реальной файловой системы UNIX хранит коммутатор файловых систем, адресующий процедурный интерфейс для каждого типа файловой системы, поддерживаемой ядром. UNIX System V для этого использует глобальную таблицу, каждый элемент которой соответствует определенному типу реальной файловой системы.
Монтирование файловой системы производится системным вызовом mount(2). В качестве аргументов передаются тип монтируемой файловой системы, имя каталога, к которому подключается файловая система (точка монтирования), флаги (например доступ к файловой системе только для чтения) и дополнительные данные, вид и содержимое которых зависит от реализации реальной файловой системы. После подключения файловая система может быть адресована по имени точки монтирования.
11.6 Подсистема управления процессами
11.6.1 Типы процессов
Системные процессы – являются частью ядра и всегда расположены в оперативной памяти. Системные процессы не имеют соответствующих им программ в виде исполняемых файлов и запускаются при инициализации ядра системы. Выполняемые инструкции и данные этих процессов находятся в ядре системы. К этим процессам относятся различного рода диспетчеры (диспетчер страничного замещения, памяти ядра и др.). К системным процессам относится и init, являющийся прародителем всех остальных процессов в UNIX. Хотя init не является частью ядра и его запуск происходит из исполнительного файла.
Демоны – не интерактивные процессы, которые запускаются обычным образом – путем загрузки в память соответствующих им программ и выполняются в фоновом режиме. Обычно демоны запускаются при инициализации системы, но после инициализации ядра и обеспечивают работу различных подсистем UNIX: системы терминального доступа, системы печати, сетевого доступа и т.п. Демоны не связаны ни с одним пользователем и не могут непосредственно им управляться. Большую часть времени демоны ожидают пока какой-либо процесс запросит определенную услугу, например печать документа.
Прикладные процессы. К ним относятся все остальные процессы, выполняющиеся в системе. Как правило, эти процессы, порожденные в рамках пользовательского сеанса работы. Пользовательские процессы могут работать как в интерактивном, так и в фоновом режиме, но в любом случае время их жизни определено сеансом работы пользователя.