- •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.13.4 Структура файловой системы на диске
- •3.2.14 Реализация директорий
- •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
2.2.3.2 Свопинг
Имея дело с пакетными системами можно обходиться фиксированными разделами и не использовать ничего более сложного. В системах с разделением времени возможна ситуация, когда память не в состоянии содержать все пользовательские процессы. Приходится прибегать к свопингу (swapping) - перемещению процессов из главной памяти на диск и обратно целиком. Частичная выгрузка процессов на диск связана с пейджингом (paging) будет рассмотрена ниже.
Выгруженный процесс может быть возвращен в то же самое адресное пространство или в другое. Это ограничение диктуется методом связывания. Для схемы связывания на этапе выполнения можно загрузить процесс в другое место памяти.
Свопинг не имеет непосредственного отношения к управлению памятью, скорее он связан с подсистемой планирования процессов. В системах со свопингом время переключения контекстов лимитируется временем загрузки выгрузки процессов. Для эффективной утилизации процессора необходимо, чтобы величина кванта времени существенно его превышала
Оптимизация свопинга может быть связана с выгрузкой лишь реально используемой памяти или выгрузкой процессов, реально не функционирующих. Кроме того, выгрузка обычно осуществляется в специально отведенное пространство для свопинга, то есть быстрее, чем через стандартную файловую систему (пространство выделяется большими блоками, поиск файлов и методы непосредственного выделения не используются).
Во многих версиях Unix свопинг обычно запрещен, однако он стартует, когда возрастает загрузка системы.
2.2.3.3 Мультипрограммирование с переменными разделами.
В принципе, система свопинга может базироваться на фиксированных разделах. На практике, однако, использование фиксированных разделов приводит к большим потерям используемой памяти, когда задача существенно меньше раздела.
Более эффективной представляется схема с переменными (динамическими) разделами. В этом случае вначале вся память свободна и не разделена заранее на разделы. Вновь поступающей задаче выделяется необходимая память. После выгрузки процесса память временно освобождается. По истечении некоторого времени память представляет собой набор занятых и свободных участков (рис. 2.2.4) Смежные свободные участки могут быть объединены в один.
Рис. 2.2.4 Динамика распределения памяти между процессами. Серым цветом показана неиспользуемая память.
Типовой цикл работы менеджера памяти состоит в анализе запроса на выделение свободного участка (раздела), выборке его среди имеющихся в соответствие с одной из стратегий (first fit, best fit, worst fit), загрузке процесса в выбранный раздел и последующем внесении изменений в таблицы свободных и занятых областей. Аналогичная корректировка необходима и после завершения процесса. Связывание адресов может быть осуществлено на этапах загрузки и выполнения.
Этот метод более гибок по сравнению с методом фиксированных разделов
Этому методу также присуща внешняя фрагментация вследствие наличия большого числа участков свободной памяти. Проблемы фрагментации могут быть различными. В худшем случае мы можем иметь участок свободной (потерянной) памяти между двумя процессами. Если все эти куски объединить в один блок, мы смогли бы разместить больше процессов. Выбор между first-fit и best-fit слабо влияет на величину фрагментации.
В зависимости от суммарного размера памяти и среднего размера процесса эта проблема может быть большей или меньшей. Статистический анализ показывает, что при наличии n блоков пропадает n/2 блоков, то есть 1/3 памяти! Это известное 50% правило (два соседних свободных участка в отличие от двух соседних процессов могут быть объединены в один).
Одно из решений проблемы внешней фрагментации - разрешить адресному пространству процесса не быть непрерывным, что разрешает выделять процессу память в любых доступных местах. Один из способов реализации такого решения - это paging , используемый во многих современных ОС (будет рассмотрен ниже).
Другим способом борьбы с внешней фрагментацией является сжатие, то есть перемещение всех занятых (свободных) участков в сторону возрастания (убывания) адресов, так, чтобы вся свободная память образовала непрерывную область. Этот метод иногда называют схемой с перемещаемыми разделами. В идеале фрагментация после сжатия должна отсутствовать.
Сжатие, однако, является дорогостоящей процедурой, алгоритм выбора оптимальной стратегии сжатия очень труден, и, как правило, сжатие осуществляется в комбинации с выгрузкой и загрузкой по другим адресам.
