Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Поняття паралельного виконання процесу



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

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

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

Основним завданням управління паралельним виконанням є завдання взаємного виключення (mutual exclusion, скорочено - mutex): два процеси не можуть виконувати одночасний доступ до ресурсів, що розділяються. Звернемо увагу на ту обставину, що взаємне виключення забезпечується вже на апаратному рівні. Якщо процесор одночасно отримує два запити, то він виконує їх послідовно за тими або іншими правилами арбітражу. Кожна процесорна команда має властивість атомарності: вона або виконується повністю, або взагалі не виконується. Так само атомарно кожне звернення до пам'яті. Арбітражні властивості апаратури є основою для побудови складніших механізмів взаємного виключення.

Послідовність операцій в процесі, яка виконує таку одиницю роботи (транзакцію) з ресурсом, що розділяється, під час якої ніякий інший процес не повинен мати доступу до цього ресурсу, складає критичну секцію. Щоб процес міг забезпечити безпеку виконання своєї критичної секції, в його розпорядженні мають бути засоби - "дужки критичної секції" - якими він цю критичну секцію позначить і захистить. Назвемо ці дужки csBegin і csEnd і присвятимо подальший розгляд взаємного виключення механізмам реалізації цих дужок. Для доказу правильності кожної реалізації для неї необхідно показати наступне:

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

· рішення про те, якому процесу першому належить увійти до критичної секції, не може відкладатися до безкінечності;

· зупинка процесу поза своєю критичною секцією не впливає на інші процеси.

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

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

  1. Що таке параллелізм?
  2. Що є основним завданням управління паралельним виконанням?

Література

Електроний ресурс: http://khpi-iip.mipk.kharkiv.edu/library/spo/book/i g 08.html





Дата публикования: 2014-11-19; Прочитано: 488 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...