Операційна система Cisco IOS
Деякі операційні системи дозволяють виконувати тільки одну програму в конкретний проміжок часу (таким чином, наприклад, працює більшість систем сімейства MS-DOS). Проте більшість сучасних операційних систем дозволяє додаткам функціонувати сукупно. Ситуація, коли програми виконуються одночасно, називається багатозадачністю (multitasking), а операційна система, яка дозволяє працювати в такому режимі, - багатозадачною операційною системою (multitasking operating system).
Комп’ютерні програми, які написані для багатозадачних систем, самі часто містять декілька незалежних задач, які виконуються паралельно. Подібні маленькі програми-задачі отримали назву потоків (threads), оскільки вони разом формують єдиний потік інструкцій програми, які виконуються. Кожний потік забезпечений персональним набором значень регістрів центрального процесора – контекстом (context). Потоки, які виконуються в середині одної програми, можуть використовувати загальну область оперативної пам’яті. Група потоків, які поділяють загальний простір пам’яті і спільно користуються ресурсами операційної системи, носить назву процесу (process). Якщо процесор і операційна система підтримують роботу з так званою віртуальною пам’яттю, то кожний окремо взятий процес може виконуватися в своєму адресному просторі, який захищений від доступу зі сторони інших процесів.
Оскільки в конкретний момент часу процесор може відпрацьовувати інструкції тільки одної програми, операційна система повинна сама вирішувати, які саме набори інструкцій (потоки) будуть виконуватися. Процес прийняття рішень такого роду називається плануванням (scheduling). Планування задач зазвичай покладають на центральну частину операційної системи – ядро (kernel). В залежності від специфіки додатків, на виконання яких розрахована конкретна операційна система, можуть використовуватися різні механізми планування потоків. Різні типи додатків (пакетні додатки, інтерактивні, програми реального часу) по-різному завантажують центральний процесор. Тому в цілому продуктивність системи істотно залежить від вибраного механізму планування.
Найпростіший метод планування заключається у вистроюванні всіх потоків в порядку їх появи і виконання кожного потоку до повного його завершення. Цей механізм отримав назву виконання до повного завершення в порядку FIFO (first-in-first-out – аналог черги: першим увійшов – першим вийшов). Безперечними перевагами даного методу планування являються простота реалізації, дуже низький показник розрахункових затрат і його „справедливість” – всі потоки обробляються почергово по мірі їх появи.
Розглянутий метод планування добре використовувати для пакетних і деяких транзакціонним застосуванням, які послідовно обробляють дані, а потім завершують свою роботу. В той час дана схема абсолютно не може застосовуватись для інтерактивних застосувань і застосувань реального часу.
Оскільки інтерактивні програми повинні оперативно обслуговувати зовнішні пристрої і реагувати на команди користувача, таки застосування потребують швидкого, хоч і короткочасного доступу до ресурсів центрального процесору.
Одним із шляхів вирішення даної проблеми являється призначення пріоритетів для кожного потоку. Критичні по часу виконання потоки, які потребують оперативності зі сторони центрального процесора, наділяються більш високим пріоритетом ніж, скажемо, пакетні застосування. Потоки з більш високим пріоритетом можуть напряму переміщатися до початку черги очікуючи виконання потоків. Якщо ж в черзі присутні декілька потоків з основним пріоритетом, то вони виконуються в порядку їх появи ( так само, як і для звичайного планування FIFO). Описаний метод планування носить назву пріоритетне виконання до повного завершення (run-to-completion priority scheduling).
Не дивлячись на то , що пріоритетне планування задач має несумнівні переваги перед плануванням FIFO, воно все ж таки має серйозний недолік – потік з високим пріоритетом може монополізувати використання центрального процесора. До того ж, якщо процесор вже зайнятий виконанням потоку з низьким пріоритетом, який віднімає більше процесорного часу, потоки з більш високим пріоритетом „застрягають” в черзі на виконання, очікуючи звільнення процесору. Для вирішення проблеми, яка виникла, розглянутий метод планування повинен мати можливість відкладати (переривати) виконання поточного потоку, таким чином, щоб інші потоки могли користуватися ресурсами центрального процесора.
Дата добавления: 2016-05-05; просмотров: 460;