Лекция №3 Управление задачами Диспетчеризация

advertisement
Лекция №3
Управление задачами
Диспетчеризация
Диспетчеризация
 англ: dispatch — быстро выполнять
 процесс централизованного оперативного
контроля, управления, координации
какого-либо процесса с использованием
оперативной передачи информации между
объектом диспетчеризации и пунктом
управления.
Планировщики
 Не надо путать с Планировщиком задач,
(программа, которая запускает другие программы в зависимости от различных критериев, как например)
 Компоненты ядра – основным
назначением которых является
организация доступа процессов к CPU
Важность
1. Влияют на все остальные части ядра.
2. Оптимальны
3. Безупречны
Цели планирования
 Беспристрастность
 Планировщик должен беспристрастно выделять
процессорное время каждой задаче. В новом ядре был
проделан обширный объем работ для того, чтобы обеспечить
справедливое распределение квантов времени между
процессами.
 Производительность и загрузка процессора
 Планировщик должен стараться максимизировать
производительность и загрузку процессора. Обычно это
достигается за счет увеличения объема
мультипрограммирования. Но такой подход дает прирост
только до определенного момента, после которого
становится непродуктивным.
 Минимальные накладные расходы
 Сам планировщик должен занимать процессор настолько
малое время, насколько это возможно.
 Время реакции планировщика должно быть минимальным.
 Эвристические алгоритмы.
Цели планирования

Планирование на основе приоритетов


Время цикла обслуживания, время ожидания


Время цикла обслуживания -- это сумма времени, потраченного на
обслуживание процесса и время, проведенное задачей в очереди готовых к
запуску процессов. Это время должно быть сведено к минимуму.
Время отклика и дисперсия


Приоритетное планирование означает, что одни процессы могут иметь
превосходство перед другими в конкуренции за процессор. Планировщик,
по крайней мере, должен различать процессы занятые вводом-выводом и
"числодробилки". Кроме того должен быть учтен эффект "застаивания" так,
чтобы в системе не было "зависших" процессов. Linux поддерживает
приоритеты и различает разные категории процессов. Ядро различает
пакетные и интерактивные задачи. Каждая из них получает свою долю
процессорного времени в соответствии со своим приоритетом.
Скорость реакции программы должна быть настолько высокой, насколько
это возможно. Дисперсия времени отклика, который зачастую игнорируется.
Совершенно недопустимо, когда среднее время отклика задачи невелико, но
при этом иногда возникают длительные задержки в интерактивных
процессах.
Прочие

Планировщик должен преследовать и другие цели, например
предсказуемость. Поведение планировщика должно быть предсказуемым
для данного множества процессов с назначенными приоритетами. При
увеличении нагрузки, падение производительности планировщика должно
быть гладким.
Типы планировщиков

Долговременный


решает, какие задачи или процессы будут добавлены в очередь процессов, готовых к
выполнению; то есть, когда производится попытка запуска процесса, долговременный
планировщик или добавляет новый процесс в очередь готовых процессов (допускает к
выполнению), или откладывает это действие. Данный планировщик очень важен для
систем реального времени, так как при чрезмерной нагрузке системы параллельно
выполняющимися процессами время отклика системы может стать больше требуемого,
что недопустимо.
Среднесрочный

Во всех системах с виртуальной памятью среднесрочный планировщик временно
перемещает (выгружает) процессы из основной памяти во вторичную (например, на
жёсткий диск), и наоборот. Эти действия называются подкачкой или свопингом.
Среднесрочный планировщик может принять решение выгрузить процесс из основной
памяти если:






процесс был неактивен некоторое время;
процесс имеет низкий приоритет;
процесс часто вызывает ошибки страниц (page fault);
процесс занимает большое количество основной памяти, а системе требуется свободная
память для других целей (например, чтобы удовлетворить запрос выделения памяти для
другого процесса).
Процесс будет возвращён в основную память когда будет доступно необходимое
количество свободной памяти, или когда процесс выйдет из режима ожидания (в этом
случае планировщик выгрузит из основной памяти другой процесс для освобождения
основной памяти)
Краткосрочный
Когда планировать
 Создается новый процесс, какой процесс
запустить: дочерний или родительский.
 Завершение процесса, необходимо из набора
готовых выбрать и запустить следующий,
если процессов в состоянии готовности нет,
запускается «холостой процесс».
 Процесс блокируется на вводе-выводе,
семафоре и т.д. Причина блокировке влияет
на выборе.
 Появление прерывания устройства или
ввода-вывода, например которого ждет
другой процесс.
Алгоритмы планирования
 Без переключений (неприоритетный).
Позволяют работать вплоть до блокировки,
либо пока сам процесс не отдаст процессор.
Не будет прерван даже если работает часами.
 С переключениями (приоритетным).
Позволяют процессу работать максимально
возможное фиксированное время. По
окончанию времени он приостанавливается.
Требует прерывания по таймеру.
Задачи алгоритмов планирования

Все системы




Системы пакетной обработки данных




Пропускная способность – максимальное количество задач в час
Оборотное время – минимизация времени, затрачиваемого на ожидание
обслуживания и обработку задачи
Использование процессора – поддержка постоянной занятости процессора
Интерактивные системы



Справедливость – предоставление каждому процессу справедливой доли
процессорного времени
Принудительное применение политики – контроль за выполнением принятой
политики
Баланс – поддержка занятости всех частей системы
Время отклика – быстрая реакция на запросы
Соразмерность – выполнение пожеланий пользователя
Системы реального времени


Окончание работы к сроку – предотвращение потери данных
Предсказуемость – предотвращение деградации качества в мультимедийных
системах
Планирование в системах пакетной
обработки данных
Первым пришел – первым обслужен
 Самый простой
 Доступ к CPU в том порядке, в котором они его запрашивают
 Когда процесс блокируется, запускается следующий из очереди,
когда блокировка снимается, процесс попадает в конец очереди
+
-
Кратчайшая задача - первая
 Если в очереди несколько одинаково
важных задач, планировщик выбирает
самую короткую задачу.
Контр пример:
Оборотное время:
A - 2, B -4, C - 1,4D - 1, E - 1 –4 причём A4и B доступны сразу,
A – 8а C,
8
D, E через 3 минуты. Вначале можно выбрать толькоBA–или
12 B.
Если
A по алгоритму
B A, B, C,CD, E среднее
D время 4,6. C – 16
Если запустить в порядке B, C, D, E, A – среднее 4,4 D – 20
Среднее время 14
4
4
4
8
B
C
D
A
Оборотное время:
B–4
C–8
D – 12
A - 20
Среднее время 11
Наименьшее оставшееся время
выполнения
 Выбирается процесс с наименьшим
оставшимся временем выполнения.
 Необходимо знать время выполнения задач.
 Быстрое обслуживание коротких запросов.
При поступлении новой задачи, её полное
время выполнения сравнивается с временем
выполнения текущей задачи. Если время
выполнения меньше, текущий процесс
приостанавливается и управление передается
новой задаче.
Задания на семинар:
Межпроцессорное взаимодействие
 Взаимоблокировка, понятие, примеры,




пути выхода.
Семафоры, мьютексы, примеры проблемы,
применение.
Мониторы (это не ЖК и ЭЛТ)
Сообщения, сигналы, барьеры
Классические проблемы
межпроцессорного взаимодействия
Вопрос лекции №3
 Есть два бикфордовых шнура. Разных.
Известно одно: каждый из них полностью
сгорает ровно за час. Как при помощи этих
шнуров (и зажигалки :) отмерить 45 минут?
Как горят шнуры не известно: может
равномерно, а может и нет.
То что шнур целиком сгорает за час, не
значит что половина шнура сгорит за 30
минут.
Download