Головна

перемикання контексту

  1.  Вплив культурно-країнового контексту на мотиваційні зміни
  2.  Глава 2. Перемикання погляду в сторону любові.
  3.  Динамічні характеристики уваги (вибірковість, інтенсивність, розподіл, переключення, коливання).
  4.  КОМУТАЦІЯ (ПЕРЕМИКАННЯ).
  5.  Невірне тлумачення ВІРШІВ окремо від контексту
  6.  Визначення контексту (МКБ).
  7.  Визначення контексту ризик-менеджменту

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

Рис 2.5 Виконання операції розблокування процесу. Використання терміна "код користувача" не обмежує спільності малюнка тільки для користувача процесами

Давайте для прикладу спрощено розглянемо, як в реальності може виникати операція розблокування процесу, що очікує введення-виведення (див. Рисунок 2.5). При виконанні процесором деякого процесу (на малюнку - процес 1) виникає переривання від пристрою введення-виведення, що сигналізує про закінчення операцій на пристрої. Над що виконуються процесом здійснюється операція припинення. Далі, операційна система розблокує процес, який ініціював запит на введення-виведення (на малюнку - процес 2), і здійснює запуск призупиненого або нового процесу, обраного при виконанні планування (на малюнку був обраний розблокований процес). Як бачимо, в результаті обробки інформації про закінчення операції введення-виведення можлива зміна процесу знаходиться в стані виконання.

Для коректного перемикання процесора з одного процесу на інший необхідно зберегти контекст виконувався процесу і відновити контекст процесу, на який буде переключено процесор. Така процедура збереження / відновлення працездатності процесів називається перемиканням контексту. Час, витрачений на перемикання контексту, не використовується обчислювальної системою для здійснення корисної роботи і являє собою накладні витрати, що знижують продуктивність системи. Воно змінюється від машини до машини і зазвичай знаходиться в діапазоні від 1 до 1000 мікросекунд. Істотно скоротити накладні витрати в сучасних операційних системах дозволяє розширена модель процесів, що включає в себе поняття threads of execution (Нитки виконання або просто нитки). Детальніше про нитках виконання ми будемо говорити в розділі 4 - "Кооперація процесів і основні аспекти її логічної організації".

резюме

поняття процесу характеризує деяку сукупність набору виконуються команд, асоційованих з ним ресурсів і поточного моменту його виконання, що знаходиться під управлінням операційної системи. У будь-який момент часу процес повністю описується своїм контекстом, що складається з реєстрової, системної та користувальницької частин. В операційній системі процеси представляються певною структурою даних - PCB, що відбиває зміст реєстрового і системного контекстів. Процеси можуть перебувати в п'яти основних станах: народження, готовність, виконання, очікування, закінчив виконання. Зі стану в стан процес переводиться операційною системою в результаті виконання над ним операцій. Операційна система може виконувати над процесами наступні операції: створення процесу, завершення процесу, припинення процесу, запуск процесу, блокування процесу, розблокування процесу, зміна пріоритету процесу. Між виконанням операцій вміст PCB не змінюється. Діяльність мультипрограммной операційної системи складається з ланцюжків перерахованих операцій, виконуваних над різними процесами, і супроводжується процедурами збереження / відновлення працездатності процесів, т. Е. Перемиканням контексту. Перемикання контексту не має відношення до корисної роботи, що виконується процесами, і час, витрачений на нього, зменшує корисний час роботи процесора.

Глава 3. Планування процесів

"Я планів наших люблю громаддя ..."
 В. В. Маяковський

"Чим ретельніше ми плануємо свою діяльність,
 тим менше часу залишається на її здійснення. "
 З анналів Держплану

Всякий раз, коли нам доводиться мати справу з обмеженою кількістю ресурсів і декількома їх споживачами, будь то фонд заробітної плати в трудовому колективі або студентська вечірка з декількома ящиками пива або горілки, ми змушені займатися розподілом наявних ресурсів між споживачами або, іншими словами, плануванням використання ресурсів. Таке планування повинно мати чітко поставлені критерії (чого ми хочемо добитися розподілом ресурсів) і алгоритми, які відповідають критеріям і спираються на параметри споживачів. Тільки при правильному виборі критеріїв та алгоритмів можна уникнути таких питань, як "Чому я отримую в десять разів менше, ніж мій шеф?" або "А де моє пиво?". Справжня глава присвячена плануванню виконання процесів в мультипрограмних обчислювальних системах або, коротко кажучи, планування процесів.

рівні планування

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

Планування завдань виступає в якості довгострокового планування процесів. Воно відповідає за породження нових процесів в системі, визначаючи її ступінь мультипрограммирования, Т. Е. Кількість процесів, що одночасно знаходяться в ній. Якщо ступінь мультипрограммирования системи підтримується постійною, т. Е. Середня кількість процесів в комп'ютері не змінюється, то нові процеси можуть з'являтися тільки після завершення раніше завантажених. Тому довгострокове планування здійснюється досить рідко, між появою нових процесів можуть проходити хвилини і навіть десятки хвилин. Рішення про вибір для запуску того чи іншого процесу впливає на функціонування обчислювальної системи протягом досить тривалого інтервалу часу. Звідси й виникає назва цього рівня планування - довгострокове. У деяких операційних системах довгострокове планування зведено до мінімуму або зовсім відсутній. Так, наприклад, у багатьох інтерактивних системах поділу часу породження процесу відбувається відразу після появи відповідного запиту. Підтримка розумній мірі мультипрограммирования здійснюється за рахунок обмеження кількості користувачів, які можуть працювати в системі, і людської психології. Якщо між натисканням на клавішу і появою символу на екрані проходить 20-30 секунд, то багато користувачів віддадуть перевагу припинити роботу і продовжити її, коли система буде менш завантажена.

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

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

Критерії планування і вимоги до алгоритмів

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

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

§ Ефективність: постаратися зайняти процесор на всі 100% робочого часу, не дозволяючи йому простоювати в очікуванні процесів готових до виконання. У реальних обчислювальних системах завантаження процесора коливається від 40 до 90 відсотків.

§ Скорочення повного часу виконання (turnaround time): забезпечити мінімальний час між стартом процесу або постановкою завдання в чергу для завантаження і його завершенням.

§ Скорочення часу очікування (waiting time): мінімізувати час, який проводять процеси в стані готовність і завдання в черзі для завантаження.

§ Скорочення часу відгуку (response time): мінімізувати час, який потрібен процесу в інтерактивних системах для відповіді на запит користувача.

Незалежно від поставлених цілей планування бажано також, щоб алгоритми володіли такими властивостями:

§ Були передбачуваними. Одне і те ж завдання має виконуватися приблизно за один і той же час. Застосування алгоритму планування не повинно призводити, наприклад, до обчислення кореня квадратного з 4 за соті частки секунди при одному запуску і за кілька діб при другому запуску.

§ Мали мінімальні накладні витрати, пов'язані з їх роботою. Якщо на кожні 100 мілісекунд, виділених процесу для використання процесора, буде припадати 200 мілісекунд на визначення того, який саме процес отримає процесор в своє розпорядження, і на перемикання контексту, то такий алгоритм, очевидно, використовувати не варто.

§ Рівномірно завантажували ресурси обчислювальної системи, віддаючи перевагу тим процесам, які будуть займати маловикористовувані ресурси.

§ Мали масштабністю, т. Е. Не відразу втрачали працездатність при збільшенні навантаження. Наприклад, зростання кількості процесів в системі в два рази не повинен призводити до збільшення повного часу виконання процесів на порядок.

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

параметри планування

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

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

До статичних параметрів обчислювальної системи можна віднести граничні значення її ресурсів (розмір оперативної пам'яті, максимальна кількість пам'яті на диску для здійснення свопинга, кількість підключених пристроїв введення-виведення і т. П.). Динамічні параметри системи описують кількість вільних ресурсів в поточний момент часу.

До статичних параметрів процесів відносяться характеристики, як правило, властиві завданням вже на етапі завантаження:

§ Яким користувачем запущений процес або сформовано завдання.

§ Наскільки важливою є поставлена ??задача, т. Е. Який пріоритет її виконання.

§ Скільки процесорного часу запрошено користувачем для вирішення завдання.

§ Яке співвідношення процесорного часу і часу, необхідного для здійснення операцій введення-виведення.

§ Які ресурси обчислювальної системи (оперативна пам'ять, пристрої введення-виведення, спеціальні бібліотеки та системні програми і т. Д.) І в якій кількості необхідні завданням.

Алгоритми довгострокового планування використовують в своїй роботі статичні і динамічні параметри обчислювальної системи і статичні параметри процесів (динамічні параметри процесів на етапі завантаження завдань ще не відомі). Алгоритми короткострокового і середньострокового планування додатково враховують і динамічні характеристики процесів. Для середньострокового планування в якості таких характеристик може виступати наступна інформація:

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

§ Скільки оперативної пам'яті займає процес.

§ Скільки процесорного часу було вже надано процесу.

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

Для короткострокового планування нам знадобиться ввести ще два динамічних параметра. Діяльність будь-якого процесу можна представити як послідовність циклів використання процесора і очікування завершення операцій введення-виведення. Проміжок часу безперервного використання процесора носить англійською мовою назва CPU burst, А проміжок часу безперервного очікування введення-виведення - I / O burst. На малюнку 3.1. показаний фрагмент діяльності деякого процесу на псевдомова програмування з виділенням вказаних проміжків. Для стислості викладу ми будемо використовувати терміни CPU burst і I / O burst без перекладу. Значення тривалості останніх і чергових CPU burst і I / O burst є важливими динамічними параметрами процесу.

Невитісняючаі витісняюча планування

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

1. Коли процес переводиться зі стану виконання в стан завершення.

2. Коли процес переводиться зі стану виконання в стан очікування.

3. Коли процес переводиться зі стану виконання в стан готовність (Наприклад, після переривання від таймера).

4. Коли процес переводиться зі стану очікування в стан готовність (Завершилася операція введення-виведення або відбулося інше подія). Детально процедура такого переведення була розглянута нами в розділі 2.3.5, де ми показали, чому при цьому виникає можливість зміни процесу, що знаходиться в стані виконання.

У випадках 1 і 2 процес, який перебував в стані виконання, Не може далі виконуватися, і для виконання завжди необхідно вибрати новий процес. У випадках 3 і 4 планування може не проводитися, процес, який виконувався до переривання, може продовжувати своє виконання після обробки переривання. Якщо планування здійснюється тільки у випадках 1 і 2, кажуть, що має місце невитісняючі (nonpreemptive) планування. В іншому випадку говорять про витісняє (preemptive) плануванні. Термін "витісняють планування" виник тому, що що виконується процес проти своєї волі може бути витіснений зі стану виконання іншим процесом.

Невитісняючі планування використовується, наприклад, в MS Windows 3.1 і ОС Apple Macintosh. При такому режимі планування процес займає стільки процесорного часу, скільки йому необхідно. При цьому перемикання процесів виникає тільки при бажанні самого що виконується процесу передати управління (для очікування завершення операції введення-виведення або після закінчення роботи). Цей метод планування щодо просто реалізуємо і досить ефективний, оскільки дозволяє використовувати більшу частину процесорного часу на роботу самих процесів і до мінімуму скоротити витрати на перемикання контексту. Однак при невитісняючі плануванні виникає проблема можливості повного захоплення процесора одним процесом, який внаслідок будь-яких причин (наприклад, через помилку в програмі) зациклюється і не може передати управління іншому процесу. У такій ситуації рятує тільки перезавантаження всієї обчислювальної системи.

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

алгоритми планування

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




 Структура обчислювальної системи |  Що таке ОС |  Коротка історія еволюції обчислювальних систем |  Системні виклики |  виняткові ситуації |  Монолітне ядро |  Листкові системи (Layered systems) |  Віртуальні машини |  Мікроядерна архітектура. |  змішані системи |

© um.co.ua - учбові матеріали та реферати