- •0.1 Что такое операционная система?
- •0.1.1 Структура вычислительной системы
- •0.1.2 Что такое ос?
- •Раздел 1 Основные понятия ос Тема 1.1. Основные понятия. Эволюция ос.
- •1.1.1 Основные понятия
- •1.1.2 Краткая история эволюции вычислительных систем
- •Принцип функциональной избирательности
- •Принцип генерируемости ос
- •Принцип функциональной избыточности
- •Темак 1.2 Принципы построения ос. Состав ос. Функции ос.
- •1.2.1 Принципы построения ос
- •Принцип модульности
- •Принцип виртуализации
- •Принцип независимости программ от внешних устройств
- •Принцип совместимости
- •Принцип открытой и наращиваемой ос
- •Принцип переносимости
- •Принцип обеспечения безопасности вычислений
- •1.2.2 Назначение и состав операционной системы компьютера.
- •1.2.3 Функции ос
- •1.2.4 Классификация ос
- •Тема 1.3 Архитектура ос (монолитные и микроядерные ос).
- •1.3.1 Монолитное ядро
- •1.3.2 Слоеные системы (Layered systems)
- •1.3.3 Виртуальные машины
- •1.3.4 Микроядерная архитектура.
- •1.3.5 Смешанные системы
- •1.6 Резюме
- •Раздел 2 Машинно-зависимые свойства ос Тема 2.1 Управление процессами (планирование и диспетчеризация)
- •2.1.1 Понятие процесса
- •2.1.2. Состояния процесса
- •2.1.3. Операции над процессами и связанные с ними понятия
- •2.1.3.1. Набор операций
- •2.1.3.2. Process Control Block и контекст процесса
- •2.1.3.3. Одноразовые операции
- •2.1.3.4. Многоразовые операции
- •2.1.3.5. Переключение контекста
- •2.1.4. Резюме
- •Тема 2.2 Управление памятью Часть 1 Физическая память
- •2.2.1 Основы управления памятью
- •2.2.2 Связывание адресов.
- •2.2.3 Простейшие схемы управления памятью.
- •2.2.3.1 Схема с фиксированными разделами.
- •2.2.3.2 Свопинг
- •2.2.3.3 Мультипрограммирование с переменными разделами.
- •2.2.4 Резюме
- •Часть 2 Виртуальная память
- •2.2.5. Проблема размещения больших программ. Понятие виртуальной памяти.
- •2.2.6 Архитектурные средства поддержки виртуальной памяти.
- •2.2.7 Страничная память
- •2.2.8 Сегментная и сегментно-страничная организации памяти
- •2.2.9 Таблица страниц
- •2.2.10 Ассоциативная память.
- •2.2.11 Иерархия памяти
- •2.2.12 Размер страницы
- •Тема 2.3 Обработка прерываний
- •2.3.1. Механизм общей обработки прерывания
- •2.3.2. Программные прерывания или системные вызовы
- •2.3.3.Аппаратные или внешние прерывания
- •2.3.3.1. Немаскируемые внешние прерывания
- •2.3.3.2. Маскируемые внешние прерывания
- •2.3.4. Внутренние прерывания или исключения.
- •2.3.5. Таблица прерываний
- •2.3.6. Уровни приоритета прерываний
- •Тема 2.4 Обслуживание ввода-вывода
- •2.4.1 Основные понятия и концепции организации ввода/вывода в ос
- •2.4.2 Менеджер ввода-вывода
- •2.4.2.1.Основные задачи супервизора следующие:
- •2.4.2.2. Состав супервизора:
- •2.4.3. Основные режимы ввода/вывода:
- •2.4.5. Виды ввода-вывода:
- •2.4.6. Функции ос по обслуживанию ввода-вывода:
- •Раздел 3 Машинно-независимые свойства ос Тема 3.1 Планирование заданий
- •3.1.1. Стратегия планирования
- •3.1.2. Дисциплины диспетчеризации
- •3.1.3. Вытесняющие и не вытесняющие алгоритмы диспетчеризации
- •3.1.4. Качество диспетчеризации и гарантии обслуживания
- •3.1.5. Диспетчеризация задач с использованием динамических приоритетов
- •Тема 3.2. Организация файловых систем. Типы файловых систем fat16, fat32, vfat, ntfs и другие.
- •Часть 1 Основные понятия
- •3.2.1 Введение в ос
- •3.2.2 Имена файлов
- •3.2.3 Структура файлов
- •3.2.4 Типы и атрибуты файлов
- •3.2.5 Доступ к файлам
- •3.2.6 Операции над файлами.
- •3.2.7 Директории. Логическая структура файлового архива.
- •3.2.9 Защита файлов.
- •3.2.9.1 Контроль доступа к файлам
- •3.2.9.2 Списки прав доступа
- •3.2.10 Резюме
- •Часть 2 Реализация файловой системы
- •3.2.11 Интерфейс файловой системы.
- •3.2.12 Общая структура файловой системы
- •3.2.13 Структура файловой системы на диске.
- •3.2.13.1 Методы выделения дискового пространства
- •3.2.13.2 Управление свободным и занятым дисковым пространством.
- •3.2.13.3 Размер блока
- •3.2.14 Реализация директорий
- •3.2.13.4 Структура файловой системы на диске
- •3.2.14.1 Примеры реализации директорий в некоторых ос
- •3.2.14.2 Поиск в директории
- •3.2.15 Монтирование файловых систем.
- •3.2.16 Связывание файлов.
- •3.2.16.1 Организация связи между каталогом и разделяемым файлом
- •3.2.17 Кооперация процессов при работе с файлами.
- •3.2.18 Надежность файловой системы.
- •3.2.18.1 Целостность файловой системы.
- •3.2.18.2 Управление плохими блоками
- •3.2.19 Производительность файловой системы
- •3.2.20 Реализация некоторых операций над файлами.
- •3.2.20.1 Системные вызовы, работающие с символическим именем файла.
- •3.2.20.2 Системные вызовы, работающие с файловым дескриптором
- •3.2.21 Современные архитектуры файловых систем
- •3.2.22 Резюме
- •Часть 3. Примеры файловых систем
- •3.2.23. Файловая система fat
- •3.2.24 Файловая система fat32
- •3.2.25. Файловая система vfat
- •3.2.26. Файловая система ntfs
- •Тема 3.3. Защищенность и отказоустойчивость ос
- •3.3.1. Введение в безопасность ос
- •3.3.2 Классификация угроз
- •3.3.3 Формализация подхода к обеспечению информационной безопасности. Классы безопасности
- •3.3.5 Криптография, как одна из базовых технологий безопасности ос.
- •3.3.6 Введение в защитные механизмы операционных систем
- •3.3.7. Идентификация и аутентификация
- •3.3.7.1 Пароли, уязвимость паролей
- •Шифрование пароля
- •3.3.8. Авторизация. Разграничение доступа к объектам ос
- •3.3.8.1 Домены безопасности
- •3.3.8..2 Матрица доступа
- •3.3.8.3 Недопустимость повторного использование объектов
- •3.3.9. Аудит, учет использования системы защиты
- •3.3.10. Анализ некоторых популярных ос с точки зрения их защищенности.
- •3.3.11. Резюме
- •Раздел 4 ос ms-dos Тема 4.1 Структура ос ms-dos
- •4.1.1. Структура dos
- •4.1.2. Загрузка. Dos
- •Тема 4.2 Команды ms-dos
3.2.13.2 Управление свободным и занятым дисковым пространством.
В современных ОС используется несколько способов учета используемого места на диске. Рассмотрим наиболее распространенные.
Учет при помощи организации битового вектора.
Часто список свободных блоков диска реализован в виде битового вектора (bit map или bit vector). Каждый блок представлен одним битом, принимающим значение 0 или 1, в зависимости от того занят он или свободен. Например, 00111100111100011000001 ....
Главное преимущество этого подхода - он относительно прост и эффективен при нахождении первого свободного блока, или n последовательных блоков на диске. Многие компьютеры имеют инструкции манипулирования битами, которые могут быть использованы для этой цели. Например, компьютеры семейств Intel и Motorola имеют инструкции, которые при помощи которых можно легко локализовать первый единичный бита в слове.
Описываемый метод учета свободных блоков используется в Apple Macintosh.
К сожалению, этот метод эффективен, только если битовый вектор помещается в памяти целиком, что возможно только для относительно небольших дисков. Например, диск размером 1.3 Гб с блоками по 512 байт нуждается в таблице размером 332К для управления свободными блоками.
Учет при помощи организации связного списка.
Другой подход - связать в список все свободные блоки, поддерживая указатель на первый свободный блок в специальном месте диска, попутно кэшируя в памяти эту информацию.
Эта схема не всегда эффективна. Для трассирования списка нужно сделать много обращений к диску. Однако к счастью нам необходим, как правило, только первый свободный блок.
Иногда прибегают к модификации подхода связного списка, организуя хранение адресов n свободных блоков в первом свободном блоке. Первые n-1 этих блоков действительно используются. Последний блок содержит адреса других n блоков. И т.д.
3.2.13.3 Размер блока
Размер логического блока играет важную роль. В некоторых системах (Unix) он может быть задан при форматировании. Небольшой размер блока будет приводить к тому, что каждый файл будет содержать много блоков. Чтение блока осуществляется с задержками на поиск и вращение, т.о. файл из многих блоков будет читаться медленно. Большие блоки обеспечивают более высокую скорость обмена с диском, но вследствие внутренней фрагментации (каждый файл занимает целое число блоков и в среднем половина последнего блока пропадает) снижается процент полезного дискового пространства.
В системах со страничной организацией памяти имеется сходная проблема с размером страницы.
Проведенные исследования показали, что большинство файлов имеет небольшой размер (в Unix приблизительно 85% файлов имеют размер менее 8 Кбайт и 48% - менее 1Кбайта).
Рис. 3.2.9 Определение оптимального размера блока.
На рис. 3.2.9 изображены две кривые: одна убывающая показывает степень утилизации диска (в процентах) с возрастанием размера блока, а вторая возрастающая скорость считывания информации. Они пересекаются в районе 3К. Обычный компромисс выбор блока размером 512 б, 1К, 2К.
