Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Контекст і дескриптор процесу





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

Крім цього, операційній системі для реалізації планування процесів потрібна додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце знаходження кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу.

Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, яка повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується операційною системою тільки після того, як прийнято рішення про відновлення перерваного процесу.

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

Створити процес - це значить:

- створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;

- включити дескриптор нового процесу в чергу готових процесів;

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

Алгоритми планування процесів

Планування процесів містить у собі рішення наступних завдань:

- визначення моменту часу для зміни виконуваного процесу;

- вибір процесу на виконання з черги готових процесів;

- перемикання контекстів "старого" і "нового" процесів.

Перші два завдання вирішуються програмними засобами, а остання значною мірою апаратно.

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

- алгоритми, засновані на квантуванні,

- алгоритми, засновані на пріоритетах.

Відповідно з алгоритмами, заснованими на квантуванні, зміна активного процесу відбувається, якщо: процес завершився і залишив систему, сталася помилка, процес перейшов у стан ОЧІКУВАННЯ, вичерпаний квант процесорного часу, відведений даному процесу.

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

Кванти, виділювані процесам, можуть бути однаковими для всіх процесів чи різними. Кванти, виділювані одному процесу, можуть бути фіксованої величини або змінюватися в різні періоди життя процесу. Процеси, які не повністю використали виділений їм квант (наприклад, через відхід на виконання операцій введення-виведення), можуть отримати або не отримати компенсацію у вигляді привілеїв при наступному обслуговуванні. По-різному може бути організовано чергу готових процесів: циклічно, за правилом "перший прийшов - перший обслужений" (FIFO) чи за правилом "останній прийшов - перший обслужений" (LIFO).

Інша група алгоритмів використовує поняття "пріоритет" процесу.

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

Існує два різновиди пріоритетних алгоритмів: алгоритми, що використовують відносні пріоритети, і алгоритми, які використовують абсолютні пріоритети. В обох випадках вибір процесу на виконання з черги готових здійснюється однаково: вибирається процес, що має найвищий пріоритет. По різному вирішується проблема визначення моменту зміни активного процесу. У системах з відносними пріоритетами активний процес виконується до тих пір, поки він сам не покине процесор, перейшовши в стан ОЧІКУВАННЯ (чи ж станеться помилка, чи процес завершиться). У системах з абсолютними пріоритетами виконання активного процесу переривається ще при одній умові: якщо в черзі готових процесів з'явився процес, пріоритет якого вище пріоритету активного процесу. У цьому випадку перерваний процес переходить у стан готовності. На малюнку 1.2 показані графи станів процесу для алгоритмів з відносними (а) і абсолютними (б) пріоритетами.

Рис. 1.2. Графи станів процесів у системах (а) з відносними пріоритетами;

(б) з абсолютними пріоритетами

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

Date: 2015-07-27; view: 533; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию