- •Операционные системы Оглавление
- •Введение. Общие сведения.
- •1.2 История вычислительной системы
- •1.2.1 Первый период 45 – 55 гг.
- •1.2.2 Второй период 55-60 гг.
- •1.2.3 Третий период 60 – 80 гг.
- •1.2.4 Четвертый период с 80-х годов по наст. Время (персональные компьютеры, сетевые и распределенные системы).
- •1.2.5 Итоги развития вс.
- •1.3 Основные понятия и концепции ос
- •1.3.1 Системные вызовы.
- •1.3.2 Программные прерывания.
- •1.3.3 Файл.
- •1.4 Процессы и потоки. Архитектурные особенности ос.
- •1.4.1 Монолитное ядро.
- •1.4.2 Слоеные системы (Layered Systems)
- •1.4.3 Виртуальные машины.
- •1.4.4 Микроядерная архитектура.
- •1.4.5 Смешанные системы.
- •1.5 Классификация ос
- •2. Процессы и их поддержка в ос.
- •2.1 Понятие процесса.
- •2.2 Состояние процесса.
- •2.3 Операции над процессами и связанные с ними понятия
- •2.3.1 Набор операций.
- •2.3.2 Процесс Control Block и контекст процесса.
- •2.3.3 Одноразовые операции.
- •2.3.4 Многоразовые операции над процессами.
- •2.3.5 Переключение контекста.
- •3.Планирование процесса.
- •3.1. Уровни планирования
- •3.2 Критерии планирования и требовании к алгоритмам.
- •3.3 Параметры планирования
- •3.4 Вытесняющие и невытесняющие планирования
- •3.5 Алгоритмы планирования
- •3.5.1FirstComeFirstServed
- •3.5.2 Round Robin
- •3.5.3ShortestJob–First
- •3.5.4 Гарантированное планирование
- •3.5.5 Приоритетное планирование
- •3.5.6 Многоуровневые очереди (multilevelQueue)
- •3.5.7 Многоуровневые очереди
- •4. Кооперация процессов и основные аспекты в её логической реализации.
- •4.1 Взаимодействующие процессы
- •4.2 Категории средств обмена информацией
- •4.3 Логическая организация механизма передачи информации
- •4.3.1 Установление связи
- •4.3.2 Информационная валентность процессов и средств связи.
- •4.3.3 Особенности передачи информации с помощью линии связи.
- •4.3.4 Надежность средств связи
- •4.3.5 Как завершается связь?
- •4.4 Потоки исполнения
- •5. Алгоритмы синхронизации
- •5.1 Interleaving race condition
- •5.2 Критическая секция
- •5.3 Программные алгоритмы организации взаимодействия процессов
- •5.3.1 Требования, предъявляемые к алгоритму.
- •5.3.2 Запрет прерываний
- •7.8.2 Недостатки алгоритма банкира
- •8.2 Логическая память
- •8.3 Связывание адресов
- •8.4 Функции системы управления памятью
- •8.6 Страничная память
- •8.7 Сегментная и сегментно-страничная организация памяти
- •9. Виртуальная память
- •9.1 Понятие виртуальной памяти
- •9.2 Архитектурные средства поддержки виртуальной памяти
3.3 Параметры планирования
Для того, чтобы алгоритмы планирования могли работать они должны опираться на какие-то параметры или какие-то характеристики процесса.
Все параметры можно разбить на:
Статические – такие, которые не меняются по ходу работы ОС (максимальные значения ресурса, количество переферийных устройств, объемы буферов). Они бывают заранее известны еще до моменты загрузки задачи в ВС:
Какой пользователь запустил процесс
Приоритет процесса
Сколько процессорного времени запросил пользователь
Каково соотношение процессорного времени и времени, затрачиваемого процессором на ввод/вывод
Какое количество ресурсов
Динамические – такие, которые могут меняться.
Алгоритмы долгосрочного планирования используют оба вида параметров. Алгоритмы кратко- и среднесрочного планирования учитывают динамические характеристики:
Сколько времени прошло с моменты выгрузки процесса на диск или загрузки в оперативную память
Сколько оперативной памяти занимает процесс
Сколько процессорного времени было уже предоставлено процессу
3.4 Вытесняющие и невытесняющие планирования
Планировщик принимает решения о выборе на исполнение нового процесса из числа находящихся в состоянии готовности в следующих случаях:
Если процесс переводится из состояния «исполнение» в состояние «закончил исполнение»
Если процесс переводится из состояния «исполнение» в состояние «ожидание»
Если процесс переводится из состояния «исполнение» в состояние «готовность»
Если процесс переводится из состояния «ожидание» в состояние «готовность»
В 1 и 2 случаях процесс просто не может выполняться дальше, поэтому для продолжения работы необходимо выбрать новый процесс. В 3 и 4 случаях планирование может не проводиться, а работу может продолжить тот же процесс, после обработки прерывания. Говорят, что имеет место невытесняющее планирование, если реализуется 1 и 2 случаи. В 3 и 4 случаях действует вытесняющее планирование.
Наиболее часто вытесняющее планирование используется в системах разделения времени. ОС устанавливает специальный таймер для генерации прерывания по истечении некоторого промежутка времени – кванта, когда квант времени, выделенный процессу, заканчивается, планировщик передает процессор следующему заданию. Правильно выбранный квант позволяет использовать ВС наиболее целесообразным образом.
3.5 Алгоритмы планирования
3.5.1FirstComeFirstServed
Первый пришедший первый и обслуживается.Все процессы в ОС находятся в очереди. Когда процесс переходит в состояние «готовность», ссылка на его Process Control Block помещается в конец очереди. Из названия алгоритма ясно, что процесс подлежащий выполнению берется из начала очереди путем удаления PCB из начала очереди.
Этот алгоритм реализует то, что мы называем невытесняющим планированием, причем он захватывает процессор и находится в ВС до конца времени использования процессора. Преимущество алгоритма в том, что его легко реализовать. Наиболее существенный недостаток – среднее время ожидания и среднее полное время выполнения этого алгоритма зависят от порядка алгоритмов в очереди.
3.5.2 Round Robin
Это алгоритм FCFS, реализованный в режиме вытесняющего планирования
При RR планировщики выбирают процесс из начала очереди и устанавливают таймер для подсчета кванта времени. Два варианта:
Время непрерывного использования процессора меньше или равно продолжительности два. Тогда оказывается, что процесс сам оставляет процессор и отдает его ОС
Продолжительность остатка больше кванта времени, тогда процесс, после отсчета кванта, принудительно прерывается и помещается в конец очереди готовых процессов
Если кванты времени очень большие, тогда алгоритм вырождается в FCFS. При работе системы с квантами можно считать, что есть n виртуальных машин (n – кол-во пользователей) с мощностью N/n.