Назва: Паралельні обчислювальні системи
Тип: Реферати
Мова: Українська
Розмiр: 46,92 KB
Скачувань: 50


Скачати реферат українською    

1 2 3 4 5 6 7 8 9 10 11

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

• легковагові процеси (threads, sreams), або ще співпроцеси, не мають власних захищених областей пам’яті. Вони працюють у мультипрограмному режимі одночасно із задачею, що їх активувала, і використовують її віртуальний адресний простір, у якому їм при створенні виділяється ділянка пам’яті під динамічні дані (стек), тобто вони можуть володіти власними локальними даними. Співпроцес описується як звичайна функція, що може використовувати статичні дані програми.

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

3.2. Канали.

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

Канал (pipe) – це однонаправлена двоточкова (з’єднує лише два процеси) “комунікаційна лінія”, що дозволяє процесам обмінюватися даними. Операції обміну повідомленнями досить тривалі за часом, тому в різних моделях, системах використовуються різні типи поведінки операцій прийому/передачі повідомлень. Розрізняють наступні види каналів:

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

• асинхронно-синхронні. Операція передачі повідомлення асинхронна – вона завершується відразу (повідомлення копіюється в деякий буфер, а потім пересилається одночасно з роботою процесу-відправника), не очікуючи того, коли дані будуть отримані приймачем. Операція прийому повідомлення синхронна: вона блокує процес до моменту надходження повідомлення;

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

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

3.3. Семафори.

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

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


Скачати україномовний реферат    


1 2 3 4 5 6 7 8 9 10 11



Украинская Баннерная Сеть