Какво е CPU Scheduling?
CPU Scheduling е процес за определяне на кой процес ще притежава CPU за изпълнение, докато друг процес е задържан. Основната задача на планирането на процесора е да се увери, че всеки път, когато процесорът остава неактивен, операционната система най-малко избира един от процесите, налични в опашката за готовност за изпълнение. Процесът на подбор ще се извършва от планиращия процесор. Той избира един от процесите в паметта, които са готови за изпълнение.
В този урок за планиране на процесора ще научите:
- Какво е планиране на процесора?
- Видове планиране на процесора
- Важни терминологии за планиране на процесора
- Критерии за планиране на процесора
- Интервален таймер
- Какво е Dispatcher?
- Видове алгоритъм за планиране на процесора
- First Come First Serve
- Най-кратко оставащо време
- Приоритетно планиране
- График на кръг Робин
- Първо най-късата работа
- Планиране на опашки на няколко нива
- Целта на алгоритъм за планиране
Видове планиране на процесора
Ето два вида методи за планиране:
Предварително планиране
При превантивно планиране задачите се разпределят най-вече с техните приоритети. Понякога е важно да изпълните задача с по-висок приоритет преди друга задача с по-нисък приоритет, дори ако задачата с по-нисък приоритет все още се изпълнява. Задачата с по-нисък приоритет се задържа известно време и се възобновява, когато задачата с по-висок приоритет приключи изпълнението си.
Непревентивно планиране
При този тип метод за планиране, процесорът е разпределен за определен процес. Процесът, който задържа процесора зает, ще го освободи или чрез превключване на контекста, или чрез прекратяване. Това е единственият метод, който може да се използва за различни хардуерни платформи. Това е така, защото не се нуждае от специален хардуер (например таймер) като превантивно планиране.
Когато планирането е изпреварващо или непрепятствено?
За да определите дали планирането е превантивно или непредварително, вземете предвид тези четири параметъра:
- Процесът преминава от работещ в състояние на изчакване.
- Специфичен процес превключва от работещо състояние в състояние на готовност.
- Специфичен процес преминава от състояние на изчакване в състояние на готовност.
- Процесът завърши изпълнението си и прекрати.
Прилагат се само условия 1 и 4, графикът се нарича непредпазлив.
Всички останали графици са превантивни.
Важни терминологии за планиране на процесора
- Burst Time / Време за изпълнение: Това е време, необходимо на процеса за завършване на изпълнението. Нарича се още време на работа.
- Време за пристигане: когато процесът влезе в състояние на готовност
- Крайно време: когато процесът завърши и излезе от системата
- Мултипрограмиране: Редица програми, които могат да присъстват в паметта едновременно.
- Работа: Това е вид програма без никакъв вид взаимодействие с потребителя.
- Потребител: Това е вид програма с взаимодействие с потребителя.
- Процес: Това е референцията, която се използва както за работа, така и за потребител.
- CPU / IO цикъл на избухване: Характеризира изпълнението на процеса, което редува CPU и I / O активност. Времето на процесора обикновено е по-кратко от времето на I / O.
Критерии за планиране на процесора
Алгоритъм за планиране на процесора се опитва да максимизира и минимизира следното:
Увеличете:
Използване на процесора: Използването на процесора е основната задача, при която операционната система трябва да се увери, че процесорът остава възможно най-зает. Може да варира от 0 до 100 процента. За RTOS обаче той може да варира от 40% за ниско ниво и 90% за система от високо ниво.
Пропускателна способност: Броят на процесите, които завършват изпълнението си за единица време, е известен. Така че, когато процесорът е зает с изпълнението на процеса, по това време се работи и работата, завършена за единица време, се нарича пропускателна способност.
Минимизиране:
Време за изчакване: Времето за изчакване е сума, която конкретният процес трябва да изчака в готовата опашка.
Време за отговор: Това е период от време, в който искането е било подадено до първия отговор.
Време за изпълнение: Времето за изпълнение е период от време за изпълнение на определен процес. Това е изчисляването на общото време, прекарано в изчакване, за да влезе в паметта, изчакване в опашката и изпълнение на процесора. Периодът между времето на подаване на процеса до времето на завършване е времето за изпълнение.
Интервален таймер
Прекъсването на таймера е метод, който е тясно свързан с изпреварването. Когато определен процес получи разпределението на процесора, таймерът може да бъде зададен на определен интервал. И прекъсването на таймера, и изпреварването принуждават процеса да върне процесора, преди да завърши неговият процесор.
Повечето от мултипрограмираната операционна система използва някаква форма на таймер, за да попречи на процеса да свързва системата завинаги.
Какво е Dispatcher?
Това е модул, който осигурява контрол на процесора към процеса. Диспечерът трябва да бъде бърз, за да може да работи на всеки контекстен превключвател. Латентността на изпращане е времето, необходимо на процесора за планиране, за да спре един процес и да стартира друг.
Функции, изпълнявани от Dispatcher:
- Превключване на контекст
- Превключване към потребителски режим
- Преместване на правилното място в новозаредената програма.
Видове алгоритъм за планиране на процесора
Има главно шест вида алгоритми за планиране на процеси
- Първо дойде първото обслужване (FCFS)
- График за най-краткото първо задание (SJF)
- Най-кратко оставащо време
- Приоритетно планиране
- Планиране на кръг Робин
- Планиране на многостепенна опашка

First Come First Serve
First Come First Serve е пълната форма на FCFS. Това е най-лесният и лесен алгоритъм за планиране на процесора. При този тип алгоритъм процесът, който иска CPU, получава разпределението на CPU първо. Този метод на планиране може да се управлява с FIFO опашка.
Тъй като процесът влиза в опашката за готовност, неговата ПХБ (блок за управление на процеса) е свързан с опашката на опашката. Така че, когато CPU стане безплатен, той трябва да бъде присвоен на процеса в началото на опашката.
Характеристики на метода FCFS:
- Той предлага алгоритъм за предварително и непредвидимо планиране.
- Работните места винаги се изпълняват на първо място, първо обслужен
- Той е лесен за изпълнение и използване.
- Този метод обаче е с лошо представяне и общото време на изчакване е доста високо.
Най-кратко оставащо време
Пълната форма на SRT е най-краткото оставащо време. Известно е също като превантивно планиране на SJF. При този метод процесът ще бъде разпределен към задачата, която е най-близо до нейното завършване. Този метод предотвратява по-нов готов процес на състояние да задържи завършването на по-стар процес.
Характеристики на метода за планиране на SRT:
- Този метод се прилага най-вече в групови среди, където се изисква да се даде предпочитание на кратките задачи.
- Това не е идеалният метод за прилагането му в споделена система, където необходимото време на процесора е неизвестно.
- Асоциирайте се с всеки процес като продължителността на следващия му процесор. Така че операционната система използва тези дължини, което помага да се планира процесът с възможно най-кратко време.
Приоритетно планиране
Приоритетното планиране е метод за планиране на процеси, базиран на приоритет. При този метод планировчикът избира задачите, които да работят според приоритета.
Приоритетното планиране също помага на ОС да включва приоритетни назначения. Първо трябва да се извършват процесите с по-висок приоритет, докато работните места с еднакви приоритети се извършват на кръг или FCFS. Приоритетът може да се реши въз основа на изискванията за памет, изискванията за време и т.н.
График на кръг Робин
Round robin е най-старият и прост алгоритъм за планиране. Името на този алгоритъм идва от принципа на кръгообразното, където всеки човек получава равен дял от нещо на свой ред. Използва се най-вече за алгоритми за планиране при многозадачност. Този метод на алгоритъм помага за безпроблемно изпълнение на процеси.
Характеристики на планирането с кръг Робин
- Round robin е хибриден модел, който се управлява от часовника
- Времето трябва да бъде минимално, което се определя за конкретна задача, която трябва да бъде обработена. Тя обаче може да варира за различните процеси.
- Това е система в реално време, която реагира на събитието в рамките на определен срок.
Първо най-късата работа
SJF е пълна форма на (Най-кратката работа първо) е алгоритъм за планиране, при който процесът с най-кратко време за изпълнение трябва да бъде избран за следващо изпълнение. Този метод на планиране може да бъде превантивен или непредвидителен. Това значително намалява средното време за изчакване за други процеси, които очакват изпълнение.
Характеристики на SJF планиране
- Той е свързан с всяка работа като единица време за завършване.
- При този метод, когато CPU е наличен, следващият процес или работа с най-кратко време за завършване ще бъде изпълнен първо.
- Прилага се с непревентивна политика.
- Този метод на алгоритъм е полезен за пакетна обработка, където изчакването на завършване на заданията не е критично.
- Той подобрява резултатите от работата, като предлага по-кратки работни места, които трябва да бъдат изпълнени първо, които имат предимно по-кратко време за изпълнение.
Планиране на опашки на няколко нива
Този алгоритъм разделя готовата опашка на различни отделни опашки. При този метод процесите се присвояват на опашка въз основа на конкретно свойство на процеса, като приоритет на процеса, размер на паметта и т.н.
Това обаче не е независим алгоритъм за планиране на ОС, тъй като трябва да използва други видове алгоритми, за да планира заданията.
Характерно за планирането на опашки на няколко нива:
- Трябва да се поддържат множество опашки за процеси с някои характеристики.
- Всяка опашка може да има отделни алгоритми за планиране.
- Дават се приоритети за всяка опашка.
Целта на алгоритъм за планиране
Ето причините за използването на алгоритъм за планиране:
- Процесорът използва планиране, за да подобри своята ефективност.
- Той ви помага да разпределите ресурси между конкурентни процеси.
- Максималното използване на процесора може да се получи с многопрограмиране.
- Процесите, които трябва да бъдат изпълнени, са в готова опашка.
Резюме:
- Графикът на процесора е процес на определяне на кой процес ще притежава процесора за изпълнение, докато друг процес е задържан.
- При превантивно планиране задачите се разпределят най-вече с техните приоритети.
- В метода за непредварително планиране CPU е разпределен за определен процес.
- Времето за избухване е време, необходимо на процеса да завърши изпълнението. Нарича се още време на работа.
- Използването на процесора е основната задача, при която операционната система трябва да се увери, че CPU остава възможно най-заета
- Броят на процесите, които завършват изпълнението си за единица време, е известен.
- Времето за изчакване е сума, която конкретен процес трябва да изчака в опашката за готовност.
- Това е време, в което искането е било подадено до първия отговор.
- Времето за изпълнение е период от време за изпълнение на определен процес.
- Прекъсването на таймера е метод, който е тясно свързан с изпреварването,
- Диспечерът е модул, който осигурява контрол на процесора към процеса.
- Шест вида алгоритми за планиране на процеси са:
- Първо дойде първото обслужване (FCFS), 2) График с най-кратка работа (SJF) 3) Най-кратко оставащо време 4) Приоритетно планиране 5) График на кръг Робин 6) Планиране на многостепенна опашка
- В метода First Come First Serve, процесът, който заявява CPU, първо получава разпределението на CPU.
- В най-краткото оставащо време процесът ще бъде разпределен към задачата, която е най-близо до нейното завършване.
- В Приоритетното планиране планировчикът избира задачите, които да работят според приоритета.
- В този график за кръгови програми работи по принцип, където всеки човек получава равен дял от нещо на свой ред
- При най-късата работа първо трябва да бъде избрано най-краткото време за изпълнение за следващо изпълнение
- При многостепенното планиране методът разделя готовата опашка на различни отделни опашки. При този метод процесите се присвояват на опашка въз основа на конкретно свойство
- Процесорът използва планиране, за да подобри своята ефективност.