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

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

Upload: shaeleigh-harper

Post on 31-Dec-2015

38 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

Лекция 7

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

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

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

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

Планиране

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Roadmap

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приоритети

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

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

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

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

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

Starvation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Циклична

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Exponential Smoothing Coefficients)

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

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

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

Use Of Exponential Averaging

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Формули

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

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

Response Time)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Roadmap

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

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

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

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

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

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

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

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

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

(Bands)

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

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

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

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

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

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

UNIX