Здавалка
Главная | Обратная связь

Потоки виконання в нерозподілених системах



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

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

Багатопотокову структуру часто використовують, будуючи великі програмні комплекси, які часто розробляють у вигляді наборів спільно працюючих програм, кожна з яких виконується окремим процесом. Цей підхід типовий для середовища UNIX. Кооперація між програмами реалізується у вигляді міжпроцесної взаємодії (через механізми Interproccessing Cooperation – IPC). Для UNIX-систем ці механізми зазвичай застосовують канали (поіменовані), черги повідомлень і спільно використовувані сегменти пам’яті. Основною проблемною властивістю механізмів IPC є необхідність інтенсивного перемикання контекстів, яка продемонстрована трьома точками на рис.4.

Рис. 4. Перемикання контекстів в результаті виклику IPC

 

Оскільки механізм IPC має втручатися в ядро, процес зазвичай вимушений спочатку перемкнутися з призначеного для користувача режиму в режим ядра (точка S1), що потребує зміни карти пам'яті в блоці MMU, а також очищення буфера TLB. У ядрі відбувається перемикання контексту процесу (точка S2), після чого другий процес може бути активізований черговим перемиканням з режиму ядра у призначений для користувача режим (точка S3). Останнє перемикання теж потребує зміни карти пам’яті у блоці MMU і очищення_буфера_TLB.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.