Циклічне планування![]() У програмуванні циклічне планування (англ. Round-robin) є одним із алгоритмів планування процесів або комутації пакетів даних у мережі.[1][2] При роботі планувальника операційної системи інтервали часу, які часто називають квантами часу[3] присвоюються кожному процесові або потокові однаковим чином у циклічному порядку, опрацьовуючи всі процеси без пріоритету (також відоме як циклічне виконання[en]). Таке циклічне планування є простим, легким у виконанні, і без ресурсного голоду. Планування Round-robin також можна застосувати і до інших задач, таких як диспетчеризація пакетів даних у комп'ютерних мережах. Планування процесівДля рівноправного чесного планування процесів, циклічний планувальник в основному виконує розподіл часу, даючи кожній задачі часовий проміжок або квант[4] (його доступ до процесорного часу), і переривання задачі, якщо вона не завершила роботу за цей квант. Задача продовжує роботу наступного разу, коли їй буде виділено наступний квант процесорного часу. Якщо процес закінчує свою роботу, або змінює свій стан на стан очікування, у момент коли йому було виділено час, планувальник вибере наступний перший процес із черги тих, що готові до виконання. Якби такого планування часу не було, або якщо кванти часу були б великими по відношенню до тривалості задач, процес який би виконував великі тривалі задачі мав би більший пріоритет над іншими задачами. Наприклад, якщо квант часу становить 100 мілісекунд, а задача1 потребує 250 мс загального часу для завершення виконання, циклічний планувальник round-robin призупинить задачу після проходження 100 мс і виділить процесорний час іншій задачі. Після того, як інші задачі отримали свою рівну часту (по 100 мс кожна), задача1 отримає для виконання наступний інтервал часу процесора і цикл повториться знов. Цей процес продовжується доки задача не завершить своє виконання і більше не потребуватиме процесорного часу.
Аби продемонструвати роботу циклічного планування, розглянемо наступну таблицю із часом початку і часом виконання процесу із квантами часу, що становлять 100 мс:
![]() Іншим підходом, є поділити всі процеси на однакову кількість квантів часу, таким чином, що розмір кванту буде пропорційним до тривалості процесу. Таким чином, всі процеси завершать роботу одночасно. Примітки
|
Portal di Ensiklopedia Dunia