КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Види планування
4.2.1. Довготермінове планування Засоби довготермінового планування визначають, яку з програм треба завантажити у пам’ять для виконання. Таке планування називають також статичним, оскільки воно не залежить від поточного стану системи. Воно відігравало важливу роль у пакетних системах, коди заздалегідь відомо, які процеси повинні бути виконані і можна скласти розклад виконання задач. В інтерактивних системах (наприклад, у системах з розподілом часу) завантаження процесів у пам’ять здійснюють переважно користувачі, і це плануванню не підлягає; тому в них зазвичай використовують спрощену стратегію довготермінового планування. Система дає можливість створювати процеси і потоки до досягнення деякої максимально можливої межі, після чого подальші спроби створити новий процес або потік спричинятимуть помилку. Така стратегія ґрунтується і на психології користувачів, які, почуваючи себе некомфортно в перевантаженій системі,можуть переривати роботу з нею, що призводить до зниження навантаження. 4.2.2. Середньотермінове планування Засоби середньотермінового планування керують переходом потоків із призупиненого стану в стан готовності і назад. Відразу ж зазначимо, що керуючі блоки готових до виконання потоків організується у пам’яті в структуру, яку називають чергою готових потоків (). Перехід потоку в призупинений стан можуть викликати такі фактори: · очікування операції введення-виведення; · очікування закінчення виконання іншого потоку (приєднання); · блокування потоку через необхідність його синхронізації з іншими потоками. Зазвичай для коректної організації такого очікування, крім черги готових потоків, реалізують додатковий набір черг. Кожна така черга пов’язана з ресурсом, який може викликати очікування потоку (наприклад, із пристроєм введення-виведення); ці черги ще називають чергами планування (scheduling queues) або чергами очікування (wait queues). Середньотерміновий планувальник керує всіма цими чергами, переміщаючи потоки між ними та чергою готових потоків. 4.2.3. Короткотермінове планування Короткотермінове планування, або планування процесора (CPU scheduling), є найважливішим видом планування. Воно дає змогу відповісти на два базових запитання. · Коли перервати виконання потоку? · Якому потокові з числа готових до виконання потрібно передати процесор у цей момент? Короткотерміновий планувальник – це підсистема ОС, яка в разі необхідності перериває активний потік і вибирає із черги готових потоків той, що має виконуватися. До його продуктивності ставлять найвищі вимоги, бо він отримує керування дуже часто. Виділяють також диспетчер (dispatcher), який безпосередньо передає керування вибраному потокові (перемикає контекст). Формат черги готових потоків залежить від реалізації короткотермінового планування. Така черга може бути організована за принципом FIFO, бути чергою із пріоритетами, деревом або невпорядкованим зв’язним списком. Усі стратегії й алгоритми планування, які ми будемо розглядати далі, належать до короткотермінового планування. 4.3. Стратегії планування. Витісняльна і невитісняльна багатозадачність Перед тим, як розглянути основні стратегії планування, перелічимо варіанти передачі керування від одного потоку до іншого: · після того, як потік перейшов у стан очікування (наприклад, під час введення-виведення або приєднання); · після закінчення виконання потоку; · явно (потік сам віддає процесор іншим потокам на час, поки він не зайнятий корисною роботою)ж · за перериванням (наприклад, переривання від таймера дає змогу перервати птік, що виконується довше, ніж йому дозволено). Останній варіант відрізняється від інших тим, що потік не може контролювати, коли настане час передачі керування, за це відповідає планувальник операційної системи. Залежно від підтримки такого варіанта передачі керування розрізняють дві основні стратегії планування потоків – витісняльну і невитісняльну багатозадачність. При витісняльній багатозадачності (preemptive multitasking) потоки, що логічно мають виконуватися, можуть бути тимчасово перервні планувальником ОС без їхньої участі для передачі керування іншим потокам. Переривання виконання потоку й передачу керування іншому потокові найчастіше здійснюють в обробнику переривання від системного таймера. Така стратегія реалізована в усіх сучасних операційних системах. При невитісняльній багатозадачності (non-preemptive multitasking) потоки можуть виконуватися упродовж необмеженого часу й не можуть бути перервані ОС. Для невитісняльної багатозадачності передача керування за останнім варіантом не реалізована, і потоки самі повинні віддавати керування ОС для передачі іншим потокам або, принаймні, переходити у стан очікування. Якщо якийсь потік забуде або не зможе це зробити, наприклад займе процесор нескінченим циклом, інші потоки не зможуть продовжувати свою роботу. Таку стратегію було реалізовано в ОС (наприклад, у версії 3.11). Природно, що реалізація невитісняльної багатозадачності в загальному випадку робить систему досить не стабільною (будь-яке некоректно написане застосування користувача може спричинити «зависання» всієї системи). Практика показує, що невитісняльна багатозадачністьу системах із застосуваннями користувача не може бути реалізована. Таку стратегію, проте, можна використати в системах, де всі застосування виконуються в режимі ядра і фактично є системними драйверами. Для розробки таких застосувань необхідна висока кваліфікація програмістів вимоги до надійності застосувань можна порівняти з вимогами до самої ОС. При цьому простота реалізації та відсутність зовнішніх переривань потоків від планувальника ОС може підвищувати продуктивність системи для обмеженого кола задач (наприклад, у випадку ОС NetWare це було використання системи як файлового менеджера).
Дата добавления: 2014-01-05; Просмотров: 3428; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |