- •Раздел 1. Архитектура операционных систем Тема 1. Принципы построения операционных систем
- •1.1. Понятие об архитектуре аппаратных средств
- •1.1.1. Вводные замечания
- •1.1.2. Классификация программных средств
- •1.1.3. Место и функции системного программного обеспечения
- •1.2. Принципы работы вычислительной системы
- •1.3. Режимы работы операционных систем
- •1.3.1. Режимы обработки данных
- •1.3.1.1. Однопрограммные режимы обработки данных
- •1.3.1.2. Многопрограммные режимы обработки данных
- •1.3.2. Режимы и дисциплины обслуживания
- •1.3.2.1. Режимы обслуживания
- •1.3.3.2. Дисциплины обслуживания
- •1.4. Классификация операционных систем
- •1.4.1. Особенности алгоритмов управления ресурсами
- •1.4.1.1. Поддержка многозадачности
- •1.4.1.2. Поддержка многонитевости
- •1.4.2. Особенности аппаратных платформ
- •1.4.3. Особенности областей использования
- •1.4.4. Особенности методов построения
- •1.5. Основные принципы построения операционных систем
- •1.6. Пользовательский интерфейс операционных систем
- •1.6.1. Классификация интерфейсов
- •1.6.2. Пакетная технология.
- •1.6.3. Технология командной строки.
- •1.6.4. Графический интерфейс
- •1.6.4.1. Простой графический интерфейс.
- •1.6.4.2. Wimp-интерфейс
- •1.6.5. Речевая технология
- •1.6.6. Биометрическая технология)
- •1.6.7. Семантический интерфейс.
- •Контрольные вопросы к теме 1
- •Тема 2. Концептуальные основы операционных систем
- •2.1. Концепция процесса
- •2.2. Концепция ресурса
- •2.3. Концепция виртуальности
- •2.4. Концепция прерывания
- •2.5. Понятие ядра и микроядра ос
- •2.5.1. Понятие ядра ос
- •2.5.2. Понятие микроядра ос
- •Контрольные вопросы к теме 2
- •Тема 3. Понятие управления задачами
- •3.1. Организация управления задачами
- •3.2. Средства и механизмы управления задачами
- •3.2.1. Средства управления задачами на уровне внешнего планирования
- •3.2.2. Средства управления задачами на уровне внутреннего планирования
- •3.3. Алгоритмы управления задачами
- •3.3.1. Алгоритмы управления задачами на уровне внешнего планирования
- •3.3.2. Алгоритмы управления задачами на уровне внутреннего планирования
- •3.3.2.1. Мультизадачность, процессы и нити Мультизадачность
- •Процессы
- •Контекст и дескриптор процесса
- •3.3.2.2. Состав алгоритмов внутреннего планирования
- •3.3.2.3. Алгоритм управления количеством процессов в рабочей смеси
- •3.3.2.4. Алгоритмы выбора очередности обработки
- •3.3.2.5. Алгоритмы выбора величины кванта
- •3.4. Взаимосвязанные и конкурирующие задачи
- •3.4.1. Средства управления ресурсами
- •3.4.2. Механизмы синхронизации процессов
- •3.4.2.1. Параллельные процессы и критические участки
- •3.4.2.2. Примитивы взаимоисключения
- •3.4.2.3. Программная реализация примитивов взаимоисключения
- •3.4.2.4. Реализация примитивов взаимоисключения с использованием аппаратных средств
- •3.4.2.5. Семафоры
- •3.4.2.6. Мониторы
- •3.4.3. Алгоритмы управления ресурсами
- •3.4.3.1. Вводные замечания
- •3.4.3.2. Алгоритм предоставления ресурса по первому обращению
- •3.4.3.3. Алгоритмы предотвращения тупиков
- •3.4.3.3.1. Стратегии предотвращения тупиков
- •3.4.3.3.2. Алгоритм предварительного распределения ресурсов
- •3.4.3.3.3. Алгоритм распределения ресурсов с освобождением при отказе
- •3.4.3.3.3. Алгоритм распределения с линейным упорядочением по типам ресурсов
- •3.4.3.3. Алгоритмы обхода тупиков
- •Контрольные вопросы к теме 3
- •Тема 4. Управление памятью в операционных системах
- •4.1. Понятие об организации и управлении физической памятью
- •4.2. Методы связного распределения основной памяти (без использования дискового пространства)
- •4.2.1. Связное распределение памяти для одного пользователя
- •4.2.2. Связное распределение памяти при мультипрограммной обработке
- •4.2.3. Стратегии размещения информации в памяти
- •4.3. Организация виртуальной памяти (с использованием дискового пространства)
- •4.3.1. Основные концепции виртуальной памяти
- •4.3.2. Схема прямого отображения адресов
- •4.3.3. Отображения адресов при страничной организации виртуальной памяти
- •4.3.4. Отображения адресов при сегментной организации виртуальной памяти
- •4.3.4. Отображения адресов при странично-сегментной организации виртуальной памяти
- •4.4. Управление виртуальной памятью
- •4.4.1. Стратегии управления виртуальной памятью
- •4.4.2. Стратегии вталкивания (подкачки)
- •4.4.3. Стратегии размещения
- •4.4.4. Стратегии выталкивания
- •Контрольные вопросы к теме 4
- •Тема 5. Управление файлами и вводом-выводом в ос
- •5.1.Методы организации данных в операционных системах
- •5.2. Методы доступа к данным
- •5.3. Объединение записей в блоки и буферизация
- •5.4. Управление файлами
- •5.4.1. Понятие файлового способа хранения данных и файловой системы
- •5.4.2. Организация файлов
- •5.4.3. Организация хранения файлов
- •5.4.4. Операции над файлами
- •5.4.5. Файловая система
- •5.4.5.1. Общая модель файловой системы
- •5.4.5.2. Современные архитектуры файловых систем
- •5.5. Система ввода-вывода
- •5.5.1. Общие положения
- •5.5.2. Физическая организация устройств ввода-вывода
- •5.5.3. Организация программного обеспечения ввода-вывода
- •5.5.3.1. Уровни организации программного обеспечения ввода-вывода
- •5.5.3.2. Обработка прерываний
- •5.5.3.3. Драйверы устройств
- •5.5.3.4. Независимый от устройств слой операционной системы
- •5.5.3.5. Пользовательский слой программного обеспечения
- •Контрольные вопросы к теме 5
3.3. Алгоритмы управления задачами
3.3.1. Алгоритмы управления задачами на уровне внешнего планирования
Все алгоритмы внешнего планирования, применяемые в ОС, имеют эвристический характер. При разработке этих алгоритмов стараются улучшить качество планирования, показатели которого зависят от режимов использования вычислительной системы. Планирование может осуществляться с использованием любых дисциплин и режимов обслуживания заявок (с учетом приоритетов и без их учета, с неизменными и динамическими приоритетами и т.п.).
В системах с разделением времени внешнее планирование осуществляется согласно одного из двух алгоритмов: алгоритм бесприоритетного планирования; алгоритм приоритетного планирования.
Алгоритм бесприоритетного планирования предусматривает постановку заданий в очередь в порядке их поступления в систему. Выбор заданий на обработку из очереди может быть организован либо по принципу FIFO, либо по принципу LIFO.
Алгоритм приоритетного планирования предусматривает занесение заданий в очередь на обслуживание в соответствии с их приоритетами. Выборка заданий из очереди осуществляется из непустой очереди с наивысшим приоритетом.
В системах с пакетной мультипрограммной обработкой внешнее планирование осуществляется с применением одного из следующих критериев:
минимум простое оборудование;
максимум пропускной способности вычислительной системы;
минимум времени реакции системы на задания пользователей.
Внешнее планирование в режиме ПМП может выполняться, например, по следующим алгоритмам:
алгоритм минимизации простоя оборудования;
алгоритм упорядочивания по требованиям на ресурсы;
алгоритм упорядочивания по требованиям на загрузку центрального процессора.
Алгоритм минимизации простоя оборудования включает в рабочую смесь только тех задач, которые обеспечивают равномерную нагрузку на все устройства системы. Рассмотрим минимизацию времени простоя центрального процессора (ЦП) и внешних устройств (ВУ).
Пусть N – количество задач в рабочей смеси. Каждому i-му заданию поставим в соответствие пару чисел: Tцпi – запрос пользователя на время выполнения задания на ЦП; Tвуi – запрос пользователя на длительность загрузки внешнего устройства. Пусть заданы пороговые интервалы времени Tjп обслуживания заданий j-м ресурсом. Тогда i-е задание является значимым, относительно j-го ресурса, если длительность времени Tji его обслуживания этим ресурсом больше порогового, т.е. TjiTjп.
Введем следующие обозначения:
Nо, цп, Nо, ву – оптимальное количество в рабочей смеси задач, значимых относительно ЦП и ВУ, соответственно;
Nф, цп, Nф, ву – фактическое количество в рабочей смеси задач, значимых, соответственно, относительно ЦП и ВУ.
Тогда алгоритм минимизации простоя оборудования для случая ЦП и ВУ может быть представлен двумя информационно связанными процедурами:
процедура формирования очередей;
процедура включения задачи в рабочую смесь.
Процедура формирования очередей обеспечивают распределение всех поступающих в систему заданий в одну из следующих четырех очередей:
z0 – очередь заданий, для которых Tцп, iTцп, п и Tву, i Tву, п;
z1 – очередь заданий, для которых Tцп, iTцп, п и Tву, i Tву, п;
z2 – очередь заданий, для которых Tцп, iTцп, п и Tву, i Tву, п;
z3 – очередь заданий, для которых Tцп, iTцп, п и Tву, i Tву, п;
Процедура включения задачи в рабочую смесь обеспечивает выборку задания из очередей z0,..., z3, сформированных процедурой формирования очередей в соответствии со следующими правилами:
если Nф, цпNо, цп и Nф, вуNо, ву, то задание выбирается из очередей z1, z2 или z3 в соответствии с алгоритмом выбора из очередей z1, z2, z3 ;
если Nф, цпNо, цп и Nф, вуNо, ву, то задание выбирается из очереди z1, а при ее истощении – из z0;
если Nф, цпNо, цп и Nф, вуNо, ву, то задание выбирается из очереди z2, а при ее истощении – из очереди z0;
если Nф, цпNо, цп и Nф, вуNо, ву, то задание выбирается из очереди z0, а при ее истощении – из очередей z1, z2 или z3 по алгоритму выбора из очередей z1, z2, z3.
Алгоритм выбора из очередей z1, z2, z3 должен обеспечить бессбойную выборку заданий из указанных очередей. Здесь возможно применение различных подходов, например, кольцевая процедура обхода очередей.
Алгоритм упорядочивания по требованиям на ресурсы разбивает задания на очереди в зависимости от объемов требуемых ими ресурсов.
Алгоритм упорядочивания по требованиям на загрузку ЦП для каждого i-го задания устанавливает приоритет (pi) в зависимости от требуемого времени центрального процессора Тцпi.
Несмотря на то, что рассмотренные три алгоритма внешнего планирования достаточно легко реализуемы в ОС, их применение может привести к недопустимо большой задержки обслуживания бесприоритетных или “неудобных” заданий.