Поняття ресурсу Ресурс — будь-який споживаний об'єкт. По запасах ресурси підрозділяються на вичерпні і невичерпні. Споживачі ресурсів - процеси. Ресурс — засіб обчислювальної системи, який може бути виділене процесу на певний інтервал часу. Процесор — будь-який пристрій у складі ЕОМ, здатне автоматично виконувати допустимі для нього дії (процесори, канали і пристрої, що працюють з каналами). Реалізація системи управління процесами у складі ОС пред'являє визначені вимоги до властивостей процесорів. Класифікація ресурсу По ознаці реальності ресурси діляться на фізичні і віртуальні (останні тільки в окремих властивостях схожі з фізичними ресурсами). По можливості розширення властивостей діляться на еластичні і жорсткі (не допускаючі віртуалізації). По ступеню активності розділяються на пасивні і активні (можуть виконувати дії по відношенню до інших ресурсів). За часом існування: постійні (доступні у весь час процесу: і до, і після його роботи) і тимчасові. По ступеню важливості: основні і другорядні (допускають альтернативний розвиток процесу при їх відсутності). По функціональній надмірності при розподілі, дорогою, але що надається швидко, і дешевий, але що надається з очікуванням. По структурі: прості (не містить складових елементів) і складові. Вони розрізняються числом станів: простій може бути тільки в двох станах — доступний або зайнятий. По характеру використовування розподілюваних ресурсів: потребуючі і відтворні ресурси (допускають багатократне використовування і звільнення). По характеру використовування: послідовно і паралельно використовувані. За формою реалізації: жорсткі (у принципі не допускають копіювання) і м'які (допускають тиражування і підрозділяються на програмні і інформаційні ресурси). Дисципліна розподілу ресурсу визначає порядок використовування багатьма процесами того або іншого ресурсу, який в кожен момент часу може обслуговувати тільки один процес. 1.2.Основні види ресурсів обчислювальної системи. Розглянемо коротко основні види ресурсів обчислювальної системи і способи їхнього поділу . Одним з найважливіших ресурсів є процесорний час. Процесорний час поділяється змінно (паралельно). Другим видом ресурсів обчислювальної системи можна вважати пам'ять. ОП може бути розділена й одночасним способом і змінно. Пам'ять - дуже цікавий вид ресурсу. Справа в тім, що в кожен конкретний момент часу процесор при виконанні обчислень звертається до обмеженого числа осередків ОП. З цього погляду пам'ять бажано розділяти для більшого числа процесів, що паралельно виконуються. З іншого боку, як правило, чим більше ОП може бути виділено тим кращі будуть умови для його виконання. Тому проблема ефективного поділу ОП між паралельно виконуваними обчислювальними процесами є однією із самих актуальних. Коли говорять про зовнішню пам'ять (наприклад, пам'ять на магнітних дисках) то власне пам'ять і доступ до неї вважаються різними видами ресурсу. Але для повної роботи з зовнішньою пам'яттю необхідно мати цих два ресурса. Власне зовнішня пам'ять може розділятися одночасно, а доступ до неї — змінно. Якщо говорити про зовнішні пристрої, то вони, як правило можуть розділятися паралельно, якщо використовуються механізми прямого доступу. Якщо ж пристрій працює з послідовним доступом, то воно не може вважатися розділеним ресурсом. Простими прикладами зовнішніх пристроїв, що не можуть бути поділюваними, є принтер і нагромаджувач на магнітній стрічці. Дуже важливим видом ресурсів є програмні модулі. Розглянемо системні програмні модулі, оскільки вони розглядаються, як програмні ресурси і можуть бути розподілені між процесами, що виконуються. Як відомо програмні модулі можуть бути однократно і багаторазово використовуваними. Однократно використовуваними називають такі програмні модулі, що можуть бути правильно виконані тільки один раз це означає, що в процесі свого виконання вони можуть пошкодити частину коду, або вихідні дані від яких залежить хід обчислень. Очевидно, що однократно використовувані програмні модулі є неподільним ресурсом. Повторно використовувані програмні модулі у свою чергу, можуть бути непривілейованими, привілейованими і реєнтабельними. Привілейовані програмні модулі працюють у так званому привілейованому режимі, тобто при відключеній системі переривань (часто говорять, що переривання закриті) так, що ніякі зовнішні події не можуть порушити природний порядок обчислень. У результаті програмний модуль виконується до кінця після чого він може бути знову викликаний на виконання з іншої задачі. Непривілейовані програмні модулі звичайні програмні модулі, що можуть бути перервані під час своєї роботи. Отже, у загальному випадку їх не можна вважати поділюваними, тому що якщо після переривання виконання такого модуля, що виконується в рамках одного обчислювального процесу запустити його ще раз за вимогою іншого обчислювального процесу то проміжні результати для перерваних обчислень можуть бути загублені. На противагу цьому, реєнтабельні програмні модулі допускають повторне багаторазове переривання свого виконання і повторний їхній запуск по звертанню з інших задач (обчислювальних процесів). Для цього реєнтабельні програмні модулі повинні бути створені таким чином, що було забезпечене збереження проміжних обчислень, для обчислень, що перериваються і повернення до них, коли обчислювальний процес відновляється з перерваної раніше точки. Це може бути реалізовано двома способами: за допомогою статичних і динамічних методів виділення пам'яті під значення, що зберігаються. Основний, найбільше часто використовуваний динамічний спосіб - виділення пам'яті для збереження всіх проміжних результатів обчислення, що відносяться до реєнтабельного програмного модуля. Що стосується статичного способу виділення пам'яті, то тут мова може йти про те, що заздалегідь для фіксованого числа обчислювальних процесів резервуються області пам'яті, у яких будуть розташовуватися змінні реєнтабельних програмних модулів: для кожного процесу є своя область пам'яті. Найчастіше такі процеси виступають процеси в/в і мова йде про реєнтабельні драйвери. Крім реєнтабельних програмних модулів існують ще повторно вхідні. Цим терміном називають програмні модулі, що теж допускають своє багаторазове використання, але на відміну від реєнтабельних їх не можна переривати. Повторно вхідні програмні модулі складаються з привілейованих секцій і повторне звертання до них можливо тільки після завершення якої-небудь з таких секцій. Повторно вхідних програмних модулях чітко визначені всі припустимі (можливі) точки входи. 1.3. Особливості алгоритмів керування ресурсами Від ефективності алгоритмів керування локальними ресурсами комп'ютера багато в чому залежить ефективність всієї мережевої ОС вцілому. Наприклад, у залежності від особливостей використаного алгоритму керування процесором, ОС поділяють на багатозадачні й однозадачні, багатокористувацькі й однокористувацькі, на системи, що підтримують багатониткову обробку і не підтримують її, на багатопроцесорні й однопроцесорні системи. Підтримка багатозадачності. По числу одночасно виконуваних задач ОС можуть бути розділені на два класи: · однозадачні (наприклад, MS-DOS, MSX); · багатозадачні (OC EC, OS/2, UNІ, Wіndows 95). Однозадачні ОС в основному виконують функцію надання користувачу віртуальної машини, роблячи більш простим і зручним процес взаємодії користувача з комп'ютером. Однозадачні ОС включають засоби керування периферійними пристроями, засоби керування файлами, засоби спілкування з користувачем. Багатозадачні ОС, крім перерахованих вище функцій, керують поділом спільно використовуваних ресурсів, таких як процесор, ОП, файли і зовнішні пристрої. Підтримка багатокористувацького режиму. По числу одночасно працюючих користувачів ОС поділяються на: · однокористувацькі (MS-DOS, Wіndows 3.x, ранні версії OS/2); · багатокористувацькі (UNІ, Wіndows NT). Головною відмінністю багатокористувацьких систем від однокористувацьких є наявність засобів захисту інформації кожного користувача від несанкціонованого доступу інших користувачів. Важливо відмітити, що не всяка багатозадачна система є багатокористувацькою, і не всяка однокористувацька ОС є однозадачною. Виштовхуюча і невиштовхуюча багатозадачність. Найважливішим розподілюваним ресурсом є процесорний час. Спосіб розподілу процесорного часу між декількома одночасно існуючими в системі процесами (чи нитками) багато в чому визначає специфіку ОС. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів: невиштовхуюча багатозадачність (NetWare, Wіndows 3.x); виштовхуюча багатозадачність (Wіndows NT, OS/2, UNІ). Основною відмінністю між виштовхуючим і невиштовхуючим варіантами багатозадачності є степінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в ОС, а в другому - розподілений між системою і ПП. При невиштовхуючій багатозадачності активний процес виконується доти, поки він сам, по власної ініціативі, не віддасть керування ОС для того, щоб та вибрала з черги інший готовий до виконання процес. Підтримка багатонитковості. Важливою властивістю ОС є можливість розпаралелювання обчислень у рамках однієї задачі. Багатониткова ОС розділяє процесорний час не між задачами, а між їх окремими вітками (нитками). Багатопроцесорна обробка. Іншою важливою властивістю ОС є відсутність чи наявність у ній засобів підтримки багатопроцесорної обробки - мультипроцесування. Мультипроцесування приводить до ускладнення всіх алгоритмів керування ресурсами. 2. Поява мультипрограмних ОС для мейнфреймів Революційною подією даного етапу з'явилася промислова реалізація мультипрограмування. (Помітимо, що у вигляді концепції й експериментальних систем цей спосіб організації обчислень існував уже біля десяти років.) В умовах різко зрослих можливостей комп'ютера по обробці й зберіганню даних виконання тільки однієї програми в кожний момент часу виявилося вкрай неефективним. Рішенням стало мультипрограмування — спосіб організації обчислювального процесу, при якому в пам'яті комп'ютера перебувало одночасно кілька програм, що поперемінно виконуються на одному процесорі. Ці вдосконалення значно поліпшили ефективність обчислювальної системи: комп'ютер тепер міг використовуватися майже постійно, а не менш половини часу роботи комп'ютера, як це було раніше. Мультипрограмні системи пакетної обробки так само, як і їхні однопрограмні попередники, мали за мету забезпечення максимального завантаження апаратури комп'ютера, однак вирішували це завдання більш ефективно. У мультипрограмному пакетному режимі процесор не простоював, поки одна програма виконувала операцію в/в (як це відбувалося при послідовному виконанні програм у системах ранньої пакетної обробки), а перемикався на іншу готову до виконання програму. У результаті досягалося збалансоване завантаження всіх пристроїв комп'ютера, а отже, збільшувалося число завдань, розв'язуваних за одиницю часу. У мультипрограмних системах пакетної обробки користувач як і раніше був не має змоги інтерактивно взаємодіяти зі своїми програмами. Для того щоб хоча б частково повернути користувачам відчуття безпосередньої взаємодії з комп'ютером, був розроблений інший варіант мультипрограмних систем — системи поділу часу. Цей варіант розрахований на багатотермінальні системи, коли кожний користувач працює за своїм терміналом. Реалізація мультипрограмування зажадала внесення дуже важливих змін в апаратури комп'ютера, безпосередньо спрямованих на підтримку нового способу організації обчислювального процесу. При поділі ресурсів комп'ютера між програмами необхідно забезпечити швидке перемикання процесора з однієї програми на іншу, а також надійно захистити коди й дані однієї програми від ненавмисного або навмисного псування іншою програмою. У процесорах з'явилися привілейований і користувацький режими роботи, спеціальні регістри для швидкого перемикання з однієї програми на іншу, засобу захисту областей пам'яті, а також розвинена система переривань. У привілейованому режимі, призначеному для роботи програмних модулів операційної системи, процесор міг виконувати всі команди, у тому числі й ті з них, які дозволяли здійснювати розподіл і захист ресурсів комп'ютера. Програмам, що працюють у користувацькому режимі, деякі команди процесора були недоступні. Таким чином, тільки ОС могла управляти апаратними засобами й виконувати роль монітора й арбітра для користувацьких програм, які виконувалися в непривілейованому, користувацькому режимі. 2.1. Мультипроцесорна обробка Мультипроцесорна обробка — це спосіб організації обчислювального процесу в системах з декількома процесорами, при якому кілька завдань (процесів, потоків) можуть одночасно виконуватися на різних процесорах системи. Концепція мультипроцесування не нова, вона відома з 70-х років, але до середини 80-х доступних багатопроцесорних систем не існувало. Однак до теперішнього часу стало звичайним включення декількох процесорів в архітектуру навіть ПК. Більше того, багатопроцесорність тепер є одним з необхідних вимог, які пред'являються до комп'ютерів, використовуваним як центральний сервер більш-менш великої мережі. Не слід плутати мультипроцесорну обробку з мультипрограмною обробкою. У мультипрограмних системах паралельна робота різних пристроїв дозволяє одночасно вести обробку декількох програм, але при цьому в процесорі в кожний момент часу виконується тільки одна програма. Тобто в цьому випадку кілька завдань виконуються поперемінно на одному процесорі, створюючи лише видимість паралельного виконання. А в мультипроцесорних системах кілька завдань виконуються дійсно одночасно, тому що є кілька обробних пристроїв — процесорів. Звичайно, багатопроцесування зовсім не виключає мультипрограмування: на кожному із процесорів може поперемінно виконуватися деякий закріплений за даним процесором набір завдань. Мультипроцесорна організація системи приводить до ускладнення всіх алгоритмів керування ресурсами, наприклад потрібно планувати процеси не для одного, а для декількох процесорів, що набагато складніше. Складності полягають і в зростанні числа конфліктів по звертанню до пристроїв вводу-висновку, даним, загальній пам'яті й спільно використовуваним програмам. Необхідно передбачити ефективні засоби блокування при доступі до поділюваних інформаційних структур ядра. Всі ці проблеми повинна вирішувати операційна система шляхом синхронізації процесів, ведення черг і планування ресурсів. Більше того, сама ОС повинна бути спроектована так, щоб зменшити існуючі взаємозалежності між власними компонентами. У наші дні стає загальноприйнятим введення в ОС функцій підтримки мультипроцесорної обробки даних. Такі функції є у всіх популярних ОС, таких як Sun Solaris 2.x, Santa Crus Operations Open Server 3.x, IBM OS/2, Microsoft Windows NT і Novell NetWare, починаючи з 4.1. Мультипроцесорні системи часто характеризують або як симетричні, або як несиметричні. При цьому варто чітко визначати, до якого аспекту мультипроцесорної системи ставиться ця характеристика - до типу архітектури або до способу організації обчислювального процесу. Симетрична архітектура мультипроцесорної системи припускає однорідність всіх процесорів і однаковість включення процесорів у загальну схему мультипроцесорної системи. Традиційні симетричні мультипроцесорні конфігурації розділяють одну більшу пам'ять між всіма процесорами. Масштабування, або можливість нарощування числа процесорів, у симетричних системах обмежена внаслідок того, що всі вони користуються однією й тією ж ОП. Отже, повинні розташовуватися в одному корпусі. Така конструкція, називана масштабованою по вертикалі, практично обмежує число процесорів до чотирьох або восьми. У симетричних архітектурах всі процеси користуються однією й тією ж схемою відображення пам'яті. Вони можуть дуже швидко обмінюватися даними, так що забезпечується досить висока продуктивність для тих додатків (наприклад, при роботі з базами даних), у яких кілька завдань повинні активно взаємодіяти між собою. В асиметричній архітектурі різні процесори можуть відрізнятися як своїми характеристиками (продуктивністю, надійністю, системою команд і т.д., аж до моделі мікропроцесора), так і функціональною роллю, що поручається їм у системі. Наприклад, одні процесори можуть призначатися для роботи як основні обчислювачі, інші - для керування підсистемою в/в, треті - ще для якихось особливих цілей. Функціональна неоднорідність в асиметричних архітектурах спричиняє структурні відмінності у фрагментах системи, що містять різні процесори системи. Наприклад, вони можуть відрізнятися схемами підключення процесорів до системної шини, набором периферійних пристроїв і способами взаємодії процесорів із пристроями. Масштабування в асиметричній архітектурі реалізується інакше, ніж у симетричній. Тому що вимога єдиного корпуса відсутня, система може складатися з декількох пристроїв, кожне з яких містить один або кілька процесорів. Це масштабування по горизонталі. Кожний такий пристрій називається кластером, а вся мультипроцесорна система — кластерної. Іншим аспектом мультипроцесорних систем, що може характеризуватися симетрією або її відсутністю, є спосіб організації обчислювального процесу. Останній, як відомо, визначається й реалізується ОС. Асиметричне мультипроцеування є найбільш простим способом організації обчислювального процесу в системах з декількома процесорами. Цей спосіб часто називають також «ведучий-відомий». Функціонування системи за принципом « ведучий-відомий » припускає виділення одного із процесорів у якості «провідного», на якому працює операційна система і який управляє всіма іншими «веденими» процесорами. Тобто провідний процесор бере на себе функції розподілу завдань і ресурсів, а ведені процесори працюють тільки як обробні пристрої й ніякі дії по організації роботи обчислювальної системи не виконують. Тому що ОС працює тільки на одному процесорі й функції керування повністю централізовані, те така ОС виявляється не набагато складніше ОС однопроцесорної системи. Асиметрична організація обчислювального процесу може бути реалізована як для симетричної мультипроцесорної архітектури, у якій всі процесори апаратно нерозрізнені, так і для несиметричної, для якої характерна неоднорідність процесорів, їхня спеціалізація на апаратному рівні. В архітектурно-асиметричних системах на роль провідного процесора може бути призначений найбільш надійний і продуктивний процесор. Якщо в наборі процесорів є спеціалізований процесор, орієнтований, наприклад, на матричні обчислення, то при плануванні процесів операційна система, що реалізує асиметричне мультипроцесування, повинна враховувати специфіку цього процесора. Така спеціалізація знижує надійність системи в цілому, тому що процесори не є взаємозамінними. Симетричне мультипроцесування як спосіб організації обчислювального процесу може бути реалізоване в системах тільки із симетричною мультипроцесорною архітектурою. Нагадаємо, що в таких системах процесори працюють із загальними пристроями й поділюваною основною пам'яттю. Симетричне мультипроцесування реалізується загальною для всіх процесорів ОС. При симетричній організації всі процесори рівноправно беруть участь і в керуванні обчислювальним процесом, і у виконанні прикладних завдань. Наприклад, сигнал переривання від принтера, що роздруковує дані прикладного процесу, виконуваного на деякому процесорі, може бути оброблений зовсім іншим процесором. Різні процесори можуть у якийсь момент одночасно обслуговувати як різні, так і однакові модулі загальної ОС. Для цього програми ОС повинні мати властивість повторної входимості (реєнтерабельності). ОС повністю децентралізована. Модулі ОС виконуються на будь-якому доступному процесорі. Як тільки процесор завершує виконання чергового завдання, він передає керування планувальникові завдань, що вибирає із загальної для всіх процесорів системної черги завдання, що буде виконуватися на даному процесорі наступної. Всі ресурси виділяються для кожного виконуваного завдання в міру виникнення в них потреб і ніяк не закріплюються за процесором. При такому підході всі процесори працюють із одним й тим же навантаженням, що вирівнює динамічно. У рішенні одного завдання можуть брати участь відразу кілька процесорів, якщо вона допускає таке розпаралелювання, наприклад шляхом подання у вигляді декількох потоків. У випадку відмови одного із процесорів симетричні системи, як правило, порівняно просто реконфігуруються, що є їхньою більшою перевагою погано реконфігуруються - асиметричними системами. Симетрична й асиметрична організація обчислювального процесу в мультипроцесорній системі не зв'язана прямо із симетричною або асиметричною архітектурою, вона визначається типом ОС. Так, у симетричних архітектурах обчислювальний процес може бути організований як симетричним образом, так і асиметричним. Однак асиметрична архітектура неодмінно спричиняє й асиметричний спосіб організації обчислень. 2.2. Мікропроцесори. Невід'ємним компонентом будь-якої ЕОМ є ЦП. У сучасних ПК функції ЦП виконують мікропроцесори. Найчастіше це велика інтегральна схема, що представляє собою кремнієвий кристал у пластмасовому, керамічному чи металокерамічному корпусі, на якому розташовані висновки для прийому і видачі електричних сигналів. Ступінь інтеграції інтегральної схеми визначається розміром кристала і кількістю розміщених у ньому транзисторів. Основні функції мікропроцесора - виконання обчислень, пересилання даних між внутрішніми регістрами, керування ходом обчислювального процесу. Мікропроцесор безпосередньо взаємодіє з ОП і контролерами системної плати. Головними носіями інформації усередині процесора служать регістри. До складу мікропроцесора входять АЛП, пристрій керування, внутрішні регістри. Пристрій керування виробляє керуючі сигнали для виконання команд, АЛП - арифметичні і логічні операції над даними. Воно може складатися з декількох блоків, наприклад блоку обробки цілих чисел і блоку обробки чисел із плаваючою комою. У сучасних мікропроцесорах в основу роботи кожного блоку покладений принцип конвеєра, що заключається у наступному. Реалізація кожної машинної команди розбивається на окремі етапи (як правило, це вибірка команди з пам'яті, декодування, виконання і запис результату). Виконання наступної команди програми може бути почате до завершення попередньої (наприклад, поки перша команда виконується, друга може декодуватися, третя - вибиратися і т.д.). Таким чином, одночасно мікропроцесор виконує наступні одну за одною команди програми, і час на виконання кожної команди зменшується в кілька разів. Якщо в мікропроцесорі мається кілька блоків обробки, в основу роботи яких покладений принцип конвеєра, то його архітектуру називають суперскалярною. Головна характеристика мікропроцесора - його швидкодія, що у значній мірі залежить від тактової частоти мікропроцесора. Важливою є також архітектура мікропроцесора, що визначає, які дані він може обробляти, які машинні інструкції входять у набір виконуваних їм команд, як відбувається обробка даних, який обсяг внутрішньої пам'яті мікропроцесора. У складі пристроїв мікропроцесора може бути присутня зверх-оперативна, чи кеш-пам'ять, що забезпечує більш швидку передачу інформації в мікропроцесор, чим з ОП. У сучасних мікропроцесорів може бути кеш-пам'ять першого рівня, що звичайно убудована в той же кристал і працює на однаковій з мікропроцесором частоті. Для деяких мікропроцесорів передбачена ще кеш-пам'ять другого рівня. Існують два способи організації такої пам'яті: загальна, коли команди і дані зберігаються разом, і розділена, коли вони зберігаються в різних місцях. Більшість задач, розв'язуваних на ПК, не вимагає складних математичних обчислень. Це відноситься до роботи з текстовими даними, базами даних, мережними OC. В інших випадках - при рішенні складних математичних і фізичних задач, задач моделювання, при роботі з тривимірною графікою, електронними таблицями, виробничими пакетами - важливим параметром є швидкість наповнення операцій з плаваючою комою, на які універсальні процесори витрачають досить багато часу. Для таких задач у деяких комп'ютерах передбачене використання спеціального пристрою, називаного математичним співпроцесором. Математичний співпроцесор - спеціалізована інтегральна мікросхема, що працює у взаємодії з ЦП і призначена для виконання математичних операцій з коми, що плаває. 3. Системні компоненти ПК На протязі останніх сорока років спостерігається експоненційне зростання потужностей інформаційних технологій. Основні показники інформаційних комп'ютерних і комунікаційних технологій збільшуються в геометричній прогресії. Так само за останні роки зростають показники потужності і швидкодії комп'ютерних пристроїв при незмінній ціні. Першим експоненціальне зростання комп'ютерної індустрії виявив у 1965 році один із фундаторів компанії Intel Гордон Мур. Малюючи для чергового виступу графік росту продуктивності мікросхем, він зауважив надзвичайну закономірність: у кожному новому кристалі розміщалося приблизно вдвічі більше транзисторів, ніж у попередньому, а з'являлися нові мікросхеми через рівні проміжки часу - через півтора-два роки після попередньої. Закон Мура стверджує, що кожні півтора – два роки потужність інформаційних технологій зростає в два рази, в той час як ціна залишається незмінною. Закон Мура є лише математичним виразом загальних процесів інформаційної епохи. Більшість спеціалістів вважає, що не можна назвати якусь одну причину цього процесу. Скоріше це саморегулюючий або в значній мірі регульований економічний цикл, вектор взаємодії реклами, людських очікувань, технологічних досягнень і, звичайно, величезних інвестицій в інформаційні технології. Архітектура ЕОМ зв'язана з набором якостей машини, що впливають на її взаємодію з користувачем. Архітектура ЕОМ визначається сукупністю її властивостей і характеристик, що повинний знати програміст для ефективного використання ЕОМ при рішенні своїх задач (система команд ЕОМ, способи адресації інформації, розподіл пам'яті і т.д.). Будь-яка ЕОМ (у тому числі і ПК) для виконання своїх функцій повинна мати мінімальний набір функціональних блоків:* блок для виконання арифметичних і логічних операцій(арифметично-логічний пристрій - АЛП); * блок для збереження інформації, чи пам'ять (ЗП- запам'ятовуючий пристрій);* пристрій для уведення вихідних даних і для виведення результатів. Тому що всі ці пристрої повинні працювати спільно, ними треба керувати, тому в структурі будь-який ЕОМ є пристрій керування (ПК), що змушує всі інші пристрою виконувати в потрібні моменти необхідні дії (мал. 8). Пристрій керування ініціює роботу пристрою введення, даючи йому команду на виконання операції введення інформації в запам'ятовуючий пристрій ЕОМ. Рис. 8. Класична структура ЕОМ: АЛП - арифметично-логічний пристрій; ЗП - запам'ятовуючий пристрій; ПК - пристрій керування; Пвв - пристрій введення; Пвив — пристрій виведення Воно, у свою чергу, вказує, з якого місця ЗП необхідно передати інформацію в АЛП, яку операцію над цією інформацією повинен виконати АЛП, у яке місце ЗП записати результат операції. Воно також ініціює роботу пристрою виведення для виводу результату з ЗП і виконує ряд інших функцій. ЗП ЕОМ представлений декількома рівнями. Вже в перших ЕОМ класичній (називаної ще фон-Нейманівською - по імені американського ученого фон-Неймана ) структури виділялися два рівні запам'ятовуючих пристроїв: внутрішній ЗП і зовнішній ЗП. Зовнішній ЗП служить сховищем всієї інформації, необхідної для роботи комп'ютера. Внутрішній ЗП містить інформацію, оброблювану в ньому в даний момент часу. У сучасних моделях ієрархія пам'яті представлена ще великою кількістю рівнів. Центральні пристрої (АЛП й ПВ) об'єднані в єдиний блок, називаний центральним процесором (ЦП). Структурно сучасний ПК складається з двох основних частин: центральної і периферійної. До центральної частини звичайно відносять: ЦП і внутрішню пам'ять. Центральним процесором називається пристрій, безпосередньо здійснюючий процес обробки даних і програмне керування цим процесом. До складу ЦП входять АЛП, ПВ, іноді власна пам'ять процесора. Як правило, ЦП у сучасних комп'ютерах реалізований у вигляді великої інтегральної схеми і називається мікропроцесором. ЦП взаємодіє з внутрішнім ЗП, називаним оперативним запам'ятовуючим пристроєм (ОЗП) чи оперативною пам'яттю (ОП). ОП призначена для прийому, збереження і видачі інформації (чисел, символів, команд, констант), тобто всієї інформації, необхідної для виконання операцій у ЦП. Крім ОП у всіх комп'ютерах звичайно мається внутрішня постійна пам'ять, використовувана для збереження постійних даних і програм. ОП - досить дорога частина апаратури ПК. Вона обмежена по обсязі. Для збереження великих обсягів інформації, що не використовуються в даний момент часу процесором, призначаються зовнішні запам'ятовуючі пристрої (ЗЗП). До них відносяться: нагромаджувачі на магнітних дисках, нагромаджувачі на магнітних стрічках, нагромаджувачі на оптичних і магнітооптичних дисках. У сучасних ПК реалізована так називана ВП, що надає користувачу можливість роботи з розширеним простором ОП. ВП являє собою сукупність ОП і ЗЗП, а також комплексу програмно-апаратних засобів, що забезпечують динамічну переадресацію даних, у результаті чого користувач не повинний піклуватися про те, де розташовуються необхідні йому дані (в ОЗП чи ЗЗП), а функції по необхідному переміщенню даних бере на себе обчислювальна система. Сукупність ЗЗП і пристроїв в/в інформації утворить периферійну частину ЕОМ. Тому що існує досить багато різноманітних периферійних пристроїв, кожен ПК може бути укомплектований по-різному і мати у своєму складі ті чи інші периферійні пристрої. Тому прийнято говорити про конфігурацію ЕОМ, розуміючи під цим терміном конкретний склад її пристроїв з урахуванням їх характеристик. Передача інформації з периферійних пристроїв у центральні називається операцією введення, а передача інформації з центральних пристроїв у периферійні - операцією виведення. Продуктивність і ефективність використання ПК визначаються не тільки можливостями його процесора і характеристиками ОП, але в більшому ступені складом його периферійних пристроїв, їх технічними даними, а також способом організації їхньої спільної роботи з центральною частиною ПК. Зв'язок між пристроями ПК здійснюється за допомогою сполучень, що в обчислювальній техніці називаються інтерфейсами. Інтерфейс являє собою сукупність стандартизованих апаратних і програмних засобів, що забезпечують обмін інформацією між пристроями. В основі побудови інтерфейсів лежать уніфікація і стандартизація (використання єдиних способів кодування даних, форматів даних, стандартизація сполучних елементів - рознімань і т.д.). Наявність стандартних інтерфейсів дозволяє уніфікувати передачу інформації між пристроями незалежно від їхніх особливостей. В даний час для різних класів ЕОМ застосовуються різні принципи побудови системи в/в і структури обчислювальної машини. У ПК, як правило, використовується структура з одним загальним інтерфейсом, називаним також системною шиною. При такій структурі всі пристрої комп'ютера обмінюються інформацією і керуючими сигналами через системну шину (мал. 2.2). Фізично вона являє собою систему функціонально об'єднаних проводів, по яких передається три потоки даних: безпосередньо інформація, що керують сигнали й адреси. Кількість проводів у системній шині, призначених для передачі безпосередньо інформації, називається розрядністю шини. Розрядність шини відповідає числу бітів інформації, що може передаватися по шині одночасно, а кількість проводів для передачі адрес, чи адресних ліній, визначає, який обсяг ОП може бути адресований. Оскільки шина є загальною для всіх пристроїв комп'ютера, у ньому передбачена система пріоритетних переривань, що встановлює, який з пристроїв системи займе шина позначок шину в даний момент часу. Тому кожному пристрою, підключеному до шини, привласнюється визначений пріоритет. 3.1. Класифікація комп’ютерної техніки. Класифікація комп’ютерів за внутрішньою конфігурацією чи за їх можливостями є не цілком коректною. З одного боку, внутрішня будова всіх комп’ютерів досить подібна – одні і ті ж складові. З іншого боку, динамічний науково-технічний прогрес в цій сфері унеможливлює класифікацію у відповідності за такими технічними показниками, як потужність, швидкодія, обсяг пам’яті, тощо. Справа в тім, що кожні два-три роки, як правило, межі цих параметрів зміщуються настільки, що захоплюють ділянку більш потужного класу, визначену два роки тому. Тому сучасні засоби комп’ютерної техніки орієнтовно можна класифікувати в залежності від їх функціонального призначення наступним чином: · персональні комп’ютери; · корпоративні комп’ютери; · суперкомп’ютери. Персональні комп’ютери - це обчислювальні системи, усі ресурси яких повністю спрямовані на забезпечення функціонування одного робочого місця користувача. Це найчисельніший клас засобів обчислювальної техніки, в складі якого можна виділити ПК IBM PC і сумісні з ними, а також ПК Macintosh фірми Apple. Їх типова структура включає такі складові: системний блок, монітор та зовнішні засоби в/в інформації, до яких відносяться клавіатура, мишка. До комп’ютера можуть підключатися периферійні пристрої різного функціонального призначення (для збирання, накопичення, зберігання, виведення і передавання інформації). Одні периферійні пристрої призначені для встановлення взаємодії з зовнішнім носієм інформації яка передається і зберігається, інші — для встановлення взаємодії комп’ютера з технічними об'єктами. Системний блок складається з процесора, ОП, відеокарта для роботи з монітором, вінчестера, пристроїв зчитування електронної інформації з дискет і CD-ROM, блоку живлення. Можливе нарощування складу системного блоку у вигляді аудіо- відео- плат для роботи з відповідною апаратурою, модему чи факс модему для під’єднання до телефонної мережі. Потужність ПК визначається характеристиками його основних складових, таких як швидкодія та розрядність процесора, обсягами ОП та ємністю вінчестера, розмірами та роздільною здатністю монітора. Корпоративні комп’ютери (mainframe) - це багатокористувацькі обчислювальні системи з центральним блоком з великою обчислювальною потужністю та значними інформаційними ресурсами, до якого може під’єднуватися велика кількість робочих місць з мінімальною оснащеністю (навіть монітор, клавіатура, пристрій позиціонування типу “миша” чи друкуючий пристрій не завжди обов’язкові). Для автоматизованих робочих місць, приєднаних до центрального комп’ютера, можуть використовуватися ПК. Сфера використання корпоративних комп’ютерів - це реалізація інформаційних технологій для забезпечення управлінської діяльності у великих фінансових і виробничих організаціях, організація різноманітних інформаційних систем, які забезпечують обслуговування великого числа користувачів в рамках однієї функції (біржові і банківські системи, та інші). Суперкомп’ютери - це обчислювальні системи з граничними характеристиками обчислювальної потужності та інформаційних ресурсів. Вони, як правило, використовуються у військовій і космічній діяльності, у проведенні фундаментальних наукових досліджень, глобальному прогнозуванні погоди, тощо.
4. Стратегії планування процесора Рис.9. Дисципліни диспетчеризації Виділення процесора процесу проводиться багаторазово з метою досягнення ефекту мультипрограмування і цей процес називається диспетчеризацією. Відомо велика кількість правил (дисциплін диспетчеризації), відповідно до яких формується список (черга) готових до виконання задач. Розрізняють два великих класи дисциплін обслуговування — безпріоритетні і пріоритетні. При безпріоритетному обслуговуванні вибір задачі виробляється в деякому заздалегідь установленому порядку без обліку їхньої відносної важливості і часу обслуговування. При реалізації пріоритетних дисциплін обслуговування окремим задачам надається переважне право потрапити в стан виконання. Перелік дисциплін обслуговування і їхня класифікація приведені на рис.9. Запам'ятаємо про пріоритети наступне: пріоритет, привласнений задачі, може бути величиною постійною; пріоритет задачі може змінюватися в процесі її рішення. Диспетчеризація з динамічними пріоритетами вимагає додаткових витрат на обчислення значень пріоритетів задач, що виконуються, тому в багатьох ОС реального часу використовуються методи диспетчеризації на основі статичних (постійних) пріоритетів. Хоча треба помітити, що динамічні пріоритети дозволяють реалізувати гарантії обслуговування задач. Стратегія планування визначає, які процеси ми плануємо на виконання для того, щоб досягти поставленої мети. Відома велика кількість різних стратегій вибору процесу, якому необхідно представити процесор. Серед них перш за все, можна назвати наступні стратегії:* по можливості закінчувати обчислення ( обчислюючі процеси ) в тому ж самому порядку, в якому вони були початі;* віддавати перевагу більш коротким процесам;* надавати всім користувачам (процесам користувачів) однакові послуги, в тому числі і однаковий час очікування. Коли говорять про стратегію обслуговування, завжди мають на увазі поняття процесу, а не поняття задачі, оскільки процес, як ми уже знаємо, може складатися з кількох потоків (задач ). Відомо велика кількість правил (дисциплін диспетчеризації), в співвідношенні з якими формулюється список (черга) готових до виконання задач. Розділяють два великих класи дисциплін обслуговування - безпріоритетні та прiоритетні: При безпріоритетному обслуговуванні вибір задачі виконується в деякому заздалегідь встановленому порядку без обліку їх відносної важливості і часу обслуговування. При реалізації пріоритетних дисциплін обслуговування окремим задачам надається право попасти в стан виконання. Запам'ятаємо про пріоритети наступне:* пріоритет, присвоєний задачі, може бути величиною постійною;* пріоритет задачі може змінюватися в процесі її рішення. 4.1. Дисципліни диспетчеризації Дисципліна обслуговування SJN ( shortest job next, що означає: наступним буде виконуватися коротке завдання ) потребує щоб для кожного завдання була відома оцінка в потребі машинного часу. Необхідність повідомляти ОС характеристики задач, в яких описувались би потреби в ресурсах обчислювальної системи, призвела до того, що були розроблені мовні засоби. Мова JCL (job control language, мова управління завданням ) була однією з найвідоміших. Диспетчер задач порівнював заказаний час і час виконання, і у випадку перевищення вказаної оцінки в данім ресурсі ставив дане завдання не на початок, і в кінець черги. В деяких ОС в таких випадках використовувалась система шрифтів, при якій у випадку перевищення заказаного машинного часу оплата обчислювальних ресурсів здійснювалась уже по других розцінках. Дисципліна обслуговування SJN говорить що є тільки одна черга завдань, готових до виконання. І завдання, які в процесі свого виконання, були тимчасово заблоковані ( чекали закінчення операцій в/в ), знову попадають в кінець черги готових до виконання нарівні з знову поступаючими. Це призводить до того, що завдання, яким потрібно небагато часу для виконання свого закінчення, вимушені очікувати процес нарівні з довготривалими роботами, що не завжди добре. Для усунення цього недоліку і була запропонована дисципліна SRT ( shortest remaining time, слідуюче завдання потребує менш всього часу для свого закінчення ). Дисципліна обслуговування RR (мал.10.)допускає що кожна задача одержує процесорний час порціями ( говорять: квантами часу q ). Після закінчення кванта часу q задача знімається з процесора і він передається наступній задачі. Знята задача ставиться в кінець черги задач, готових до виконання. Для оптимальної роботи системи необхідно правильно вибрати закон, по якому кванти часу виділяються задачам. Рис.10. Дисципліна обслуговування RR Перший прийшов – перший обслуговується (FCFS). FCFS являється найбільш простою стратегією планування процесів і заключається в тому, що процесор передається тому процесу, який раніше за всіх його запросив. Середній час очікування для стратегії FCFS часто великий і залежить від порядку надходження процесів в чергу готових процесів. Стратегії FCFS належить так званий „ефект конвоя”. В цьому випадку коли у комп’ютері є один великий процес і декілька малих, то всі процеси збираються на початку черги готових процесів, а потім в чергу до обладнання. Таким чином „ефект конвоя” приводить до зниження загруженості, як процесора так і периферійного обладнання. Планування з використанням багаторівневої черги. При використанні цієї дисципліни диспетчеризації інтерактивні і пакетні процеси мають різні вимоги до короткострокового планувальника по відношенню до час відліку. Стратегія багаторівневої черги розділяє чергу готових процесів на декілька черг. В кожній з яких знаходяться процеси з однаковими властивостями і кожен з яких може плануватися індивідуальною стратегією. Наприклад, стратегія RR для інтерактивних процесів і FCFS для пакетних процесів. Взаємодія черг здійснюється за наступними правилами: жоден з процесів з більш низьким пріоритетом не може бути запущений поки не виконаються процеси в усіх чергах з більш високим пріоритетом. Робота процеса із черги з більш низьким пріоритетом може бути призупинена, якщо в одній з черг з більш високим пріоритетом. Пріоритетна багаточергова дисципліна обслуговування. Вона використовує обслуговування з абсолютним і відносним пріорітетом. При обслуговуванні з абсолютним пріорітетом пріорітет визначається номером черги. І першим обслуговується запит з найвищим пріорітетом (з черги з меншим пріорітетом запити з черги і-1 буде переривати обробку запиту із черги і ). Використання багаторівневої черги з оберненими зв’язками. Звичайна багаторівнева черга не допускає переміщення процесів між чергами. Тут організовується п черг. Всі нові запити поступають в кінець першої черги. Перший запит з і-тої поступає на обслуговування лише тоді, коли всі черги від першої до і-1 – порожні. На обслуговування виділяється один квант часу (tk). Якщо за цей час обслуговування запит завершився повністю, то він покидає систему. В протилежному випадку необслужений запит поступає в кінець і+1 – черги. Після обслуговування запиту з і-тої черги система вибирає для обслуговування запит із непорожньої черги з наймолодшим номером. Таким запитом може бути наступний запит з черги і або із черги і+1. Новий запит поступає в першу чергу, тобто і=1. В такій ситуації після закінчення часу tk виділеного для обслуговування запиту з черги і буде почате обслуговування запиту першої черги. Дана система найшвидше обслуговує всі короткі по часу обслуговування запити. Дана стратегія є універсальною і поєднує в собі властивості всіх розглянутих раніше. (мал..3) Обслуговування не завершене Обслужений запит Новий запит Квант обслуговування Мал.11. Багаторівнева черга з оберненими зв’язками Диспетчеризація без перерозподілу процесорного часу, або невиштовхуюча багатозадачність ( поп- preemptive, multitasking ) - це такий спосіб диспетчеризації процесів, при якому активний процес виконується до тих пір, поки він сам, що називається " по власній ініціативі ", не віддасть управління диспетчеру задач для вибору із черги другого, готового для виконання процесу або треда. Дисципліни обслуговування FCFS, SJN, SRT відносяться до не виштовхуючих. Диспетчеризація з перерозподілом процесорного часу між задачами, або виштовхувана багатозадачність ( preemptive, multitasking ) - це такий спосіб, при якому рішення про переключення процесора з виконання одного процесу на виконання другого приймається диспетчером задач, а не самою активною задачею. 5. Переривання Переривання - це примусова передача керування від виконуваної програми до системи (а через неї - до відповідної програми обробки переривання), що виникає при визначеній події. Переривання являють собою механізм, що дозволяє координувати стабільне функціонування окремих пристроїв обчислювальної системи і реагувати на особливі стани, що виникають при роботі процесора. Механізм переривань реалізується апаратно-програмними засобами. Структури систем переривання (у залежності від апаратної архітектури) можуть бути різними, але усі вони мають одну загальну особливість - переривання неодмінне спричиняє зміну порядку виконання команд процесором. Механізм обробки переривань незалежно від архітектури обчислювальної системи включає наступні елементи: 1 Встановлення факту переривання (прийом сигналу на переривання) і ідентифікація переривання (в ОС іноді здійснюється повторно, на кроці 4). 2. Запам'ятовування стану перерваного процесу. Стан процесу визначається насамперед значенням лічильника команд (адресою наступної команди, що, наприклад, у і80х86 визначається регістрами CS і IР - покажчиком команди), вмістом регістрів процесора і може включати також специфікацію режиму (наприклад, режим користувацький чи привілейований) і іншу інформацію. 3. Керування апаратно передається підпрограмі обробки переривання. У найпростішому випадку в лічильник команд заноситься початкова адреса підпрограми обробки переривань, а у відповідні регістри - інформація зі слова стану. У більш розвитих процесорах, наприклад у тім же і80286 і наступних 32-бітових мікропроцесорах, починаючи з і80386, здійснюється досить складна процедура визначення початкової адреси відповідної підпрограми обробки переривання і не менш складна процедура ініціалізації робочих регістрів процесора. 4. Збереження інформації про перервану програму, що не вдалося врятувати на кроці 2 за допомогою дій апаратури. У деяких обчислювальних системах передбачається запам'ятовування великого обсягу інформації про стан перерваного процесу. 5. Обробка переривання. Ця робота може бути виконана тією же підпрограмою, які було передане керування на кроці 3, але в ОС найчастіше вона реалізується шляхом наступного виклику відповідної підпрограми. 6. Відновлення інформації, що відноситься до перерваного процесу (етап, зворотний кроку 4). 7. Повернення в перервану програму. Кроки 1-3 реалізуються апаратно, а кроки 4-7 - програмно. На мал. 12 показано, що при виникненні запиту на переривання природний хід обчислень порушується і керування передається програмі обробки виниклого переривання. При цьому засобами апаратури зберігається (як правило, за допомогою механізмів стекової пам'яті) адреса тієї команди, з якою варто продовжити виконання перерваної програми. Після виконання програми обробки переривання керування повертається перерваній раніше програмі за допомогою занесення в покажчик команд збереженої адреси команди. Однак така схема використовується тільки в найпростіших програмних середовищах. У мультипрограмних ОС обробка переривань відбувається по більш складних схемах, про що буде більш докладно написано нижче. Переривання Програма обробки переривання Рис.12 Обробка переривання Отже, головні функції механізму переривань: - розпізнавання класифікація переривань; - передача керування відповідно оброблювачу переривань; - коректне повернення до перерваної програми. Перехід від програми, що переривається, до оброблювача і назад повинний виконуватися як можна швидше. Одним зі швидких методів є використання таблиці, що містить перелік усіх припустимих для комп'ютера переривань і адреси відповідних оброблювачів. Для коректного повернення до перерваної програми перед передачею керування оброблювачу переривань вміст регістрів процесора запам'ятовується або в пам'яті з прямим доступом, або в системному стеці - system stack. 5.1. Зовнішні та внутрішні переривання Переривання, що виникають при роботі обчислювальної системи, можна розділити на два основні класи: зовнішні (їх іноді називають асинхронними) і внутрішні (синхронні). Зовнішні переривання викликаються асинхронними подіями, що відбуваються поза процесом, що переривається, наприклад: - переривання від таймера; - переривання від зовнішніх пристроїв (переривання в/в); - переривання від живленння; - переривання з пульта оператора обчислювальної системи; - переривання від іншого процесора або іншої обчислювальної системи. Внутрішні переривання викликаються подіями, що зв'язані з роботою процесора і є синхронними з його операціями. Прикладами є наступні запити на переривання: - при порушенні адресації (в адресній частині виконуваної команди заборона доступу до неіснуючої адреси, звертання до відсутнього сегмента на сторінці при організації механізмів ВП); - при наявності в поле коду операції незадіяної двійкової комбінації; - при діленні на нуль; - при переповненні або зникненні порядку; - при виявленні помилок парності, помилок у роботі різних пристроїв апаратури засобами контролю. 5.2. Переривання за допомогою супервізора. Можуть ще існувати переривання при звертанні до супервізора ОС - у деяких комп'ютерах частина команд може використовувати тільки ОС, а не користувачі. Відповідно в апаратурі передбачені різні режими роботи, і програми користувачів виконуються в режимі, у якому ці привілейовані команди не виконуються. При спробі використовувати команду, заборонену в даному режимі, відбувається внутрішнє переривання і керування передається супервізору ОС. До привілейованих команд відносяться і команди переключення режиму робота ЦП. Нарешті, існують власне програмні переривання. Ці переривання відбуваються по відповідній команді переривання, тобто по цій команді процесор здійснює практично ті ж дії, що і при звичайних внутрішніх перериваннях. Даний механізм, був спеціально введений для того, щоб переключення на системні програмні модулі відбувався не просто як перехід у підпрограму, а точно в такий же спосіб, як і звичайне переривання. Цим забезпечується автоматичне, переключення процесора в привілейований режим з можливістю виконання будь-яких команд. Сигнали, що викликають переривання, формуються поза процесором або у самому процесорі; вони можуть виникати одночасно. Вибір одного з них для обробки здійснюється на основі пріоритетів, приписаних кожному типу переривання. Очевидно, що переривання від схем контролю процесора повинні мати найвищий пріоритет (якщо апаратура працює неправильно, те не має змісту продовжувати обробку інформації). На мал. 14 зображений звичайний порядок (пріоритети) обробки переривань у залежності від типу переривань. Облік пріоритету може бути вбудований у технічні засоби, а також визначатися ОС, тобто крім апаратно реалізованих пріоритетів переривання більшість обчислювальних машин і комплексів допускають програмно-апаратне керування порядком обробки сигналів переривання. Другий спосіб, доповнюючи перший, дозволяє застосовувати різні види обслуговування переривань. Зовнішні пристрої Рис. 14. Розподіл переривань по рівнях приорітетів. Наявність сигналу переривання обов'язково повинно викликати переривання програми, що виконується. Процесор може мати засоби захисту від переривань: відключення системи переривань, маскування (заборона) окремих сигналів переривання. Програмне керування цими засобами (існують спеціальні команди для керування роботою системи переривань) дозволяє ОС регулювати обробку сигналів переривання, змушуючи процесор, обробляти їх відразу по приходу, відкладати їхню обробку на якийсь час чи цілком ігнорувати. Звичайно операція переривання виконується тільки після завершення виконання поточної команди. Оскільки сигнали переривання виникають у довільні моменти часу, то на момент переривання може існувати кілька сигналів переривання, що можуть бути оброблені тільки послідовно. Щоб обробити, сигнали переривання в розумному порядку їм (як уже відзначалося) привласнюються пріоритети. Сигнал з більш високим пріоритетом обробляється і першу чергу, обробка інших сигналів переривання відкладається. 5.3. Маскування сигналів переривання Програмне керування спеціальними регістрами маски (маскування сигналів переривання) дозволяє реалізувати різні дисципліни обслуговування: - відносними пріоритетами, тобто обслуговування не, переривається навіть при наявності запитів з більш високими пріоритетами. Після закінчення обслуговування даного запиту обслуговується запит з найвищим пріоритетом. Для організації такої дисципліни необхідно в програмі обслуговування даного запиту накласти маски на всі інші сигнали або переривання просто відключити систему переривань; - з абсолютними пріоритетами, тобто завжди обслуговується переривання з найвищим пріоритетом. Для реалізації цього режиму необхідно на час обробки переривання замаскувати всі запити з більш низьким пріоритетом. При цьому можливо багаторівневе переривання, тобто переривання програм обробки переривань. Число рівнів переривання в цьому режимі змінюється і залежить від пріоритету запиту; - по принципу стека, чи, як іноді говорять, по дисципліні LCFS (last come fіrst served - останнім прийшов - першим обслужений), тобто запити з більш низьким пріоритетом можуть переривати обробку переривання з більш високим пріоритетом. Для цього необхідно не накладати маски ні на один сигнал переривання і не виключати систему переривань. Слід особливо зазначити, що для правильної реалізації останніх двох дисциплін потрібно забезпечити повне маскування системи переривань при виконанні кроків 1-4 і 6-7. Це необхідно для того, щоб не втратити запит і правильно його обслужити. Багаторівневе переривання повинне відбуватися на етапі власне обробки переривання, а не на етапі переходу з одного процесу на інший. З появою запиту на переривання система переривань ідентифікує сигнал і, якщо переривання дозволені, керування передається на відповідну підпрограму обробки. З мал. 14 видно, що і підпрограмі обробки переривання маються дві службові секції. Це - перша секція, у якій здійснюється збереження контексту перерваної задачі, що не зміг бути збережений на 2-му кроці, і остання, заключна секція, у якій, навпаки, здійснюється відновлення контексту. Для того щоб система переривань не зреагувала повторно на сигнал запиту на переривання, вона звичайно автоматично "закриває" (відключає) переривання, тому необхідно потім у підпрограмі обробки переривань знову включати систему переривань Установка розглянутих режимів обробки переривань (з відносними й абсолютними пріоритетами, і за правилом LCFS) здійснюється наприкінці першої секції підпрограми обробки. Таким чином, на час виконання центральної секції (у випадку роботи в режимах з абсолютними пріоритетами і по дисципліні LCFS ) переривання дозволені. На час роботи заключної секції підпрограми обробки система переривань повинна бути відключена і після відновлення контексту знову включена. Оскільки ці дії необхідно виконувати практично в кожній підпрограмі обробки переривань, у багатьох операційних системах перші секції підпрограм обробки переривань виділяються в спеціальний системний програмний модуль, називаний супервізором переривань. Супервізор переривань зберігає в дескрипторі поточної задачі робочі регістри процесора, що визначають контекст обчислювального процесу, що переривається. Далі він визначає ту підпрограму, що повинна виконати дії, зв'язані з обслуговуванням поточного запиту на переривання. Нарешті, перед тим як передати керування цій підпрограмі, супервізор переривань установлює необхідний режим обробки переривання. Після виконання підпрограми обробки переривання керування знову передається супервізору, цього разу вже на той модуль, що займається диспетчеризацією задач. І вже диспетчер задач, в свою чергу, і відповідності з прийнятим режимом розподілу процесорного часу (між процесами, що виконуються,) відновить контекст тієї задачі, який буде вирішено виділити процесор. Розглянута нами схема проілюстрована на мал. 15. Як ми бачимо з мал. 15, тут немає безпосереднього повернення в перервану раніше програму прямо із самої підпрограми обробки переривання. Для прямого безпосереднього повернення досить адреса повернення зберегти в стеці, що і робить апаратура процесора. При цьому стек легко забезпечує можливість повернення у випадку вкладених переривань, оскільки він завжди реалізує дисципліну LCFS (last come - fіrst served).
Супервізор переривань Переривання Рис. 15. Обробка переривання при участі супервізорів ОС. Однак якби контекст процесів зберігався просто в стеці, як це звичайно реалізується апаратурою, а не в описаних вище дескрипторах задач, то в нас не було би можливості гнучко підходити до вибору тієї задачі, який потрібно передати процесор після завершення роботи підпрограми обробки переривання. Природно, що це тільки загальний принцип. У конкретних процесорах і в конкретних ОС можуть існувати деякі відступи від розглянутої схеми чи доповнення до неї. Наприклад, у сучасних процесорах часто маються спеціальні апаратні можливості для збереження контексту процесу, що переривається, безпосередньо в його дескрипторі; тобто дескриптор процесу (принаймні, його частина) стає структурою даних, що підтримує апаратура.
Рефераты по информатикеПоняття ресурсу Ресурс — будь-який споживаний об'єкт. По запасах ресурси підрозділяються на вичерпні і невичерпні. Споживачі ресурсів - процеси.
Оценок: 837 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.