110 likes | 278 Views
Планиране на процеси. гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи. Съдържание. Нива на планиране Цели на планирането Дисциплини за планиране FCFS (First-Come-First-Served) SJF (Shortest-Job-First) SRT (Shortest-Remaining-Time) Циклична дисциплина или RR (Round-Robin)
E N D
Планиране на процеси гл. ас. Моника ФилиповаФМИ, Катедра Изчислителни системи
Съдържание • Нива на планиране • Цели на планирането • Дисциплини за планиране • FCFS (First-Come-First-Served) • SJF (Shortest-Job-First) • SRT (Shortest-Remaining-Time) • Циклична дисциплинаили RR (Round-Robin) • Дисциплини с няколко опашки • Планиране на процесите в UNIX • Планиране на процесите в MINIX
Нива на планиране • При наличие на много заявки за използване на определен ресурс, вземането на решение коя от тях да бъде удоволетворена се нарича планиране. • Планиране на високо ниво (на заданията) Решава кое от чакащите задания да бъде заредено в системата и да се създадат задачи (процеси) за него. • Планиране на ниско ниво Планировчикът на това ниво определя кой от готовите процеси да бъде избран за текущ и колко време да работи. • Планиране на междинно ниво (на свопинга) Планировчикът управлява изхвърлянето на процеси на диска в свопинг областта и обратното им връщане в ОП.
Цели на планирането • Справедливост Времето на ЦП да се разпределя справедливо между процесите. • Баланс Пълно натоварване на всички ресурси на системата. • Ефективност По-голяма част от времето на ЦП да се използва за изпълнение на потребителски процеси, а не за служебни цели. • Време за отговор (response time) Времето за обслужване на една потребителска заявка. • Време за чакане (waiting time) Общото време, през което процесът чака в състояние готов. • Предсказуемост Да се гарантира завършването на всеки процес, т.е. да не се случва безкрайно отлагане.
(а) интервал на В/И интервал на ЦП (б) Видове процеси Работата на всеки процес е последователност от редуващи се интервалис различни дължини: • интервал на ЦП (CPU burst) • интервал, в който процесът чака В/И (I/O burst) (а) Процес ограничен от ЦП (CPU bound) (б) Процес ограничен от Вход/Изход (I/O bound)
Дисциплини за планиране Кога работи планировчикът? • Когато текущият процес завърши, като изпълни exit. • Когато текущият процес извика примитив, изискващ блокиране като read, write, wait или друг. Ако планировчикът работи само в тези два случая, се казва че реализира планиране без преразпределение (nonpreemptive scheduling). • След обработката на апаратно прекъсване, преди процесът да се върне в потребителска фаза. Ако планировчикът работи и в този случай, се казва че реализира планиране с преразпределение (preemptive scheduling).
Дисциплини за планиране • FCFS (First-Come-First-Served) • без преразпределение • без приоритети на процесите • SJF (Shortest-Job-First) • без преразпределение • приоритетна дисциплина – приоритетът е обратно пропорционален на очакваното време за изпълнение на процеса • SRT (Shortest-Remaining-Time) • с преразпределение • приоритетна дисциплина - приоритетът е обратно пропорционален на оставащо време = очаквано време - получено време • Кратките процеси се обслужват с предимство, следователно се намалява тяхното време за чакане. • Не е приложима в интерактивни ОС.
Дисциплини за планиране • RR (Round-Robin)или циклична дисциплина • Всички готови процеси са подредени в опашка по реда на появяването им (създаване или деблокиране). • Планировчикът избира първия процес от опашката и му определя интервал време - квант (quantum), през който той може да използва ЦП. • Ако при изтичане на кванта процесът не е завършил или не се е блокирал, то му се отнема ЦП и се поставя в края на опашката на готовите процеси (с преразпределение). • Дава предимство на кратките процеси без да дискриминира дългите. • Осигурява приемливо време за отговор в интерактивните ОС за процесите ограничени от В/И. • Проста за реализация е. • Справедлива е - всички процеси са равноправни.
Дисциплини с няколко опашки • Процесите да се класифицират в няколко класи. • За всеки клас да се поддържа опашка на готовите процеси. • Всяка опашка има свой приоритет и може да се обслужва с различна дисциплина. • Когато ЦП се освободи планировчикът избира процес от непразната опашка с най-висок приоритет и го обслужва според дисциплината на опашката му. Как процесите се разпределят по опашките? • Връзката между процес и опашка е статична. • Опашки с обратна връзка
Планиране на процесите в UNIX Системни приоритети - на процес в системна фаза, който се е блокирал. Потребителски приоритети - на процес в потребителска фаза и преразпределен priority = CPU/2 + base + nice