Планиране на процесори (или Планиране на процесора) определя на кои процеси са присвоени и премахнати от процесора въз основа на модели за планиране като Изпреварваща и Непредвиден график (също известен като Планиране на кооперацията).
По-старите системи могат да работят в прости автономни режими, но с нарастващата нужда от отзивчиви, гъвкави системи, както и от виртуализация, ефективното управление на мулти обработката осигурява бърз отговор на всички заявки за обработка на задачи.
Единиците за планиране често се наричат a задача и задачата на планиращия е да изпълнява и управлява тези задачи, когато е необходимо; Scheduler избира задачата, която трябва да бъде премахната и назначена на процесора за обработка, според използвания модел за планиране.
Планировникът трябва да стартира справедлив и ефикасен процес на подбор, като взема предвид променливите, динамични заявки за обработка и се възползва максимално от процесорните цикли.
Задачите могат да бъдат в две състояния по време на обработка:
Когато процесорът е в режим на празен ход, Scheduler чете Готова опашка, и избира следващата задача, която трябва да се изпълни. Тогава е диспечер което дава контрол на избраната задача на процесора, така че той трябва да бъде бърз! Всеки път, поет от диспечера, е известен като Закъснение за изпращане.
Има различни структури и персонализирани параметри за определяне на Готова опашка, както и няколко метода, които могат да се използват за управление на сложността на процеса на планиране.
Като цяло, за оптимизиране и максимално използване на процесора, пропускателна способност и т.н..
Графикът трябва да вземе решение на един от следните етапи:
Трябва да бъде избрана нова задача, ако етап 1 или 4 се случи, за да се осигури пълно използване на процесора, и в двата и втория етап задачата може да продължи да се изпълнява или е избрана нова.
След като разберем как се обработва дадена задача, нека разгледаме два модела на планиране, които се занимават с прекъсвания на процесора.
И двете имат сходни функции със задачи, състояния на задачи, опашки и приоритети (статични или динамични):
Задачите в непредпазлива система ще се изпълняват, докато не бъдат завършени.
Планировчикът след това проверява състоянията на всички задачи и планира следващата задача с най-висок приоритет с a Готов състояние.
При непредпазливо планиране, след като задачата има задание към процесора, тя не може да бъде отнета, дори ако кратките задачи трябва да изчакат да приключат по-дългите задачи.
Управлението на планирането за всички задачи е „справедливо“ и времената за реакция са предвидими, тъй като задачите с висок приоритет не могат да прехвърлят чакащите задачи по-надолу на опашката.
Планировчикът гарантира, че всяка задача получава своя дял от процесора, като избягва забавяне с всяка задача. „Времето“, отредено на процесора, не е задължително да е равно, тъй като зависи от това колко време ще отнеме задачата.
Този модел на планиране позволява да се прекъсват задачите - за разлика от Непредприемащото планиране, което има подход „изпълнение до завършване“.
Прекъсванията, които биха могли да бъдат инициирани от външни обаждания, призовават Scheduler да постави на пауза течаща задача, за да управлява друга задача с по-висок приоритет - така че контролът на процесора може да бъде превантиран.
Задачата с най-висок приоритет в a Готов състояние се изпълнява, което позволява бързо реагиране на събития в реално време.
Някои от минусите на Preemptive Scheduling включват увеличаване на режийните разходи за ресурси при използване на прекъсвания и проблеми могат да възникнат с две задачи за споделяне на данни, тъй като една може да бъде прекъсната при актуализиране на споделени структури от данни и може да повлияе негативно на целостта на данните.
От друга страна, е практично да можете да поставите на пауза задача, за да управлявате друга, която може да бъде критична.
Могат да бъдат дефинирани много отклонения и зависимости в различни политики, като например използване на a „Политика за закръгляване на Робин [i]“ където всяка задача (с равен приоритет) се изпълнява веднъж и след това се поставя в края на опашката, за следващия цикъл.
Други политики включват Първо-In-First-Out, Най-къс-Job-Първи, Най-къс-Job-Next, Най-кратко оставащо време, и т.н..
Анализът на исторически данни може да предостави информация за аспекти, като скоростта, с която пристигат нови задачи, CPU и I / O Bursts и т.н., така че разпределенията на вероятностите могат да изчислят характеристиките на чакащите задачи, като по този начин въоръжават администраторите с подходящи данни за определяне на модели за планиране..