На головну

Потоки в Linux

  1. Гидродинамически подібні потоки
  2. Інформаційні потоки
  3. ІНФОРМАЦІЙНІ ПОТОКИ В ЛОГИСТИКЕ
  4. Інформація. Інформаційні потоки в живих системах
  5. Джерела і потоки маркетингової інформації
  6. Інформаційні потоки в логістиці
  7. комбіновані потоки

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

РЕЗЮМЕ, КЛЮЧОВІ ТЕРМІНИ І Контрольні питання

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

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

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

 Ключові терміниЗаданіе Полегшений процес ПроцессМікроядро Потік Симетрична многопроцессорнаяМногопоточность Потік на пользовательском- обработкаМонолітная уровнеопераціонная система Потік на рівні ядра

Контрольні питання

4.1. У табл. 3.5 перераховані типові елементи, що зустрічаються в керуючому блоці процесу операційної системи, в якій не використовуються потоки. Які з них слід віднести до керуючого блоку потоку, а які - до керуючого блоку процесу в многопоточної системі?

4.2. Перерахуйте причини, за якими перемикання потоків обходиться дешевше, ніж перемикання процесів.

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

4.4. Наведіть чотири загальних приклад використання потоків в одного користувача многопроцессорной системі.

4.5. Які ресурси зазвичай спільно використовуються всіма потоками процесу?

4.6. Перерахуйте три переваги потоків на призначеному для користувача рівні над потоками на рівні ядра.

4.7. Наведіть два недоліки потоків на призначеному для користувача рівні в порівнянні з потоками на рівні ядра.

4.8. Дайте короткий опис різних архітектур, наведених на рис. 4.8.

4.9. Перерахуйте основні особливості архітектури операційної системи для багатопроцесорної машини.

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

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

4.12. Поясніть, в чому полягають потенційні недоліки операційної системи з мікроядром, пов'язані з її продуктивністю.

4.13. Назвіть три функції, які, швидше за все, будуть включені навіть в операційну систему з найменшим мікроядром.

4.14. Назвіть основну форму обміну інформацією між процесами в операційній системі з мікроядром.

РЕКОМЕНДОВАНА ЛІТЕРАТУРА

В [LEWI96] і [KLEI96] представлені огляди концепцій потоку і обговорення стратегій програмування. У першому виданні більше уваги приділяється опису концепцій, а в другому - програмування, але і в тому і в іншому тема викладена досить добре. В [РНАМ96] представлені засоби роботи з потоками в операційній системі Windows NT, які, по суті, ідентичні відповідним засобам операційної системи Windows 2000.

В [MUKH96] наводиться обговорення питань, пов'язаних з архітектурою операційних систем для багатопроцесорних машин. В [СНАР97] міститься п'ять статей, в яких йдеться про сучасні напрямки розвитку багатопроцесорних операційних систем. Цікаве обговорення принципів архітектури микроядра можна знайти в [LIED95] і [LIED96]; у другому виданні увага зосереджується на питаннях продуктивності.

СНАР97 Chapin S., Maccabe A., eds. Multiprocessor Operating Systems: Harnessing the Power Special issue of IEEE Concurrency, April-June +1997.

KLEI96 Kleiman S., Shah D., Smallders B. Programming with Threads. - Upper Saddle River, NJ: Prentice Hall, 1996..

LEWI96 Lewis B.y Berg D. Threads Primer. - Upper Saddle River, NJ: Prentice

Hall, 1996..

LIED95 Liedtke J. On ji-Kernel Construction. - Proceedings of the Fifteenth ACM

Symposium on Operation Systems Principles, December 1 995.

LIED96 Liedtke J. Toward Real Microkernels. - Communications of the ACM, September +1996.

MUKH96Mukherjee В., Karsten S. Operating Systems for Parallel Machines. Parallel Computers: Theory and Practice, Ed. by T. Casavant, P. Tvrkik and F. Plasil. - Los Alamitos, CA: IEEE Computer Society Press, 1996..

PHAM96 Pham Т., Garg P. Multithreaded Programming with Windows NT. -Saddle River, NJ: Prentice Hall, 1996..

ЗАВДАННЯ

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

4.2.При порівнянні потоків на призначеному для користувача рівні і потоків на рівні ядра згадувалося, що недолік потоків на призначеному для користувача рівні полягає в тому, що виконання системного виклику блокує не тільки викликав потік, а й всі інші потоки даного процесу. Чому так відбувається?

4.3.Те, що в інших операційних системах втілено в концепції процесу, в операційній системі OS / 2 розділене на три складових: сесія, процеси і потоки. Сесія є набором одного або декількох процесів, що мають зв'язок з інтерфейсом користувача (клавіатурою, дисплеєм, мишею). Сесія є інтерактивне користувальницький додаток, в ролі якого може виступати текстовий редактор або електронні таблиці. Ця концепція дозволяє користувачеві персонального комп'ютера запускати кілька додатків, відкриваючи в кожному з них одне або кілька вікон. Операційна система повинна стежити за тим, яке з вікон, а отже, яка з сесій є активною. Залежно від цього введення, що надходить з клавіатури і миші, направляється в ту чи іншу сесію. У будь-який момент часу одна сесія обробляється на передньому плані, тоді як інші сесії знаходяться в фоновому режимі. Все, що вводиться за допомогою клавіатури і миші, направляється в процес, сесія якого відповідно до стану додатків знаходиться в пріоритетному режимі. Коли сесія знаходиться на передньому плані, процес, що виводить відеосигнал, пересилає його безпосередньо в відеобуфер і, відповідно, на екран користувача. При переході сесії в фоновий режим вміст фізичного видеобуфера зберігається в логічному відеобуфері. Якщо який-небудь з потоків будь-якого процесу, що відноситься до сесії в фоновому режимі, виробляє висновок на екран, цей висновок направляється до відповідного логічний відеобуфер. Коли сесія повертається на передній план, відбувається оновлення екрану, що відображає поточний зміст логічного видеобуфера цієї сесії.
Виключивши сесії і зв'язавши інтерфейс користувача (клавіатуру, миша, екран) з процесами, можна звести кількість концепцій, що мають відношення до процесу, до двох. Таким чином, в кожен момент часу на передньому плані буде знаходитися один процес. З метою структурування процеси можна розділити на потоки.

а. Які переваги втрачаються при такому підході?

б. Якщо така модифікація буде реалізована, як слід здійснювати призначення ресурсів (пам'яті, файлів і т.д.) - на рівні процесу або на рівні потоку?

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

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

4.6.Структурування операційної системи OS / 390, призначеної для мейнфреймів, засноване на концепціях адресного простору і завдання. В інших операційних системах адресний простір, грубо кажучи, відповідає додатку і більш-менш відповідає процесу. В рамках одного і того ж адресного простору можна одночасно створювати і виконувати кілька завдань, що приблизно відповідає концепції многопоточности. Для управління цими завданнями створюється ряд структур даних, дві з яких є основними. Незалежно від того, чи є дане адресний простір що виконуються чи ні, у відповідному керуючому блоці адресного простору (address space control block - ASCB) міститься необхідна операційній системі OS / 390 інформація. До її складу входять поточний пріоритет, розмір виділеної даному адресного простору реальної і віртуальної пам'яті, кількість готових до виконання завдань в адресному просторі, а також відомості про те, чи є кожне з цих завдань вивантаженим з пам'яті чи ні. У керуючому блоці завдання (task control block - ТСВ) відбивається виконання користувальницької програми. У ньому міститься інформація, необхідна для управління завданням в межах адресного простору, включаючи інформацію про статус процесора, покажчики на що входять до складу завдання програми та стан виконання завдання. Блоки ASCB є глобальними структурами, підтримуваними в системній пам'яті, а блоки ТСВ - локальними структурами, кожна з яких підтримується в своєму адресному просторі. У чому полягає перевага поділу керуючої інформації на глобальну і локальну частини?

4.7. До многопроцессорной системі з 8 процесорами підключені 20 стрічкопротяжних пристроїв. У систему надходить велика кількість завдань, причому кожне з них для завершення вимагає максимум 4 стрічкопротяжних пристрою. Припустимо, що кожне завдання починає виконуватися з вимогою тільки трьох пристроїв; четверте йому буде потрібно тільки через досить тривалий термін, причому буде використовуватися дуже недовго. Припустимо також, що джерело завдань нескінченний.

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

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

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

 




Управління введенням-виведенням і переривань | ПОТОКИ І SMP У WINDOWS 2000 | Об'єкти процесів і потоків | стану потоків | Підтримка підсистем операційної системи | многопоточная архітектура | мотивація | структура процесів | виконання потоків | Переривання в ролі потоків |

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