Loading [MathJax]/jax/output/HTML-CSS/jax.js
Skip to main content
LibreTexts - Ukrayinska

7.3: Додавання алгоритму

До цих пір ми створювали графіки шляхом вгадування і перевірки, який працює досить добре для невеликих графіків, але не буде добре працювати з десятками або сотнями завдань. Щоб створити більш процедурний підхід, ми могли б почати з якось створення списку пріоритетів. Після того, як у нас є список пріоритетів, ми можемо почати планування, використовуючи цей список та алгоритм обробки списку.

Список пріоритетів

Список пріоритетів - це перелік завдань, що даються в тому порядку, в якому ми хочемо, щоб вони були виконані.

Алгоритм обробки списків перетворює список пріоритетів у розклад.

Алгоритм обробки списків

  1. На диграфі або списку пріоритетів обведіть всі завдання, які готові, тобто всі обов'язкові завдання виконані.
  2. Призначте кожному доступному процесору, по порядку, перше готове завдання. Позначте завдання як виконується, можливо, проставивши один рядок через завдання.
  3. Рухайтеся вперед у часі, поки завдання не буде виконано. Позначте завдання як виконане, можливо, перекреслюючи завдання. Якщо якісь нові завдання стануть готовими, позначте їх як такі.
  4. Повторюйте до тих пір, поки всі завдання не будуть заплановані.

Приклад 2

Використовуючи наш диграф зверху, заплануйте його, використовуючи список пріоритетів нижче:

T1,T3,T4,T5,T6,T7,T8,T2,T9

Рішення

Час 0: Позначте готові завдання

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,T2,T9

Перше завдання ми призначаємо,T1 на перший процесорP1, а друге готове завданняT3, на другий процесор. Роблячи ці завдання, ми відзначаємо ці завдання як виконувані:

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,T2,T9

Заплануйте до тут:

clipboard_e77fb190a3f596755cb0ed99767471a80.png

Перестрибуємо до часу, коли чергове завдання завершиться, яке на час 2.

Час 2: Обидва процесори завершують свої завдання. Ми відзначаємо ці завдання як завершені. Коли завдання 1 завершено, Завдання 2 стає готовим:

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,(T2),T9

Призначаємо наступне готове завдання в списку,T4 доP1, іT5 доP2.

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,(T2),T9

clipboard_ed931c39742cb3d6bfcc67592f093b557.png

Час 3: Процесор 1 завершеноT4. Завершення неT4 робить жодних інших завдань готовими (зверніть увагу, що всі інші вимагають,T2 щоб вони були виконані першими).

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,(T2),T9

Так як наступні три завдання ще не готові, призначаємо наступне готове завдання,T2 щобP1

Список пріоритетів:(T1),(T3),(T4),(T5),T6,T7,T8,(T2),T9

clipboard_e5f8d7915ae037b71ff7e5fa3c51f66de.png

Час 3.5: Процесор 1 завершеноT2. ЗавершитиT2 причиниT6 іT7 стати готовим. ДоручаємоT6 доP1.

Список пріоритетів:(T1),(T3),(T4),(T5),(T6),(T7),T8,(T2),T9

clipboard_e5d65817f8fa5dc929322c44dbfb1f85a.png

Час 4: Обидва процесори завершують свої завдання. ДоопрацюванняT5T8 дозволяє стати готовим. ПризначаємоT7 доP1 іT8 доP2.

Список пріоритетів:(T1),(T3),(T4),(T5),(T6),(T7),(T8),(T2),T9

clipboard_e00d40539291882f1466b3b9ba4fc17fc.png

Час 4.5: Обидва процесори завершують свої завдання. T9стає готовим, і покладається наP1. Немає готового завданняP2 для роботи, так щоP2 холостий хід.

Список пріоритетів:(T1),(T3),(T4),(T5),(T6),(T7),(T8),(T2),(T9)

clipboard_e7bc0f4b15e2eb217727706f983d188af.png

Коли останнє завдання виконано, ми маємо завершений графік, час закінчення 5,5 днів.

Спробуйте зараз 1

Використовуючи диграф нижче, створіть розклад, використовуючи список пріоритетів:

T1,T2,T3,T4,T5,T6,T7,T8,T9

sc3.svg

Відповідь

Час 0: Завдання 1, 4 та 7 готові. Призначити завдання 1 і 4

Час 9: Завдання 4 завершено. Готово тільки завдання 7; призначити завдання 7

Час 10: Завдання 1 завершено. Завдання 2 тепер готове. Призначити завдання 2

Час 17: Завдання 2 завершено. Нічого не готово. Процесор 1 холостий

Час 22: Завдання 7 виконано. Завдання 5 і 8 готові. Призначте завдання 5 і 8

Час 26: Завдання 8 виконано. Завдання 9 готове. Призначити завдання 9

Час 27: Завдання 5 виконано. Завдання 3 і 6 готові. Призначити завдання 3

Час 31: Завдання 3 виконано. Призначити завдання 6

Час 35: Все зроблено. Час закінчення - 35 для цього графіка.

clipboard_eeee2de77e15748630b6197c99fed34fc.png

Важливо відзначити, що сам алгоритм обробки списків не впливає на отриманий графік — графік повністю визначається списком пріоритетів, за яким слідує. Обробка списку, хоча це можна зробити вручну, може так само легко бути виконана комп'ютером. Цікавою частиною планування є те, як вибрати список пріоритетів, який створить найкращий графік.