СОДЕРЖАНИЕ
1.2.1 Ос как виртуальная машина
1.2.2 Ос как система управления ресурсами
1.3 Интерфейс прикладного программирования
1.4 Структура операционных систем
1.4.2 Многоуровневая структура ос
1.4.4 Микроядерная архитектура (модель клиент-сервер)
1.4.5 Обобщение сравнения моделей
2.2.3 Преимущества использования потоков
2.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное
2.2.5 Особенности реализации Windows
3.1 Взаимодействие между процессами
3.1.1 Передача информации от одного процесса другому
3.1.4 Взаимное исключение с активным ожиданием
3.1.5 Примитивы взаимодействия процессов
4.1 Основные понятия планирования процессов
4.2 Планирование в системах пакетной обработки
4.3.2 Приоритетное планирование
4.3.3 Методы разделения процессов на группы
4.4 Планирование в системах реального времени
4.4.1 Планирование однородных процессов
4.4.2 Общее планирование реального времени
5.1 Взаимоблокировка процессов
5.2 Моделирование взаимоблокировок
5.3 Методы борьбы с взаимоблокировками
5.3.1 Пренебрежением проблемой в целом (страусовый алгоритм)
5.3.2 Обнаружение и устранение взаимоблокировок
5.3.3 Динамическое избежание взаимоблокировок
5.3.4 Предотвращение четырех условий, необходимых для взаимоблокировок
6.2 Методы без использования внешней памяти
6.2.1 Однозадачная система без подкачки на диск
6.2.2 Распределение памяти с фиксированными разделами.
6.2.3 Распределение памяти динамическими разделами
6.3 Методы с использованием внешней памяти (свопинг и виртуальная память)
7.1 Алгоритмы замещения страниц
7.2.1 Политика распределения памяти
7.2.3 Совместно используемые страницы
7.2.4 Политика очистки страниц
7.3 Особенности реализации в unix
7.4 Особенности реализации в Windows
8.1 Основные понятия сегментации
8.2.1 Сегментация с использованием страниц: multics
8.2.2 Сегментация с использованием страниц: Intel Pentium
8.3 Особенности реализации в unix
9.1 Принципы аппаратуры ввода-вывода
9.1.3 Отображаемый на адресное пространство памяти ввод-вывод
9.1.4 Прямой доступ к памяти (dma - Direct Memory Access)
9.2 Принципы программного обеспечения ввода-вывода
9.2.1 Задачи программного обеспечения ввода-вывода
9.2.3 Управляемый прерываниями ввод-вывод
9.2.4 Ввод-вывод с использованием dma
9.3 Программные уровни и функции ввода-вывода
9.3.3 Независимое от устройств программное обеспечение ввода-вывода
9.3.4 Программное обеспечение ввода-вывода пространства пользователя
9.3.5 Обобщение уровней и функций ввода-вывода
10.1.2 Raid (Redundant Array of Independent Disk - массив независимых дисков с избыточностью)
10.1.3.1 Компакт-диски с возможностью записи cd-r
10.1.3.2 Многократно перезаписываемые компакт-диски cd-rw
10.1.3.3 Универсальный цифровой диск dvd (Digital Versatile Disk)
10.2 Форматирование дисков (программная часть)
10.2.1 Низкоуровневое форматирование
10.2.3 Высокоуровневое форматирование
10.3 Алгоритмы планирования перемещения головок
10.3.1 Алгоритм "первый пришел - первым обслужен" fcfs (First Come, First Served)
10.3.3 Алгоритмы сканирования (scan, c-scan, look, c-look)
10.5 Стабильное запоминающее устройство
10.6.1 Аппаратная часть таймеров
10.6.2 Программное обеспечение таймеров
11.1.7 Файлы, отображаемые на адресное пространство памяти
12.2.3 Связные списки при помощи таблиц в памяти
12.3.1 Реализация длинных имен файлов
12.3.2 Ускорение поиска файлов
12.3.2.1 Использование хэш-таблицы для ускорения поиска файла.
12.3.2.2 Использование кэширования результатов поиска файлов для ускорения поиска файла.
12.4 Совместно используемые файлы
12.5 Организация дискового пространства
12.6 Надежность файловой системы
12.6.2 Непротиворечивость файловой системы
12.7 Производительность файловой системы
13.1.2 Рок-ридж расширения для unix
13.1.3 Joliet расширения для Windows
13.2 Файловая система ms-dos (fat-12,16,32)
13.2.4 Расширение Windows 98 для fat-32
14.1.2 Блокировка данных файла
14.1.3 Создание и работа с файлом
14.4 Сравнительная таблица некоторых современных файловых систем
14.4.1 Архитектура файловой системы nfs
XFS - журналируемая файловая система разработанная Silicon Graphics, но сейчас выпущенная открытым кодом (open source).
Официальная информация на http://oss.sgi.com/projects/xfs/
XFS была создана в начале 90ых (1992-1993) фирмой Silicon Grapgics (сейчас SGI) для мультимедийных компьютеров с ОС Irix. Файловая система была ориентирована на очень большие файлы и файловые системы. Особенностью этой файловой системы является устройство журнала - в журнал пишется часть метаданных самой файловой системы таким образом, что весь процесс восстановления сводится к копированию этих данных из журнала в файловую систему. Размер журнала задается при создании системы, он должен быть не меньше 32 мегабайт; а больше и не надо - такое количество незакрытых транзакций тяжело получить.
Некоторые особенности:
Более эффективно работает с большими файлами.
Имеет возможность выноса журнала на другой диск, для повышения производительности.
Сохраняет данные кэша только при переполнении памяти, а не периодически как остальные.
В журнал записываются только мета-данные.
Используются B+ trees.
Используется логическое журналирование
RFS (RaiserFS) - журналируемая файловая система разработанная Namesys.
Официальная информация на RaiserFS
Некоторые особенности:
Более эффективно работает с большим количеством мелких файлов, в плане производительности и эффективности использования дискового пространства.
Использует специально оптимизированные b* balanced tree (усовершенствованная версия B+ дерева)
Динамически ассигнует i-узлы вместо их статического набора, образующегося при создании "традиционной" файловой системы.
Динамические размеры блоков.
JFS (Journaled File System) - журналируемая файловая система разработанная IBM для ОС AIX, но сейчас выпущенная как открытый код.
Официальная информация на Journaled File System Technology for Linux
Некоторые особенности:
Журналы JFS соответствуют классической модели транзакций, принятой в базах данных
В журнал записываются только мета-данные
Размер журнала не больше 32 мегабайт.
Асинхронный режим записи в журнал - производится в моменты уменьшения трафика ввода/вывода
Используется логическое журналирование.
|
|
NTFS |
EXT3 |
RFS |
XFS |
JFS |
|
Хранение информации о файлах |
MFT |
inode |
inode |
inode |
inode |
|
Максимальный размер раздела |
16 Эбайт |
4 Тбайт |
4 гигаблоков (т.к. блоки динамические) |
18 тыс. Пбайт |
32 Пбайт |
|
Размеры блоков |
от 512 байт до 64 Кбайт |
1 Кбайт - 4 Кбайт |
До 64 Кбайт (сейчас фиксированы 4 Кбайт) |
от 512 байт до 64 Кбайт |
512/1024/ 2048/4096 байт |
|
Максимальное число блоков |
2^48 |
2^32 |
|
|
2^32 |
|
Максимальный размер файла |
|
2 Гбайт |
4 Гбайт |
9 тыс. Пбайт |
4 Пбайт |
|
Максимальная длина имени файла |
255 |
255 |
|
|
|
|
Журналирование |
Да |
Да |
Да |
Да |
Да |
|
Управление свободными блоками |
|
Нет |
На основе битовой карты |
B-деревья, индексированные по смещению и по размеру |
Дерево+ Binary Buddy |
|
Экстенты для свободного пространства |
|
Нет |
Нет |
Да |
Нет |
|
B-деревья для элементов каталогов |
Да |
Нет |
Как поддерево основного дерева файловой системы |
Да |
Да |
|
B-деревья для адресации блоков файлов |
|
Нет |
Внутри основного дерева файловой системы |
Да |
Да |
|
Экстенты для адресации блоков файлов |
|
Нет |
Да (с 4 версии) |
Да |
Да |
|
Данные внутри inode (небольшие файлы) |
|
Нет |
Да |
Да |
Нет |
|
Данные симво-льных ссылок внутри inode |
|
Нет |
Да |
Да |
Да |
|
Элементы каталогов внутри inode (небольшие каталоги) |
|
Нет |
Да |
Да |
Да |
|
Динамическое выделение inode/MFT |
Да |
Нет |
Да |
Да |
Да |
|
Структуры управления динамически выделяемыми inode |
|
Нет |
Общее B*дерево |
B+дерево |
B+дерево с непрерывными областями inode |
|
Поддержка разреженных файлов |
Да |
Нет |
Да |
Да |
Да |
NFS (Network File System) - сетевая файловая система. Создана для объединения файловых систем по сети.
Предоставляется доступ к каталогу (экспортируется) с подкаталогами. Информация об экспортируемых каталогах хранится в /etc/exports. При подключении эти каталоги монтируются к локальной файловой системе.

Примеры монтирования удаленных файловых систем
Протокол - набор запросов и ответов, клиента и сервера.
Используется два протокола:
Протокол управления монтирования каталогов
Протокол управления доступа к каталогам и файлам

Структура уровней файловой системы NFS
VFS (Virtual File System) - виртуальная файловая система. Необходима для управления таблицей открытых файлов.
Записи для каждого открытого файла называются v-узлами (virtual i-node).
VFS используется не только для NFS, но и для работы инородными файловыми системами (FAT, /proc и т.д.)
Алгоритм работы NFS (рассмотрим последовательность системных вызовов mount, open и read):
Вызывается программа mount, ей указывается удаленный каталог и локальный каталог для монтирования.
Программа ищет сервер, соединяется с ним.
Запрашивает дескриптор каталога.
Программа mount обращается к системному вызову mount для монтирования полученного каталога.
Ядро формирует v-узел для открытого удаленного каталога.
Ядро формирует r-узел (удаленный i-узел) для удаленного каталога в своих внутренних таблицах. В результате v-узел указывает либо на r-узел для удаленного каталога, либо на i-узел одной из локальных файловых систем.
Система просит программу клиента NFS открыть файл.
Создаются v-узел и r-узел для удаленного файла.
Вызывающему процессу выдается дескриптор удаленного файла.
Теперь этот процесс может работать с файлом, используя вызов read.
Литература
Современные операционные системы, Э. Таненбаум, 2002, СПб, Питер, 1040 стр., (в djvu 10.1Мбайт) подробнее>>
Сетевые операционные системы Н. А. Олифер, В. Г. Олифер (в zip архиве 1.1Мбайт)
Сетевые операционные системы Н. А. Олифер, В. Г. Олифер, 2001, СПб, Питер, 544 стр., (в djvu 6.3Мбайт) подробнее>>
| 2014 biblioonline ru |