- •Раздел 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.2. Средства и механизмы управления задачами
3.2.1. Средства управления задачами на уровне внешнего планирования
Информация, передаваемая операционной системе пакетом заданий, записывается по вполне определенным правилам. Эти правила представлены в операционных системах описаниями языков, называемых либо командными языками, либо языками управления заданиями, которые появились одновременно с мультипрограммными ОС и предназначены только для описания заданий. Примерами командных языков являются язык пакетных файлов в MS DOS и JCL в ОС ЕС (JCL – Job Control Language, язык управления работами). Командные языки универсальны в рамках одной архитектуры, т.е. могут быть применены любым пользователем в любой модели ЭВМ данной архитектуры. Обработка JCL-операторов выполняется в ОС с помощью “языковых процессоров управления заданиями” (JCL-процессоров). Существуют два принципа реализации JCL-процессоров: компиляционный и интерпретационный.
Компиляционный принцип построения JCL-процессора предусматривает наличие в составе ОС специальной программы-компилятора с языка управления заданиями. Все операторы пакета заданий, введенного в ЭВМ, сначала компилируются (т.е. переводятся в некоторое внутреннее представление), и только затем используются операционной системой для целей управления процессами обработки данных. Такая схема обработки данных применена в ОС ЕС ЭВМ.
Интерпретационный принцип требует наличия программы-оболочки (Shell-программы), которая рассматривается в системе как интерактивная программа-утилита, расположенная между пользователем и ядром системы. Shell-программа воспринимает операторы командного языка, интерпретирует их и обеспечивает выполнение пользовательских программ. По этой схеме построен JCL-процессор ОС Unix.
Рассмотрим одну из распространенных схем долгосрочного уровня планирования, в которой нашли отражение практически все необходимые средства для управления заданиями на этом уровне: системный ввод; инициатор; терминатор; системный вывод.
В функции системного ввода входят:
считывание управляющих операторов пакетов заданий с устройств системного ввода, их анализ и формирование управляющих таблиц;
создание входных очередей работ и задач в соответствии с принятыми в ОС дисциплинами и режимами обслуживания заявок;
запись входных данных и программ каждого задания в память прямого доступа (магнитные диски);
создание основы выходных очередей для выходных наборов данных и системных сообщений.
Программы системного ввода формируют управляющие таблицы. Совокупность управляющих таблиц образует базу данных управляющей информации, необходимой для осуществления процессов долгосрочного и краткосрочного планирования в ОС. Связь различных таблиц этой базы осуществляется с помощью ключевых полей, в которые заносятся ссылки (адреса) не записи в этой же или другой таблице.
Следующим этапом работы системного ввода является создание входной очереди. Сформированная очередь работ записывается на устройство прямого доступа (магнитный диск). Одновременно с входной очередью осуществляется подготовка и выходной очереди для выходных наборов данных и системных сообщений. По окончании своей работы системный ввод передает управление инициатору.
Перечень действий, выполняемых инициатором, особенности программной реализации, способы расположения этого системного компонента зависят от режима мультипрограммирования, реализуемого в операционной системе. Основной функцией инициализатора является подготовка к исполнению (фаза инициализации) работы и задач. Для реализации этой функции инициализатор выполняет следующие основные виды действий:
распределение необходимых для исполнения работы и задач ресурсов системы;
выполнение дополнительных действий, связанных с порождением процессов.
При выполнении действий первого вида используются управляющие таблицы, сформированные системным вводом. На данном этапе осуществляется:
распределение внешних устройств:
проверка доступности необходимых наборов данных;
выделение требуемой оперативной и внешней памяти.
Совокупность действий второго вида существенно различается для разных операционных систем. Завершающей операцией является создание первого (главного) процесса очередной задачи, после чего управление передается системе управления процессами.
После окончания выполнения задачи начинает работать терминатор, который реализует следующие основные функции:
освобождение всех ресурсов, ранее закрепленных за задачей (или за работой, если окончившаяся задача является последней в работе);
выполнение действий по уничтожению задачи (или работы) и коррекция входных очередей;
выдача разрешения системному выводу на вывод результатов и системных сообщений:
подготовка условий для выведения инициатора из состояния ожидания для последующей инициализации следующего задания обрабатываемого пакета.
Функционирование терминатора может происходить во взаимодействии с оператором ЭВМ, сообщая ему о необходимости подготовки тех или иных внешних устройств, возникающих конфликтных ситуациях и т.п.
Системный вывод обеспечивает вывод выходных наборов данных и системных сообщений. Наборы выходных данных сначала записываются на устройствах прямого доступа, образуя выходные очереди в соответствии с заготовками, сформированными при работе системного ввода.