~1 (Разработка операционных систем), страница 3
Описание файла
Документ из архива "Разработка операционных систем", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "~1"
Текст 3 страницы из документа "~1"
Среднее время ожидания для стратегии FCFS часто весьма велико и зависит от порядка поступления процессов в очередь готовых процессов.
Пример № 1
Пусть три процесса попадают в очередь одновременно в момент 0 и имеют следующие значения времени последующего обслуживания в CPU.
вариант 1:
П1(24 мс)
П2(3 мс)
П3(3 мс)
вариант 2:
П2(3 мс)
П3(3 мс)
П1(24 мс)
На рисунке приведены диаграммы Ганга очереди готовых процессов
вариант 1:
П1 | П2 | П3 | WT=17 мс |
WT1=0 мс | WT2=24 мс | WT3=27 мс |
П2 | П3 | П1 | WT=3 мс | |||
WT2=0 мс | WT3=3 мс | WT1=6 мс |
2.2.2. Стратегия - наиболее короткая работа! SJF.
SJF — Shortest Job First. Одним из методов борьбы с “эффектом конвоя” является стратегия, позволяющая процессу из очереди выполняться первым.
Пример № 2
Пусть четыре процесса одновременно попадают в очередь готовых процессов и имеют следующие значения времени последующего обслуживания
П1(6 мс)
П2(8 мс)
П3(7 мс)
П4(3 мс)
П4 | П1 | П3 | П2 | WT=7 мс | ||
WT4=0 мс | WT1=3 мс | WT3=9 мс | WT2=16 мс |
Легко посчитать, что при использовании FCFS - стратегии среднее время ожидания для тех же процессов равно 10.25 мс, таким образом стратегия SJF снижает время ожидания очереди. Наибольшая трудность в практической реализации SJF заключается в невозможности заранее определить величину времени последующего обслуживания.
Поэтому стратегия SJF часто применяется в долгосрочных планировщиках, обслуживающих пакетный режим. В этом случае вместо величины времени последующего обслуживания используется допустимое максимальное время выполнения задания, которое программист должен специфицировать перед отправкой задания в пакет.
2.2.3. Приоритетное планирование.
Описанные ранее стратегии могут рассматриваться как частные случаи стратегии приоритетного планирования. Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему CPU. Например, стратегия FCFS предполагает, что все процессы предполагает, что все процессы имеют одинаковые приоритеты, а стратегия SJF предполагает, что приоритет есть величина, обратная времени последующего обслуживания.
Приоритет — это целое положительное число, находящееся в некотором диапазоне, например от 0 до 7, от 0 до 4095. Будем считать, что чем меньше значение числа, тем выше приоритет процесса.
Пример №3. | приоритет |
П1(10 мс) | 3 |
П2(1 мс) | 1 |
П3(2 мс) | 3 |
П4(1 мс) | 4 |
П5(5 мс) | 2 |
На рисунке приведена диаграмма Ганга, располагающая процессы в очереди в соответствии со стратегией приоритетного планирования
П2 | П5 | П1 | П3 | П4 | |
WT2=0 мс | WT5=1 мс | WT1=6 мс | WT3=16 мс | WT4=18 мс |
Внутренние факторы:
-
требования к памяти
-
количество открытых файлов
-
отношение среднего времени ввода - вывода к среднему времени CPU и так далее
Внешние факторы:
-
важность процесса
-
тип и величина файлов, используемых для оплаты
-
отделение, выполняющее работы и так далее
Внутренние факторы могут использоваться для автоматического назначения приоритетов самой операционной системой, а внешние для принудительного, с помощью оператора.
Главный недостаток приоритетного планирования заключается в возможности блокирования на неопределенно долгое время низкоприоритетных процессов.
Известен случай, когда в 1973 году в Массачусетском технологическом институте MIT при остановке компьютера IBM 7094 в очереди готовых процессов были обнаружены процессы, представленные в 1967 и все еще не выполненные.
Для устранения отмеченного недостатка используются следующие методы: процессы, время ожидания которых превышает фиксированную величину, например 15 минут, автоматически получают единичное приращение приоритета.
2.2.4. “Карусельная” стратегия планирования. RR-Round Robin.
Round Robin стратегия применяется в системах разделения времени. Определяется небольшой отрезок времени, названный квантом времени (10..100 мс). Очередь готовых процессов рассматривается как кольцевая. Процессы циклически перемещаются по очереди, получая CPU на время, равное одному кванту. Новый процесс добавляется в хвост очереди. Если процесс не завершился в пределах выделенного ему кванта времени, его работа принудительно прерывается, и он перемещается в хвост очереди.
Пример 4
П1(24 мс)
П2(3 мс)
П3(3 мс)
q=4 мс.
Диаграмма Ганга соответственно Round Robin стратегии для этого случая имеет вид:
П1 | П2 | П3 | П1 | П1 | П1 | П1 | П1 |
WT1=0 мс | 7 | 10 | 14 | 18 | 22 | 26 | 30 |
Свойства Round Robin стратегии сильно зависят от величины временного кванта q. Чем больше временной квант, тем дольше Round Robin стратегия приближается к FCFS стратегии (для рассмотренного примера, если q>24 мс, то -> FCFS). При очень малых значениях временного кванта Round Robin стратегия называют разделением процессора — processor sharing. Теоретически это означает, что каждый из N процессов работает со своим собственным процессором, производительность процессора равна 1/N от производительности физического процессора.
2.2.5. ПЛАНИРОВАНИЕ с использованием многоуровневой очереди.(Multilevel queue scheduling).
Эта стратегия разработана для ситуации, когда процессы могут быть легко классифицированы на несколько групп, например, часто процессы разделяют на две группы: интерактивные (процессы переднего плана) и пакетные (фоновые).
Интерактивные и пакетные процессы имеют различные требования к краткосрочному планировщику, например по отношению ко времени отклика.
Стратегия многоуровневой очереди разделяет очередь готовых процессов на несколько очередей, в каждой из которых находятся процессы с одинаковыми свойствами, и каждый из которых может планироваться индивидуальной стратегией, например Round Robin стратегия для интерактивных процессов и FCFS для пакетных процессов.
Взаимодействие очередей осуществляется по следующим правилам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом.
приоритет
Работа процесса из очереди с более низким приоритетом может быть приостановлена, если в одной из очередей с более высоким приоритетом появился процесс.
2.2.6. Программирование с использованием многоуровневой очереди с обратными связями (multilevel feedback queue sheduling).
Обычная многоуровневая очередь не допускает перемещения процессов между очередями. Многоуровневая очередь с обратными связями предполагает, что процессы при определенных условиях могут перемещаться между очередями.
0
1
2
Процессы первоначально попадают в очередь 0, где каждому из них предоставляется квант времени, равный 8 мс. Те процессы, которые не успели выполниться в течение этого времени, перемещаются в очередь 1. Процессы из очереди 1 начинают обрабатываться только тогда, когда очередь 0 становиться пустой. Те процессы, которые не выполнились в очереди 1 (q=16 мс) перемещаются в очередь 2. Процессы из очереди 2 будут обрабатываться только в том случае, если становятся пустыми очереди 0 и 1.
Рассмотренная стратегия является наиболее универсальной и сочетает в себе свойства всех рассмотренных раньше стратегий.
-
FCFS
-
SJF
-
приоритетная
-
Round Robin
-
многоуровневая очередь
3. Управление невиртуальной памятью.
3.1. Своппинг. (swapping).
Своппингом называется метод управления памятью, основанный на том, что все процессы, участвующие в мультипрограммной обработке, хранятся во внешней памяти.
Процесс, которому выделен CPU, временно перемещается в основную память (swap in/roll in).
В случае прерывания работы процесса он перемещается обратно во внешнюю память (swap out/roll out).
Замечание: при своппинге из основной памяти во внешнюю (и обратно) перемещается вся программа, а не её отдельная часть.
Своппинг иногда используют при приоритетном планировании CPU. В этом случае с целью освобождения памяти для высокоприоритетных процессов, низкоприоритетные процессы перемещаются во внешнюю память.
Основное применение своппинг находит в системах разделения времени, где он используется одновременно с Round Robin стратегией планирования CPU.
В начале каждого временного кванта блок управления памятью выгружает из основной памяти процесс, работа которого была только что прервана, и загружает очередной выполненный процесс.
Метод своппинга влияет на величину временного кванта Round Robin стратегии.
Пример.
-
пусть очередной загружаемый в память процесс имеет размер 100Кб.
-
диск позволяет читать данные со скоростью 1 Мб в секунду
-
следовательно, 100 Кб могут быть загружены за 100 мс.
-
будем считать, что для первоначального подвода головки чтения - записи потребуется 8 мс
-
таким образом, операция своппинг займет 108 мс, а общее время своппинга - 216 мс.
Для эффективной загруженности процессора время своппинга должно быть существенно меньше времени счета. Следовательно, для рассмотренного примера квант времени должен быть существенно больше, чем 216 мс. Ясно, что это число значительно увеличится, если перемещаемый процесс имеет размер, например, 1 Мб.
Недостаток “чистого” своппинга в больших потерях времени на загрузку или выгрузку процессов. Поэтому в современных операционных системах используется модифицированные варианты своппинга.