У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент





Концепція процесу

1. Процеси

Процес — мінімальний програмний об'єкт, що володіє власними системними ресурсами (запущена програма).

1.1. Класифікація процесів.

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

По генеалогічній ознаці розрізняють процеси, що породжують і породжені.

По результативності розрізняють еквівалентні, тотожні і рівні процеси.

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

За часом розвитку процеси діляться на послідовні, паралельні і комбіновані (для останніх є крапки, в яких існують обидва процеси, і крапки, в яких існує тільки один процес).

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

По зв'язності розрізняють процеси:

а) взаємозв'язані, які мають якийсь зв'язок (просторово-часову, управляючу, інформаційну);

б) ізольовані — слабо зв'язані;

в) незалежні, які використовують сумісні ресурси, але мають власні інформаційні бази;

г) взаємодіючі — мають інформаційні зв'язки і розділяють загальні структури даних;

д) взаємозв'язані по ресурсах;

е) конкуруючі.

Порядок взаємозв'язку процесів визначається правилами синхронізації. Процеси можуть знаходитися у відношенні:

а) передування — один завжди знаходиться в активному стані раніше, ніж інший;

б) пріоритетності — коли процес може бути переведений в активний стан тільки в тому випадку, якщо в стані готовності немає процесів з вищим пріоритетом, або процесор вільний, або на ньому реалізується процес з меншим пріоритетом;

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

1. 2.Нитки

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

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

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

Для цих цілей сучасні ОС пропонують використовувати порівняно новий механізм багатониткової обробки (multithreading). При цьому вводиться нове поняття "нитка" (thread), а поняття "процес" у значній мірі змінює зміст.

Мультипрограмування тепер реалізується на рівні ниток, і задача, оформлена у виді декількох ниток у рамках одного процесу, може бути виконана швидше за рахунок псевдопаралельного (чи рівнобіжного в мультипроцесорній системі) виконання її окремих частин. Наприклад, якщо електронна таблиця була розроблена з урахуванням можливостей багатониткової обробки, то користувач може запросити перерахування свого робочого листа й одночасно продовжувати заповнювати таблицю. Особливо ефективно можна використовувати багатонитковість для виконання розподілених додатків, наприклад, багатонитковий сервер може паралельно виконувати запити відразу декількох клієнтів.

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

У традиційних ОС поняття "нитка" тотожно поняттю "процес". У дійсності часто буває бажано мати кілька ниток, що розділяють єдиний адресний простір, але що виконуються квазипаралельно, завдяки чому нитки стають подібними до процесів (за винятком поділюваного адресного простору).

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


Сторінки: 1 2 3 4 5 6 7 8