Лекция 4 Управление задачами Диспетчеризация
Трехуровневое планирование Планировщик памяти 1.Сколько времени прошло с тех пор, как процесс был выгружен на диск 2.Сколько времени процесс уже использовал 3.Каков размер процесса 4.Какова важность процесса
Интерактивные системы. Циклическое планирование BFDGABFDGA Длина кванта Переключение процесса = 1мс Квант = 4мс 20% времени CPU уходит на администрирование Переключение процесса = 1мс Квант = 100мс 10 пользователей нажимают на кнопку. Последний будет ждать 1 сек. слишком малый квант приведет к частому переключению процессов и небольшой эффективности, но слишком большой квант может привести к медленному реагированию на короткие интерактивные запросы. Значение кванта около мс.
Приоритетное планирование Каждому процессу присваивается приоритет. Планировщик отдаёт управление готовому к работе процессу с самым высоким приоритетом. Планировщик может уменьшать приоритет процесса с каждым тактом. Простой алгоритм: 1/f, где f – часть использованного в последний раз кванта. Приоритет 2 Приоритет 3 Приоритет 4 Приоритет 1 Самый высокий приоритет Самый низкий приоритет
Несколько очередей Процессу требуется 100 квантов. Сначала предоставляется 1 квант, затем 2, 4, 8, 16, 32, 64. Он использует только 37. Классы приоритетов: 1.Терминал 2.Ввод-вывод 3.Короткий квант 4.Длинный квант Когда запускался процесс, ожидающий вывода на терминал, он перемещался в класс высшего приоритета (терминал). Когда снималась блокировка процесса, ожидавшего доступа к диску, он перемещался во второй класс. Если к концу отведенного времени процесс все еще работал, он сначала перемещался в третий класс. Если процесс слишком много раз полностью использовал свой квант времени, не блокируясь на терминале или другом устройстве ввода-вывода, он перемещался в последний класс. Фоновая работа Windows
Самый короткий процесс - следующий Определение длинны процесса определяется из предыдущего поведения процесса. T0 T1 Предполагаемое время исполнения команды Предполагаемое время следующего запуска aT0 + (1 – a)T1 – взвешенная сумма T0, T0/2 + T1/2, T0/4 + T1/4 + T2/2, T0/8 + T1/8 + T2/4 + T3/2 После 3-х запусков вес T0 в оценке уменьшиться до 1/8. Часто называют старением.
Гарантированное планирование Предоставление пользователю реальных обещаний и затем их выполнение. Например: Если вместе с Вами процессором пользуются n пользователей, то Вам будет предоставлено 1/n мощности процессора. И в системе с одним пользователем и n запущенными процессорами каждому достанется 1/n циклов процессора.
Лотерейное планирование «Раздаются» лотерейные билеты процессам Планировщик случайным образом выбирает лотерейный билет Если у процесса 20 билетов из 100 то ему достанется 20% времени процессора Взаимодействующие процессы могут обмениваться билетами
Справедливое планирование Что делать если пользователь 1 создаст 9 процессов, а пользователь 2 – 1 процесс. Пример: 2 пользователя. У 1-го процессы A,B,C,D у 2-го E AEBECEDE циклическое ABECDEAB 1-му положено в двое больше
Планирование в системах реального времени Жесткие системы (жесткие сроки в которые надо укладываться) Гибкие системы (нежелательны но допустимы) Внешние события: 1.Периодические (возникающие через регулярные интервалы) 2.Непериодические (возникающие непредсказуемо) Если в систему поступает m периодических событий, событие с номером I поступает с периодом Pi и на его обработку уходит Сi секунд, то все процессы будут обработаны только при выполнении условия: СРВ удовлетворяющие этому условию, называются поддающимися планированию или планируемыми. СРВ с 3-мя периодическими сигналами: с периодами 100, 200, 500 мс. Если на обработку уходит 50, 30, 100 мс – система поддается планированию т.к. 0,5 + 0,15 + 0,2 < 1
Планирование потоков 2 уровня параллелизма, на уровне потоков и на уровне процессов Зависит от поддержки потоков на уровне ядра или на уровне пользователя