logo
СПЗ_лекції

3.Задачі планування в багатопроцесорній системі.

Планування в такій системі включає три взаємозвязаних питання :

Призначення процесів процесорам можна розглядати з точки зору архітектури багатопроцесорної системи.

Якщо припустити, що архітектура такої системи однотипна, тобто всі процесори фізично не відрізняються один від одного в плані доступу до основної пам’яті або пристроїв введення–виведення, тоді найпростіший підхід до планування полягає в розгляді процесорів як єдиного ресурсу і призначенні процесів процесорам за вимогою. При такому підході виникає питання: чи повинно таке призначення бути статичним чи динамічним?

Якщо процес призначається одному процесору постійно - від моменту активізації і до моменту закінчення - то для кожного процесора потрібно підтримувати окрему короткотривалу чергу.

Недоліком статичного розподілу є те, що коли один процесор завантажено, то другий може простоювати. Для уникнення такої ситуації можна використовувати чергу, загальну для всіх процесорів. Всі процеси потрапляють в одну глобальну чергу і передаються для виконання будь-якому вільному процесору. Таким чином, при такому підході на протязі життя процес може в різний час виконуватись на різних процесорах. В сильнозвязаних системах із загальною пам’яттю інформація контексту всіх процесів доступна всім процесорам, і тому, вартість планування процесу не залежить від того , який з процесів виявиться вибраним.

У випадку використання архітектури ведучий –ведений ключові функції ОС завжди виконуються на одному спеціально визначеному процесорі, всі решта можуть виконувати тільки користувацькі додатки. Ведучий процесор відповідає за планування завдань. Коли активний процес на веденому процесорі вимагає спеціального обслуговування , то він повинен відправити запит ведучому процесору і очікувати закінчення сервісу. Такий підхід досить простий і вимагає внесення невеликих доповнень в одно процесорну багатозадачну ОС.

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

Крім цих двох категоричних підходів є й інші. Наприклад, для роботи Ос може бути виділений не один процесор, а декілька, можливе використання системи пріоритетів для відокремлення процесів ядра від інших процесів.