- •Классификация, критерии оценки и структура ос.
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Основные функции и структура ос
- •Классификация и архитектура внешних устройств. Классификация периферийных устройств и их архитектура
- •Способы организации ввода/вывода. Синхронный и асинхронный ввод/вывод. Архитектура подсистемы ввода/вывода
- •Ввод/вывод по опросу и по прерываниям
- •Активное и пассивное ожидание
- •Синхронный и асинхронный ввод/вывод
- •Буферизация и кэширование.
- •Сглаживание неравномерности скоростей процессов
- •Распараллеливание ввода и обработки
- •Согласование размеров логической и физической записи
- •Редактирование при интерактивном вводе
- •Кэширование дисков
- •Опережающее чтение.
- •Драйверы устройств. Типовая структура драйвера.
- •Уровни доступа к устройствам в ms-dos. Драйверы устройств ms-dos.
- •Драйверы устройств в ms-dos
- •Управление символьными устройствами в ms-dos. (На примере клавиатуры) Управление символьными устройствами
- •Управление блочными устройствами в ms-dos. (Структура диска) Управление блочными устройствами Структура диска
- •Разделы и логические тома
- •Управление устройствами в Windows и unix. Управление устройствами в Windows Драйверы устройств в Windows
- •Управление устройствами в unix Драйверы устройств в unix
- •Устройство как специальный файл
- •Характеристики файлов и архитектура файловых систем.
- •Размещение файлов.
- •Разделение файлов между процессами. Разделение файлов между процессами
- •Файловая система fat. Структуры данных на диске, создание и удаление файлов. Файловая система fat и управление данными в ms-dos Общая характеристика системы fat
- •Структуры данных на диске
- •Создание и удаление файла
- •Работа с файлами в ms-dos. Хэндлы. Внутренние структуры данных подсистемы управления данными (sft, jft). Работа с файлами в ms-dos. Системные функции.
- •Доступ к данным
- •Структуры данных в памяти
- •Архитектура файловой системы unix.
- •Жесткие и символические связи
- •Монтируемые тома
- •Типы и атрибуты файлов
- •Управление доступом к файлам в unix. Управление доступом
- •Структуры данных файловой системы unix.
- •Развитие файловых систем unix. Развитие файловых систем unix
- •Особенности файловой системы ntfs. Особенности файловой системы ntfs
- •Структуры дисковых данных
- •Главная таблица файлов
- •Атрибуты файла
- •Доступ к данным в Windows. Доступ к данным
- •Защита данных в Windows. Защита данных
- •Аутентификация пользователя
- •Дескриптор защиты
- •Процессы и ресурсы. Квазипараллельное выполнение процессов. Понятия процесса и ресурса
- •Квазипараллельное выполнение процессов
- •Состояния процесса. Состояния процесса
- •Вытесняющая и невытесняющая многозадачность. Вытесняющая и невытесняющая многозадачность
- •Дескриптор и контекст процесса. Реентерабельность системных функций. Дескриптор и контекст процесса
- •Реентерабельность системных функций
- •Дисциплины диспетчеризации и приоритеты процессов. Дисциплины диспетчеризации и приоритеты процессов
- •Изоляция и взаимодействие процессов. Проблема взаимного исключения. Изоляция процессов и их взаимодействие
- •Проблема взаимного исключения процессов
- •Двоичные семафоры Дейкстры. Средства взаимодействия процессов. Двоичные семафоры Дейкстры
- •Средства взаимодействия процессов
- •Целочисленные семафоры
- •Семафоры с множественным ожиданием
- •Сигналы
- •Сообщения
- •Общая память
- •Программные каналы
- •Проблема тупиков. Проблема тупиков
- •Процессы и нити в Windows.
- •Планировщик процессов в Windows. Планировщик Windows
- •Синхронизация нитей и функции ожидания в Windows. Синхронизация нитей. Способы синхронизации.
- •Объекты синхронизации и функции ожидания
- •Объекты синхронизации в Windows. Критические секции. Типы объектов синхронизации
- •Критические секции
- •Механизм обмена сообщениями в Windows.
- •Жизненный цикл процесса в unix. Группы процессов. Жизненный цикл процесса
- •Группы процессов
- •Программные каналы
- •Сигналы
- •Интерпретатор команд shell
- •Виртуальные и физические адреса
- •Распределение памяти без использования виртуальных адресов Настройка адресов
- •Распределение с фиксированными разделами
- •Распределение с динамическими разделами
- •40. Сегментная и страничная организация памяти. Сегментная организация памяти
- •Страничная организация памяти
- •Управление памятью в Windows Структура адресного пространства
- •Регионы
- •Отображение исполняемых файлов
- •Файлы, отображаемые на память
- •Стеки и кучи
Структуры данных файловой системы unix.
Дисковый том UNIX состоит из следующих основных областей:
блок начальной загрузки (BOOT-сектор); его структура определяется не UNIX, а архитектурой используемого компьютера;
суперблок — содержит основные сведения о дисковом томе в целом (размер логического блока и количество блоков, размеры основных областей, тип файловой системы, возможные режимы доступа), а также данные о свободном месте на диске;
массив индексных дескрипторов, каждый из которых содержит полные сведения об одном из файлов, хранящихся на диске (кроме имени этого файла);
область данных, состоящая из логических блоков (кластеров), которые используются для хранения файлов и каталогов (в UNIX используется сегментированное размещение файлов).
В отличие от системы FAT, где основные сведения о файле содержались в каталожной записи, UNIX использует более изощренную схему.
Запись каталога не содержит никаких данных о файле, кроме только имени файла и номера индексного дескриптора этого файла.
В ранних версиях UNIX каждая запись имела фиксированную длину 16 байт, из которых 14 использовались для имени и 2 для номера. В более современных версиях запись имеет переменный размер, что позволяет использовать длинные имена файлов.
Как и в системе FAT, в каждом каталоге первые две записи содержат специальные имена «..» (ссылка на родительский каталог) и «.» (ссылка на данный каталог).
Точнее, это в FAT сделано по примеру UNIX.
Нулевое значение номера соответствует удаленной записи каталога.
Все сведения о файле, кроме имени, содержатся в его индексном дескрипторе (inode). Такая схема делает возможными жесткие связи, описанные выше: любое количество записей из одного каталога или из разных каталогов может относиться к одному и тому же файлу. Для этого надо только, чтобы эти записи содержали один и тот же номер inode.
Индексные дескрипторы хранятся в массиве, занимающем отдельную область диска. Размер этого массива задается при форматировании, этот размер определяет максимальное количество файлов, которое можно разместить на данном томе.
Дескриптор содержит, прежде всего, счетчик жестких связей файла, т.е. число каталожных записей, ссылающихся на данный дескриптор. Этот счетчик изменяется при создании и удалении связей, его нулевое значение говорит о том, что файл перестал быть доступным и должен быть удален.
В дескрипторе содержатся тип и атрибуты файла, описанные выше. Наконец, здесь же содержатся данные о размещении файла, имеющие весьма оригинальную структуру.
Размещение блоков файла задается массивом из 13 (в некоторых версиях 14) элементов, каждый из которых может содержать номер блока в области данных. Пусть, для определенности, блок равен 1 Кб, а его номер занимает 4 байта (обе эти величины зависят от версии файловой системы). Первые 10 элементов массива содержат номера первых 10 блоков от начала файла. Если размер файла превышает 10 Кб, то в ход идет 11-й элемент массива. Он содержит номер косвенного блока — такого блока в области данных, который содержит номера следующих 256 блоков файла. Таким образом, использование косвенного блока позволяет работать с файлами размером до 266 Кб, используя для этого один дополнительный блок. Если файл превышает 266 Кб, то в 12-ом элементе массива содержится номер вторичного косвенного блока, который содержит до 256 номеров косвенных блоков, каждый из которых… Ну, вы поняли. Наконец, для очень больших файлов будет задействован 13-й элемент массива, содержащий номер третичного косвенного блока, указывающего на 256 вторичных косвенных.
Подсчитайте, какой максимальный размер файла может быть достигнут при такой схеме адресации блоков.
Недостатком описанной схемы является то, что доступ к большим файлам требует значительно больше времени, чем к маленьким. Если расположение первых 10 Кб данных файла записано непосредственно в индексном дескрипторе, то для того, чтобы прочитать данные, отстоящие, скажем, на 50 Мб от начала файла, придется сперва прочитать третичный, вторичный и обычный косвенные блоки.
Еще один важный вопрос для любой файловой системы — способ хранения данных о свободном месте. Для UNIX следует различать два вида свободных мест — свободные блоки в области данных и свободные индексные дескрипторы, которые бывают нужны при создании новых файлов. Количество тех и других может быть очень большим. В суперблоке UNIX имеются массивы для хранения некоторого количества номеров свободных блоков и свободных дескрипторов. Если исчерпаны номера свободных дескрипторов в суперблоке, то UNIX просматривает массив дескрипторов, находит в нем свободные и выписывает их номера в суперблок.
Сложнее обстоит дело со свободными блоками данных. Первый элемент размещенного в суперблоке массива номеров свободных блоков указывает на блок в области данных, который содержит продолжение этого массива и, в первом элементе, указатель на следующий блок продолжения. Когда системе нужны блоки дисковой памяти, она берет их из основного массива в суперблоке, а при исчерпании массива читает его продолжение в суперблок. При освобождении блоков происходит обратный процесс: их номера записываются в массив, а при переполнении массива все его содержимое переписывается в один из свободных блоков, номер которого заносится в первый элемент массива как адрес продолжения списка. Блоки диска распределяются «по стековому принципу»: блок, освобожденный последним, будет первым снова задействован.
