Управління процесами в операційній системі
Поняття операційної системи і процесу. Стани, контексти і дескриптори процесів. Алгоритми планування процесів, їх різновиди. Алгоритми встановлення пріоритету, можливі складності при їх реалізації. Характеристика гарантованого і пріоритетного планування.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | украинский |
Дата добавления | 31.05.2016 |
Размер файла | 31,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КПІ»
ФАКУЛЬТЕТ ПРИКЛАДНОЇ МАТЕМАТИКИ
Кафедра спеціалізованих комп'ютерних систем
РЕФЕРАТ
з дисципліни
«Системне програмне забезпечення»
Управління процесами в операційній системі
Підготував:
студент заочного відділення
групи ЗКІ-31
Кононов М. А.
Київ - 2016
Вступ. Поняття операційної системи і процесу
Операційні системи (ОС) займають важливіше місце в сукупності сучасних системних програмних засобів, які складають програмне забезпечення електронно-обчислювальних машин. Вони є основою організації обчислювального процесу у обчислювальній системі та визначають ефективність як використання апаратних компонентів системи, так і розв'язання поставлених задач. Від них залежить також ефективність праці персоналу.
У літературі можна зустріти різні визначення поняття «операційна система». Найбільш поширеним є визначення операційної системи як набору програм, призначених для управління ресурсами обчислювальної системи.
Іноді під призначенням ОС мають на увазі розподіл та планування ресурсів, або динамічний і статичний розподіл ресурсів. Таким чином, на перший план виходить проблема розподілу ресурсів.
При цьому під ресурсами розуміють не тільки традиційні види ресурсів, такі як: час роботи окремих пристроїв, адресний простір різних рівнів, функції окремих пристроїв, набори даних, але і: окремі програми і програмні комплекси, які припускають сумісне використання, а іноді і людину. Це визначення базується на деякій моделі обчислювального процесу, у якому паралельно діє декілька учасників (задач, процесів, користувачів та ін.), які конкурують та змагаються за ресурси. Інша група визначень характеризується функціональним підходом. У цьому випадку операційна система уявляється переліком функцій, які вона повинна виконувати. До функцій ОС відносяться забезпечення високих показників по двох найважливіших характеристиках обчислювальних систем: ефективності та надійності.
У даному рефераті описується найважливіша частина операційної системи підсистема керування процесами, що безпосередньо впливає на функціонування обчислювальної машини. Процес (або по-іншому, завдання) - абстракція, що описує виконувану програму. Для операційної системи процес являє собою одиницю роботи, заявку на споживання системних ресурсів. Підсистема управління процесами планує виконання процесів, тобто розподіляє процесорний час між декількома одночасно існуючими в системі процесами, а також займається створенням і знищенням процесів, забезпечує процеси необхідними системними ресурсами, підтримує взаємодію між процесами.
операційний дескриптор алгоритм планування
1. Стани, контексти і дескриптори процесів
У багатозадачній (багатопроцесорній) системі процес може знаходитись в одному з трьох основних станів:
виконання - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами і безпосередньо виконується процесором;
очікування - пасивний стан процесу, процес заблокований, він не може виконуватись по своїх внутрішніх причинах, чекає здійснення деякої події, наприклад, завершення операції введення-виведення, одержання повідомлення від іншого процесу, звільнення якого-небудь необхідного йому ресурсу;
готовність - також пасивний стан процесу, але в цьому випадку процес заблокований у зв'язку із зовнішніми по відношенню до нього обставинами: процес має всі необхідні для нього ресурси, він готовий виконуватись, однак процесор зайнятий виконанням іншого процесу.
У ході життєвого циклу кожен процес переходить з одного стану в інший відповідно до алгоритму планування процесів, реалізованим у даній операційній системі.
У стані виконання в однопроцесорній системі може знаходитись тільки один процес, а в кожному зі станів очікування і готовність - кілька процесів, ці процеси утворюють черги. Життєвий цикл процесу починається зі стану готовність, коли процес готовий до виконання і чекає своєї черги. При активізації процес переходить у стан виконання і знаходиться в ньому до тих пір, поки або він сам не звільнить процесор, перейшовши в стан очікування якої-небудь події, або буде насильно "витиснутий" із процесора, наприклад, внаслідок вичерпання відведеного даному процесу кванта процесорного часу. В останньому випадку процес повертається в стан готовності. У цей же стан процес переходить зі стану очікування, після того, як очікувана подія відбудеться.
Контекст і дескриптор процесу
Протягом існування процесу його виконання може багато раз перериватись та продовжуватись. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками на відкриті файли, інформацією про незавершені операції введення-виведення, кодами помилок виконуваних даним процесом системних викликів і т. п. Ця інформація називається контекстом процесу.
Крім цього операційній системі для реалізації планування процесів потрібна додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце знаходження кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу.
Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, яка повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується операційною системою тільки після того, як прийнято рішення про відновлення перерваного процесу.
Черги процесів являють собою дескриптори окремих процесів, об'єднані в списки. Таким чином, кожен дескриптор, крім всього іншого, містить принаймні один покажчик на інший дескриптор, що є сусіднім з ним у черзі. Така організація черг дозволяє їх легке багаторазове впорядкування, уможливлює включення і виключення процесів, переведення з одного стану в інший.
Програмний код тільки тоді почне виконуватися, коли для нього операційною системою буде створений процес.
Створити процес - це означає:
· створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;
· включити дескриптор нового процесу в чергу готових процесів;
· завантажити кодовий сегмент процесу в оперативну пам'ять або в область свопінгу.
2. Алгоритми планування процесів
Планування процесів включає в себе рішення наступних завдань:
· визначення моменту часу для зміни виконуваного процесу;
· вибір процесу для виконання з черги готових процесів;
· перемикання контекстів "старого" і "нового" процесів.
Існує два основних типи процедур планування процесів - витискаючі (preemptive) і невитискаючі (non-preemptive).
Non-preemptive multitasking (невитискаюча багатозадачність) - це спосіб планування процесів, при якому активний процес виконується до тих пір, поки він сам, за власною ініціативою, не віддасть управління планувальником операційної системи для того, щоб той вибрав з черги інший, готовий до виконання процес. Preemptive multitasking - витискаюча багатозадачність - це такий спосіб, при якому рішення про переключення процесора з виконання одного процесу на виконання іншого процесу приймається планувальником операційної системи, а не самою активною задачею.
Найбільш часто зустрічаються алгоритми:
· алгоритми, засновані на квантуванні
· алгоритми, засновані на пріоритетах.
Пріоритет - це число, яке характеризує ступінь привілейованості процесу при використанні ресурсів обчислювальної машини, зокрема, процесорного часу: чим вище пріоритет, тим вище привілеї.
Існує безліч різних алгоритмів планування процесів, що вирішують перераховані вище завдання по-різному, переслідують різні цілі і забезпечують різну якість мультипрограмування. Серед цієї безлічі алгоритмів розглянемо докладніше дві групи найбільш часто використовуваних алгоритмів: алгоритми, засновані на квантуванні, і алгоритми, засновані на пріоритетах. Відповідно до алгоритмів, заснованих на квантуванні, зміна активного процесу відбувається, якщо:
· процес завершився і покинув систему;
· помилка;
· процес перейшов у стан очікування;
· вичерпано квант процесорного часу, відведеного даному процесу.
Інша група алгоритмів використовує поняття "пріоритет" процесу. Пріоритет - це число, яке характеризує ступінь привілейованості процесу при використанні ресурсів обчислювальної машини, зокрема, процесорного часу: чим вище пріоритет, тим вище привілеї.
Пріоритет може виражатися цілими чи дробовими числами, мати позитивні або негативні значення. Чим вище привілеї процесу, тим менше часу він буде проводити в чергах. Пріоритет може призначатися адміністратором системи в залежності від важливості завдання або обчислюватися самої ОС за певними правилами, він може залишатися фіксованим протягом усього життя процесу або змінюватися в часі відповідно з певним законом. В останньому разі пріоритети називаються динамічними.
Існує два різновиди пріоритетних алгоритмів: алгоритми, що використовують відносні пріоритети, і алгоритми, що використовують абсолютні пріоритети.
Згідно з алгоритмами, заснованими на квантуванні, зміна активного процесу відбувається, якщо: процес завершився і залишив систему, сталася помилка, процес перейшов у стан очікування, вичерпано квант процесорного часу, відведеного даному процесу.
Потік, який вичерпав свій квант, переводиться в стан готовності і очікує, коли йому буде наданий новий квант процесорного часу, а на виконання відповідно з певним правилом обирається новий потік з черги готових. Кванти, виділені для потоків, можуть бути однаковими для всіх або різними.
3. Алгоритми встановлення пріоритету
Алгоритми встановлення пріоритету можуть встановлювати відносні та абсолютні пріоритети.
Алгоритми планування
Існує досить великий набір різноманітних алгоритмів планування, які призначені для досягнення різних цілей і ефективні для різних класів задач. Багато з них можуть використовуватися на кількох рівнях планування. В цьому розділі ми розглянемо деякі найбільш уживані алгоритми стосовно процесу короткочасного планування.
First-Come, First-Served (FCFS)
Найпростішим алгоритмом планування є алгоритм, який прийнято позначати абревіатурою FCFS по першим літерам його англійської назви - First-Come, First-Served (першим прийшов, першим був виконаний). Уявімо собі, що процеси, які перебувають у стані готовності, вишикувані в чергу. Коли процес переходить у стан готовності, він, а точніше, посилання на нього поміщається в кінець цієї черги. Вибір нового процесу для виконання здійснюється з початку черги з видаленням звідти посилання. Чергу подібного типу має в програмуванні спеціальне найменування - FIFO), скорочення від First In, First Out (першим ввійшов, першим вийшов).
Такий алгоритм вибору процесу здійснює невитискаюче планування. Процес, що отримав у своє розпорядження процесор, займає його до закінчення поточного процесорного часу. Після цього для виконання вибирається новий процес з початку черги.
Перевагою алгоритму FCFS є легкість його реалізації, але в той же час він має і багато недоліків. Розглянемо наступний приклад. Нехай у стані готовності знаходяться три процесу p0, p1 і p2, для яких відомі інтервали їх перемикання. Для простоти будемо вважати, що вся діяльність процесів обмежується використанням тільки одного проміжку процесорного часу, що процеси не здійснюють операцій вводу-виводу і що час перемикання контексту настільки малий, що ними можна знехтувати.
Якщо процеси розташовані в черзі процесів, готових до виконання по порядку p0, p1, p2, то першим для виконання вибирається процес p0, який процесор отримує на весь час своєї роботи, тобто на 13 одиниць часу. Після його закінчення в стан виконання переходить процес p1, він займає процесор на 4 одиниці часу. І, нарешті, можливість працювати отримує процес p2. Час очікування для процесу p0 становить 0 одиниць часу, для процесу p1 - 13 одиниць, для процесу p2 - 13 + 4 = 17 одиниць. Таким чином, середній час очікування в цьому випадку - (0 + 13 + 17)/3 = 10 одиниць часу. Повний час виконання для процесу p0 становить 13 одиниць часу, для процесу p1 - 13 + 4 = 17 одиниць, для процесу p2 - 13 + 4 + 1 = 18 одиниць. Середній повний час виконання дорінює (13 + 17 + 18)/3 = 16 одиницям часу.
Round Robin (RR)
Модифікацією алгоритму FCFS є алгоритм, який отримав назву Round Robin (Round Robin - це вид дитячої каруселі в США) або скорочено RR. По суті, це той самий алгоритм, реалізований тільки в режимі витискаючого планування. Можна уявити собі безліч готових процесів, організованих циклічно - процеси сидять на каруселі. Карусель обертається так, що кожен процес знаходиться близько процесора невеликий фіксований квант часу, звичайно, 10 - 100 мілісекунд. Поки процес знаходиться поруч з процесором, він отримує процесор у своє розпорядження і може виконуватись.
Час безперервного використання процесора, необхідний процесу, менше або дорівнює тривалості кванту часу. Тоді процес по своїй волі звільняє процесор до закінчення кванта часу, на виконання надходить новий процес з початку черги, і таймер починає відлік квантів заново. Тривалість залишку поточного часу процесу більший, ніж квант часу. Тоді після закінчення цього кванту процес переривається таймером і розміщується в кінці черги процесів, готових до виконання, а процесор виділяється для виконання процесу, що знаходиться на її початку.
Першим для виконання вибирається процес p0. Тривалість його процесорного часу більша, ніж величина кванта часу і тому процес виконується до закінчення кванту, тобто протягом 4 одиниць часу. Після цього він поміщається в кінець черги готових до виконання процесів, яка приймає вигляд p1, p2, p0. Наступним починає виконуватись процес p1. Час його виконання збігається з величиною вибраного кванту, тому процес працює до свого завершення. Тепер черга процесів у стані готовності складається з двох процесів, p2 і p0. Процесор починає виконувати процес p2. Він завершується до закінчення відпущеного йому процесорного часу, і чергові кванти перераховуються процесу p0 - єдиному, який не закінчив свою роботу. Час очікування для процесу p0 становить 5 одиниць часу, для процесу p1 - 4 одиниці часу, для процесу p2 - 8 одиниць часу. Таким чином, середній час очікування для цього алгоритму виходить рівним (5 + 4 + 8)/3 = 5,6(6) одиниць часу. Повний час виконання процесу p0 становить 18 одиниць часу, для процесу p1 - 8 одиниць, для процесу p2 - 9 одиниць. Середній повний час виконання виявляється рівним (18 + 8 + 9)/3 = 11,6(6) одиниць часу.
Легко побачити, що середній час очікування і середній повний час виконання для зворотнього порядку процесів не відрізняється від відповідних часів для алгоритму FCFS і складає відповідно 2 і 8 одиниць часу.
На продуктивність алгоритму RR сильно впливає величина кванта часу. Розглянемо той самий приклад з порядком процесів p0, p1, p2 для величини кванта часу, що дорівнює 1. Час очікування для процесу p0 складе 5 одиниць часу, для процесу p1 - теж 5 одиниць, для процесу p2 - 2 одиниці. В цьому випадку середній час очікування виходить рівним (5 + 5 + 2)/3 = 4 одиниці часу. Середній повний час виконання складе (18 + 9 + 3)/3 = 10 одиниць часу.
При дуже великих величинах кванта часу, коли кожен процес встигає завершитись до виникнення переривання по часу, алгоритм RR трансформується в алгоритм FCFS. При дуже малих величинах створюється ілюзія того, що кожен з n процесів працює на власному віртуальному процесорі з продуктивністю ~ 1/n від продуктивності реального процесора. Правда, це справедливо лише при теоретичному аналізі за умови нехтування часом перемикання контексту процесів. У реальних умовах при занадто малій величині кванта часу і, відповідно, занадто частому перемиканні контексту витрати на переключення різко знижують продуктивність системи.
Shortest-Job-First (SJF)
При розгляді алгоритмів FCFS і RR ми бачили, наскільки істотним для них є порядок розташування процесів в черзі процесів, готових до виконання. Якщо короткі задачі розташовані в черзі ближче до її початку, то загальна продуктивність цих алгоритмів значно зростає. Якщо б ми знали час наступних CPU burst для процесів, що перебувають у стані готовності, то могли б вибрати для виконання не процес з початку черги, а процес з мінімальною тривалістю CPU burst. Якщо ж таких процесів два або більше, то для вибору одного з них можна використовувати вже відомий нам алгоритм FCFS. Квантування часу при цьому не застосовується. Описаний алгоритм отримав назву "найкоротша робота першої" або Shortest Job-First (SJF).
SJF-алгоритм короткострокового планування може бути як витісняючим, так і невитісняючим. При невитісняючому SJF-плануванні процесор надає обраному процесу необхідний йому час, незалежно від подій, що відбуваються в обчислювальній системі. При невитісняючому SJF-плануванні враховується поява нових процесів у черзі готових до виконання (з числа знову народжених або розблокованих) під час роботи обраного процесу. Якщо процесорний імпульс нового процесу менший, ніж залишок імпульс у виконуваного, то виконуваний процес витісняється новим.
При використанні невитісняючого алгоритму SJF першим для виконання буде обрано процес p3, що має найменше значення тривалості чергового імпульсу. Після його завершення для виконання вибирається процес p1, потім p0 і, нарешті, p2.
Як ми бачимо, середній час очікування для алгоритму SJF становить (4 + 1 + 9 + 0)/4 = 3,5 одиниці часу. Легко порахувати, що для алгоритму FCFS при порядку процесів p0, p1, p2, p3 ця величина буде дорівнювати (0 + 5 + 8 + 15)/4 = 7 одиницям часу, тобто буде в два рази більше, ніж для алгоритму SJF. Можна показати, що для заданого набору процесів (якщо в черзі не з'являються нові процеси) алгоритм SJF є оптимальним з погляду мінімізації середнього часу очікування серед класу невитісняючих алгоритмів.
Для розгляду прикладу, в якому витісняється SJF планування ми візьмемо ряд процесів p0, p1, p2 і p3 з різними часом CPU burst і різними моментами їх появи в черзі процесів, готових до виконання (див. табл. 3.6.).
У початковий момент часу в стані готовності знаходяться тільки два процесу, p0 і p3. Менший час чергового CPU burst виявляється у процесу p3, тому він і вибирається для виконання. По закінченню 2 одиниць часу в систему надходить процес p1. Час його CPU burst менший, ніж залишок CPU burst у процесу p3, який витісняється зі стану виконання і переводиться в стан готовності. Після ще 2 одиниць часу процес p1 завершується, і для виконання знову вибирається процес p3. У момент часу t = 6 у черзі процесів, готових до виконання, з'являється процес p2, але оскільки йому для роботи потрібно 7 одиниць часу, а процесу p3 залишилося працювати всього 1 одиницю часу, то процес p3 залишається в стані виконання. Після його завершення в момент часу t = 7 у черзі перебувають процеси p0 і p2, з яких вибирається процес p0. Нарешті, останнім отримає можливість виконуватися процес p2.
Основною складністю при реалізації алгоритму SJF є неможливість точного знання тривалості чергового CPU burst для яких працюють процеси. В пакетних системах кількість процесорного часу, необхідне завдання для виконання, вказує користувач при формуванні завдання. Ми можемо брати цю величину для здійснення довгострокового SJF-планування. Якщо користувач вкаже більше часу, ніж йому потрібно, він буде чекати результату довше, ніж міг би, так як завдання буде завантажено в систему пізніше. Якщо ж він вкаже меншу кількість часу, завдання може не дорахуватися до кінця. Таким чином, в пакетних системах рішення завдання оцінки часу використання процесора перекладається на плечі користувача. При короткостроковому плануванні ми можемо робити тільки прогноз тривалості наступного CPU burst, виходячи з передісторії процесу. Нехай ф(n) - величина n-го CPU burst, T(n + 1) - передбачене значення для n + 1-го CPU burst, alpha- деяка величина в діапазоні від 0 до 1.
Визначимо рекурентне співвідношення. T(n+1)= alphaф(n)+(1-alpha)T(n) T(0) покладемо у довільну константу. Перший доданок враховує останнім поведінку процесу, тоді як другий доданок враховує його передісторію. При alpha= 0 ми перестаємо стежити за останньою поведінкою процесу, фактично вважаючи T(n)= T(n+1)=...=T(0), тобто оцінюючи всі CPU burst однаково, виходячи з деякого початкового припущення.
Вважаючи alpha = 1 ми забуваємо про передісторії процесу. У цьому випадку ми вважаємо, що час чергового CPU burst буде збігатися з часом останнього CPU burst:
T(n+1)= ф(n) Зазвичай вибирають alpha= 1/2 для рівноцінного обліку останньої поведінки і передісторії. Треба зазначити, що такий вибір alpha зручний і для швидкої організації обчислення оцінки T(n + 1). Для підрахунку нової оцінки потрібно взяти стару оцінку, скласти з виміряним часом CPU burst і отриману суму розділити на 2 наприклад, зсунувши її на 1 біт вправо. Отримані оцінки T(n + 1) застосовуються як тривалості чергових проміжків часу безперервного використання для процесору короткострокового SJF-планування.
4. Гарантоване і пріоритетне планування
При інтерактивній роботі N користувачів обчислювальної системі можна застосувати алгоритм планування, який гарантує, що кожен із користувачів матиме в своєму розпорядженні ~1/N частину процесорного часу. Пронумеруємо всіх користувачів від 1 до N. Для кожного користувача з номером i введемо дві величини: Ti - час перебування користувача в системі або, іншими словами, тривалість сеансу його спілкування з машиною і фi - сумарний процесорний час, який вже виділений всім його процесам протягом сеансу. Справедливим для користувача було б отримання Ti/N процесорного часу. Якщо фi<<Ti/N, то i-й користувач несправедливо обділений процесорним часом. Якщо ж фi>>Ti/N, система явно прихильна до користувача з номером i. Обчислимо для процесів кожного користувача значення коефіцієнта справедливості фiN/Ti і будемо надавати черговий квант часу готовому процесу з найменшою величиною цього відношення. Запропонований алгоритм називають алгоритмом гарантованого планування. До недоліків цього алгоритму можна віднести неможливість передбачити поведінку користувачів. Якщо деякий користувач відправиться на пару годин пообідати або поспати, не перериваючи сеансу роботи, то після повернення його процеси будуть отримувати невиправдано багато процесорного часу.
Пріоритетне планування
Алгоритми SJF і гарантованого планування являють собою приватні випадки пріоритетного планування. При пріоритетному плануванні кожному процесу присвоюється певне числове значення - пріоритет, у відповідності з яким йому виділяється процесор. Процеси з однаковими пріоритетами плануються в порядку FCFS. Для алгоритму SJF в якості такого пріоритету виступає оцінка тривалості наступного CPU burst. Чим менше значення цієї оцінки, тим більш високий пріоритет має процес. Для алгоритму гарантованого планування пріоритетом служить обчислений коефіцієнт справедливості. Чим менше він, тим вищий пріоритет процесу.
Алгоритми призначення пріоритетів процесів можуть спиратися як на внутрішні параметри, пов'язані з подіями всередині обчислювальної системи, так і на зовнішні по відношенню до неї. До внутрішніх параметрів відносяться різні кількісні та якісні характеристики процесу такі як: обмеження за часом використання процесора, вимоги до розміру пам'яті, кількість відкритих файлів і використовуваних пристроїв введення-виведення, відношення середніх тривалостей I/O burst до CPU burst і т. д. Алгоритми SJF та гарантованого планування використовують внутрішні параметри. В якості зовнішніх параметрів можуть виступати важливість процесу для досягнення будь-яких цілей, вартість сплаченого процесорного часу й інші чинники. Високий зовнішній пріоритет може бути присвоєний задачі лектора або того, хто заплатив $100 за роботу протягом однієї години.
Планування з використанням пріоритетів може бути як витісняючим, так і невитісняючим. При витісняючому плануванні процес з більш високим пріоритетом, який з'явився в черзі готових процесів, витісняє виконуваний процес з більш низьким пріоритетом. У разі невитісняючого планування він просто стає на початок черги готових процесів. Давайте розглянемо приклади використання різних режимів пріоритетного планування.
Нехай в чергу процесів, що перебувають у стані готовності, надходять ті ж процеси, що й у прикладі витіснення алгоритму SJF, тільки їм додатково ще привласнені пріоритети . В обчислювальних системах не існує певної угоди, яке значення пріоритету - 1 або 4 вважати більш пріоритетним. Щоб уникнути плутанини, у всіх наших прикладах ми будемо припускати, що більше значення відповідає меншому пріоритету, тобто найбільш пріоритетним у нашому прикладі є процес p3, а найменш пріоритетним - процес p0.
Як будуть вести себе процеси при використанні невитісняючого пріоритетного планування? Першим для виконання в момент часу t = 0 вибирається процес p3, як володіє найвищим пріоритетом. Після його завершення в момент часу t = 5 в черзі процесів, готових до виконання, опиняться два процеси p0 і p1. З них більший пріоритет має процес p1, він і почне виконуватися . Потім у момент часу t = 8 для виконання буде обраний процес p2 і лише потім - процес p0.
Іншим буде надання процесора процесам у разі витісняючого пріоритетного планування . Першим, як і в попередньому випадку, почне виконуватись процес p3, а після його закінченню - процес p1. Однак у момент часу t = 6 він буде витіснений процесом p2 і продовжить своє виконання тільки в момент часу t = 13. Останнім, як і раніше, буде виконуватися процес p0.
У розглянутому вище прикладі пріоритети процесів з плином часу не змінювалися. Такі пріоритети прийнято називати статичними. Механізми статичної пріоритетності легко реалізувати, і вони пов'язані з відносно невеликими витратами на вибір найбільш пріоритетного процесу. Однак статичні пріоритети не реагують на зміни ситуації в обчислювальній системі, які можуть зробити бажаним коригування порядку виконання процесів. Більш гнучкими є динамічні пріоритети процесів, які змінюють свої значення під час виконання процесів. Початкове значення динамічного пріоритету, присвоєне процесу, діє протягом лише короткого періоду часу, після чого йому призначається нове, більш відповідне значення. Зміна динамічного пріоритету процесу є єдиною операцією над процесами, яку ми до сих пір не розглянули. Як правило, зміна пріоритету процесів проводиться узгоджено з вчиненням будь-яких інших операцій: при народженні нового процесу, розблокуванні або блокуванні процесу, після закінчення певного кванта часу або по завершенню процесу. Прикладами алгоритмів з динамічними пріоритетами є алгоритм SJF і алгоритм гарантованого планування. Схеми з динамічною пріоритетністю набагато складніші в реалізації і пов'язані з великими витратами у порівнянні зі статичними схемами. Однак їх використання передбачає, що ці витрати виправдовуються поліпшенням роботи системи.
Головна проблема пріоритетного планування полягає в тому, що при неналежному виборі механізму призначення та зміні пріоритетів низькопріоритетні процеси не можуть запускатися невизначено довгий час. Зазвичай трапляється одне з двох. Або вони все ж чекають своєї черги на виконання (в дев'ять годин ранку в неділю, коли всі пристойні програмісти лягають спати). Або обчислювальну систему доводиться вимикати, і вони губляться (при зупинці IBM 7094 в Массачусетському технологічному інституті в 1973 році були знайдені процеси, запущені в 1967 році і жодного разу з тих пір не виконались). Рішення цієї проблеми може бути досягнуто за допомогою збільшення з часом значення пріоритету процесу, що перебуває у стані готовності. Нехай спочатку процесам присвоюються пріоритети від 128 до 255. Кожен раз після закінчення певного проміжку часу значення пріоритетів готових процесів зменшуються на 1. Процесу, який побував у стані виконання, присвоюється початкове значення пріоритету. Навіть така груба схема гарантує, що будь-якому процесу в розумні терміни буде надано право на виконання.
Перелік використаної літератури
1. А.В. Гордєєв «Операційні системи: Підручник для вузів. 2-ге видання», стр. 9.
2. Інформатика: підручник. - 3-тє перераб.изд./Под ред. Н.В. Макарової, стр. 338.
3. А.В. Гордєєв «Операційні системи: Підручник для вузів. 2-ге видання», стр. 48.
4. Інформатика: підручник.Курносов О.П.,Кулев С.А.,Улезько А.В. та інших.; Під ред. О.П.Курносова, стр. 126.
5. Інформатика: підручник.Курносов О.П.,Кулев С.А.,Улезько А.В. та інших.; Під ред. О.П.Курносова, стр. 131.
6. Інформатика: підручник.Курносов О.П.,Кулев С.А.,Улезько А.В. та інших.; Під ред. О.П.Курносова, стр. 140.
7. Інформатика. Базовийкурс/Симонович С.В., стр. 138.
8. Інформатика: підручник.Курносов О.П.,Кулев С.А.,Улезько А.В. та інших.; Під ред. О.П.Курносова, стр. 146.
9. А.В. Гордєєв «Операційні системи: Підручник для вузів. 2-ге видання», стр. 9.
Размещено на Allbest.ru
...Подобные документы
Поняття обчислювального процесу і ресурсу. Планування і диспетчеризація процесів і задач в ОС. Розподіл переривань по рівнях пріоритету. Способи виділення пам’яті під новий розділ. Дисципліни заміщення сегментів. Призначення таблиць ідентифікаторів.
реферат [68,7 K], добавлен 13.06.2010Аварійне відновлення операційної системи Windows XP. Способи резервного копіювання та відновлення даних. Їх характеристика та рекомендації по використанню. Реалізація планування в Linux. Умови виклику процедури планування. Встановлення віртуальної машини.
контрольная работа [3,6 M], добавлен 28.12.2016Основні поняття теорії нечіткої логіки. Прогнозування економічних процесів та курсу валюти на фінансовому ринку. Системи та алгоритми нечіткого виводу. Адаптивні системи нейро-нечіткого виводу. Процес розробки і перевірки нечіткої моделі гібридної мережі.
курсовая работа [3,1 M], добавлен 19.06.2014Призначення і характеристика операційної системи Windows 98. Огляд основних можливостей. Встановлення ОС Windows 98. Основні компоненти вікон. Панель задач, головне початкове меню. Перемикання між програмами. Відкриття документів, планування завдань.
дипломная работа [138,9 K], добавлен 28.10.2014Визначення та способи представлення графів. Основні алгоритми на графах. Побудова мінімального остового дерева. Алгоритми Прима та Дейкстри. Модель Флойда-Уоршалла. Огляд можливостей мови програмування. Опис функцій програмної моделі, інтерфейс програми.
дипломная работа [563,7 K], добавлен 03.08.2014Операційна система MicroDSP-RTOS, їх загальна характеристика та призначення, оцінка можливостей і інструментарій. Управління завданнями в даній операційній системі, синхронізація та взаємодія задач. Підтримка MicroDSP-RTOS в MetaDSP різними програмами.
контрольная работа [832,8 K], добавлен 21.05.2010Налаштування BIOS, підготовка операційної системи Windows 7 та її встановлення. Основні параметри та драйвери системи, облікові записи користувачів. Можливості програми заморожування Deep Freeze. Розрахунок витрат на встановлення програмного забезпечення.
дипломная работа [4,8 M], добавлен 19.07.2013Задачі системного управління структурою і властивостями складних об'єктів. Аналіз вимог до точності та стійкості слідкувальної системи. Розробка алгоритмів визначення стійкості та якості перехідних процесів системи. Програмний комплекс системи.
курсовая работа [2,0 M], добавлен 28.02.2011Визначення двовимірних масивів. Розміщення елементів на головній та бічній діагоналі. Алгоритми обробки двовимірних масивів. Двовимірні масиви в задачах лінійної алгебри. Ініціалізація елементів матриці за допомогою генератора псевдовипадкових чисел.
контрольная работа [162,8 K], добавлен 02.12.2014Основні поняття, складові, призначення та правова база електронно-цифрового підпису. Вимоги до нього, переваги використання. Алгоритми побудови ЕЦП. Характеристика моделей атак та їх можливі результати. Підписування електронних документів різних форм.
курсовая работа [42,4 K], добавлен 16.03.2015Характеристика інфологічної та даталогічної моделі бази даних. Поняття та класифікація управлінських інформаційних систем. Інформаційні системи управління технологічними процесами. Інтелектуальні інформаційно-пошукові системи, штучний інтелект.
контрольная работа [11,9 K], добавлен 29.10.2009Програмне забезпечення та шляхи автоматизації інформаційної системи управління школи. Побудова імітаційної моделі управлінських процесів за допомогою ППЗ MS Project. Розробка бази даних "Школа". Дослідження автоматизованого робочого місця секретаря.
курсовая работа [210,9 K], добавлен 10.11.2012Система SAP R/3 як інтегрований комплекс програмних засобів корпоративного управління. Загальна характеристика системи R/3 та її складових елементів. Головна книга як центральний елемент інтеграції господарських процесів в системі обліку і звітності.
реферат [24,6 K], добавлен 03.04.2010Структура та побудова модулів для системи віддаленого адміністрування серверів Ajenti. Огляд веб-орієнтованих систем віддаленого адміністрування для linux. Процес розробки та реалізації програмного модуля "Менеджер процесів", системні вимоги до нього.
дипломная работа [3,0 M], добавлен 09.06.2012Приклад реалізації крок за кроком методу сортування масивів "бульбашка", характеристика етапів. Графічне представлення методу, фрагмент програми його реалізації. Алгоритми сортування масивів методами вибору та вставок, опис особливостей їх реалізації.
презентация [824,2 K], добавлен 26.11.2014Програмування лінійних процесів, процесів з розгалуженням, регулярних циклічних процесів, ітераційних процесів. Одномірні масиви. Впорядкування одномірних масивів. Двовимірні масиви. Алгоритм лінійних обчислювальних процесів. Програми на мові Pascal.
лабораторная работа [96,6 K], добавлен 05.11.2008Загальні відомості про обчислювальний кластер. Розробка імітаційної схеми кластера, моделі обчислювальної системи, керуючої системи, обчислювального завантаження потоком задач. Схема роботи алгоритмів планування. Результати експериментального дослідження.
курсовая работа [2,0 M], добавлен 06.09.2011Поняття контролю та якості в управлінні проектами інформатизації. Планування якісного інформаційного проекту. Дотримання стандартів якості. Методи та засоби для планування та контролю якості. План реалізації й технологічна документація як форми контролю.
контрольная работа [1,1 M], добавлен 26.11.2009Використання операційної системи для ефективного використання комп'ютерних ресурсів та для створення умов для ефективної роботи користувача. Історія створення середовища Windows. Коротка характеристика різних конфігурацій операційної системи Windows.
реферат [25,9 K], добавлен 07.01.2010Функціональне моделювання діяльності студії та виявлення задач до автоматизації. Технічне завдання на розроблення автоматизованої системи. Обґрунтування вибору програмних засобів для розроблення системи. Алгоритми рішення, забезпечення виконання функцій.
дипломная работа [2,7 M], добавлен 19.11.2010