- •/Классификация операционных систем
- •Сравнительные характеристики ос.
- •/Процессы и примитивы.
- •Примитивы.
- •Процессы.
- •/Предполагаемая среда выполнения процессов.
- •/ Диаграмма переходов.
- •/Создание процессов.
- •/Уровневое представление ос unix
- •/Функции ядра операционной системы.
- •/Понятие прерываний в ос
- •/Структура ос
- •/Обзор подсистем ядра Unix
- •Описание подсистем ядра unix
- •Планирование но наивысшему приоритету (hpf)
- •Метод круговорота (карусель)
- •Очереди с обратной связно (fв)
- •Планирование в unix.
- •Типы многозадачности.
- •Состав планировщика
- •Зависимости подсистем ядра
- •Контроллер памяти (Метоrу Manager)
- •Механизм свопинга (Swapping)
- •Механизм пейджинга (Paging)
- •Внешний интерфейс
- •Verify_area()– проверка прав на доступ к выделенному региону памяти; get_free_page() / free_page() – выделение и освобождение физической памяти.
- •Реализация программ выделения памяти
- •Сборка мусора
- •Типы сборщиков памяти
- •Взаимодействие внутренних модулей мм
- •Архитектура vfs
- •Интерфейсы файловой системы
- •Ioctlo: установить атрибуты файла;
- •Защита файлов
- •Списки прав доступа
- •Механизмы обмена данными в vfs
- •Буферный кэш.
- •Механизмы обмена данными.
- •Логическая файловая система
- •Физическая организация файловой системы
- •Структура файла обычного типа
- •Примечания к физической организации vfs
- •Сетевая подсистема (Net)
- •Состав сетевой подсистемы
- •Представление и структуры данных
- •Внутренняя структура подсистемы
- •Зависимости сетевой подсистемы
- •Подсистема межпроцессного взаимодействия
Ioctlo: установить атрибуты файла;
revalidate(): проверить, чтобы вся кэшированная информация была пра‑
вильной.
Защита файлов
Информация в любой компьютерной системе должна иметь защиту как от физического разрушения (reliability), так и от несанкционированного доступа (protection). Очевидно, что создание и удаление файлов предполагает выполнение некоторых операций. Рассмотрим кратко аспект защиты, связанный с контролем доступа к файлам.
Многопользовательский режим работы системы предполагает организа‑
цию контролируемого доступа к файлам, то есть выполнение любой операции над файлом должно быть разрешено только при наличии у пользователя соответствующих привилегий. Обычно контролируются следующие операции: чтение, запись и выполнение. Все остальные операции, например копирование файлов или их переименование, реализуются через вышеперечисленные. Так, операцию копирования файлов можно представить как операцию чтения и последуюцryю операцшо записи.
Списки прав доступа
Наиболее простой способ защиты файлов от несанкционированного использования - сделать доступ зависящим от идентификатора пользователя,
то есть связать с каждым файлом или каталогом список прав цоступа
(access control list), где перечислены имена пользователей и типы разрешенных для них способов доступа к файлу. При любом запросе на выполнение операции над файлом выполняется проверка соответствующих прав
по этому списку. Недостатком метода является увеличение времени про‑
верки с ростом числа пользователей в списке. Кроме этого, такой алгоритм имеет два нежелательных следствия.
Во-первых, конструирование подобного списка может оказаться слож‑
ной задачей, особенно если мы не знаем заранее пользователей системы. Во-вторых, запись в директории должна иметь переменный размер (включать список потенциальных пользователей).
Для решения этих проблем создают категории пользователей, например, в ОС Unix все пользователи разделены на три группы.
-
Владелец (Owner).
-
Группа (Group). Совокупность пользователей, использующих файл и нуждающихся в типовом способе доступа к нему.
-
Остальные (Univers).
Такая стратегия позволяет существенно экономить место при назначении прав доступа. В рамках такой ограниченной классификации задаются только три поля (по одному для каждой группы) для каждой контролируемой операции. В итоге в Unix операции чтения, записи и исполнения контролируются при помощи 9 бит (rwxrwxrwx).
Механизмы обмена данными в vfs
Уровень драйверов файловой системы обслуживает все физические устройства логической файловой системы. В ОС Unix существуют три типа драйверов: символьные, блок (байт) - ориентированные и сетевые. Сим‑
вольные иногда называют бит-ориентированные драйверы. Для работы файловой системы необходимо два типа – бит- и байт-ориентированные
драйверы. Бит–ориентированные драйверы обеспечивают последовательный доступ к устройствам типа модема или мыши. Байт–ориентированные драйверы обеспечивают поблочны й доступ к информации.
Так как в ОС Unix "нет ничего кроме" файлов и процессов, то доступ к любому устройству в системе осуществляется как к файлу. Такой подход
позволяет унифицировать внутренний интерфейс драйверов и упростить написание новых драйверов и подключение новых устройств в систему.
