Лекция 7 Еднопроцесорно планиране

Preview:

DESCRIPTION

Лекция 7 Еднопроцесорно планиране. Типове процесорно планиране Алгоритми за планиране Традиционно UNIX планиране. Планиране. Една ОС трябва да разпределя ресурсите между конкуриращи се процеси. Ресурсът, осигуряван от процесора, е време за изпълнение (execution time) - PowerPoint PPT Presentation

Citation preview

Лекция 7

Еднопроцесорно планиране

• Типове процесорно планиране• Алгоритми за планиране • Традиционно UNIX планиране

Планиране

• Една ОС трябва да разпределя ресурсите между конкуриращи се процеси.

• Ресурсът, осигуряван от процесора, е време за изпълнение (execution time)• Ресурсът се разпределя по график

Главна цел на планирането

• Целта на планирането на процесора е да се определи кои процеси да се изпълнят от процесора в течение на времето, • по начин, който отговаря на целите на

системата, като например време за отговор, капацитет и ефективност на процесора.

Цели на планирането

• Функцията “планиране” трябва да • Поделя справедливо времето между

процесите • Предотвратява starvation на процес• Използва процесора ефективно • Има ниско допълнително натоварване

(overhead)• Да приоритизира процесите, когато е

необходимо (тоест при крайни срокове в реално време)

Типове планиране

Две суспендирани състояния

• Помните ли тази диаграма от Глава 3

Планиране и преходи между състоянията на процес

Влагане на планиращите функции

Диаграма на опашка

Дългосрочно планиране

• Определя кои програми се допускат до системата за обработка • Може да бъде “първа дошла, първа обслужена”

(first-come-first-served)• Или според критерии като приоритет, входно-

изходни изисквания или очаквано време за изпълнение

• Контролира степента на мултипрограмиране • При повече процеси е по-малък процента

време за изпълнение на процеса

Средносрочно планиране

• Част от функцията за размяна • Решенията за размяна се основават на

необходимостта да се управлява степента на мултипрограмиране

Краткосрочно планиране

• Известно като диспечерът • Най-често се изпълнява • Извиква се при настъпването на

събитие • Прекъсвания (Clock interrupts)• Входно-изходни прекъсвания • Извиквания от операционната система • Сигнали

Roadmap

• Типове процесорно планиране• Алгоритми за планиране • Традиционно UNIX планиране

Цели на краткосрочното планиране

• Основната цел е да разпредели процесорно време, за да оптимизира определени аспекти от поведението на системата.

• Необходим е набор от критерии за оценка на политиката на планиране.

Критерии при краткосрочното планиране: Потребител срещу система

• Можем да направим разграничение между критерии, свързани с потребителя и със системата

• Ориентирани към потребителя• Време за отговор

• Времето, изминало между подаването на заявката и отговора й.

• Ориентирани към системата • Ефективно използване на процесора

Критерии при краткосрочното планиране: Производителност

• Можем да разграничим критериите, свързани с производителността и тези, които не са свързани с нея

• Свързани с производителността • Количествени, лесни за измерване • Например време за отговор и капацитет

• Не свързани с производителността • Качествени • Трудни за измерване

Приоритети

• При планиране винаги се предпочита процес с по-висок приоритет пред такъв с по-нисък

• Трябва да има няколко готови опашки, които да представляват всяко ниво на приоритет

Подреждане на приоритетите в опашки

Starvation

• Проблем:• За процесите с нисък приоритет може

никога да няма ресурс, ако има постоянен приток от процеси с висок приоритет.

• Решение: • Да се позволи на процесите да променят

приоритета си в зависимост от възрастта и историята си

Алтернативни политики за планиране

Функция за избор

• Определя кой процес да се избере за изпълнение

• Ако се основава на параметрите на изпълнението, тогава важните параметри са:• w = времето, прекарано досега в системата

в процес на очакване • e = времето, прекарано досега в

изпълнение • s = общото необходимо време,

включително e;

Режим за решаване

• Определя моментите във времето, когато се изпълнява фукцията за избор.

• Две категории:• Без изместване (Nonpreemptive)• С изместване (Preemptive)

Сравнение на без изместване и с изместване

• Без изместване • След като веднъж един процес е в

състояние на работа (running state), той ще продължи да се изпълнява, докато свърши или се блокира за вход и изход

• С изместване • Текущо работещ процес може да се

прекъсне от ОС и да се премести в готово състояние

• Изместването може да стане, когато се появи нов процес, при прекъсване или периодично.

Пример за планиране на процеси

• Примерен набор от процеси, като всеки от тях е групова задача (batch job)

• Времето за обслужване представлява общото време за изпълнение

Първи дошъл, първи обслужен (First-Come-First-Served)

• Всеки процес се добавя към опашката с готови процеси

• Когато текущият процес спре изпълнение, процесът, който най-дълго е бил в опашката с готови процеси, се избира

Първи дошъл, първи обслужен

• Кратките процеси може да чакат много дълго преди да се изпълнят

• В полза на свързаните с процесора процеси • Процесите, свързани с входа и изхода,

трябва да чакат, докато тези, свързани с процесора, приключат

Циклична (Round Robin)

• Използва изместване, базирано на часовник • Известно още като (time slicing), защото

всеки процес получава по една единица време преди да бъде изместен.

Циклична

• Часовниково прекъсване се генерира периодично с определени интервали

• Когато има прекъсване, текущо изпълняваният процес се поставя в готовата опашка • Избира се следващата готова задача

Влияние на размера на времевия квантум за изместването

Влияние на размера на времевия квантум за изместването

‘Виртуална циклична’

Най-краткият процес е следващ (Shortest Process Next)

• Политика без изместване • Процесът с най-кратко очаквано време

за обработка се избира да е следващ • Кратките процеси са облагодетелствани

за сметка на по-дългите процеси

Най-краткият процес е следващ

• Намалява се предсказуемостта за по-дългите процеси

• Ако прогнозираното време за процес не е точно, операционната система може да спре изпълнението му

• При по-дългите процеси може да се стигне до ???starvation

Изчисляване на пика (‘Burst’) на програмата

• Където:• Ti = процесорното време,

необходимо за изпълнение на i-тата инстанция на този процес

• Si = прогнозираната стойност за i-тата инстанция

• S1 = прогнозираната стойност за първата инстанция; не се изчислява

Експоненциално усредняване

• Често използваната техника за прогнозиране на бъдеща стойност на базата на времева серия от минали стойности се нарича експоненциално усредняване

Коефициенти за ???експоненциално изглаждане

(Exponential Smoothing Coefficients)

Употреба на експоненциално усредняване

Use Of Exponential Averaging

Най-кратко оставащо време (Shortest Remaining

Time)• Версия с изместване на политиката

“най-краткият процес е следващ”• Трябва да оцени времето за обработка

и да избере процеса с най-кратко такова

Най-високо отношение на отклик (Highest Response

Ratio Next)• Изберете за следващ процес процесът

с най-голямо съотношение

Политика с обратна връзка (Feedback Scheduling)

• В ущърб на задачите, които са изпълнявани най-дълго

• Не се знае оставащото време, необходимо на процеса за изпълнение

Производителност при обратната връзка

• Има разновидности, най-елементарната разновидност включва периодично изместване, подобно на цикличната политика • Но може да доведе до ???starvation

Сравнение на производителността

• Всяка политика на планиране, която избира следващия процес за обслужване независимо от времето за обслужване се подчинява на следната зависимост:

Формули

?????Цялостно нормализирано време за отговор (Overall Normalized

Response Time)

Нормализирано време за отговор за по-кратки процеси

Нормализирано време за отговор за по-дълги процеси

Нормализирано време за обработка

Справедливо планиране (Fair-Share Scheduling)

• Потребителското приложение работи като набор от процеси (нишки)

• За потребителя значение има производителността на приложението

• Необходимост да се вземат решения за планиране на базата на набори от процеси

Справедливо планиране

Roadmap

• Tипове процесорно планиране • Алгоритми за планиране • Традиционно UNIX планиране

Традиционно UNIX планиране

• Планиране с обратна връзка на много нива, което използва циклична политика вътре във всяка от опашките

• Ако работещ процес не се блокира или приключи в рамките на 1 секунда, се измества

• Приоритетите са на база типа на процеса и историята му.

Формула на планирането

(Bands)

• Приоритетите се преизчисляват веднъж в секунда

• Базов приоритет разделя всички процеси на фиксирани ленти с нива на приоритет • Процес за размяна (Swapper) - най-висок• Устройство за контрол на блокирането на входно-

изходни устройства (Block I/O device control)• Работа с файлове (File manipulation)• Устройство за контрол на символните входни-

изходни устройства (Character I/O device control)• Потребителски процеси (най-нисък)

Пример за традиционно планиране на процеси под

UNIX

Recommended