Особливості завершення потоків 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Особливості завершення потоків



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

Як і процеси, потоки можуть виконуватися синхронно й асинхронно. Потік, створивши інший потік, може призупинити своє виконання до його завершення. Таке очікування називають приєднанням потоків (thread joining, очікує той, хто приєднує). Після завершення приєднаного потоку потік, який очікував його за­вершення, може дістати статус виконання. Під час створення потоку можна ви­значити, чи підлягає він приєднанню (якщо потік не можна приєднати, його на­зивають від'єднаним — detached). Якщо потік не є від'єднаним (nondetached або joinable, такий потік називатимемо приєднуваним), після завершення його обов'язко­во потрібно приєднувати, щоб уникнути витікання пам'яті.

Рекомендації щодо розробки багатопотокових програм:

 

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

§ Для потоків не підтримується така ієрархія, як для процесів. Потік, що ство­рив інший потік, має рівні з ним права. Розраховувати на те, що такий потік сам буде продовжувати своє виконання після завершення потоків-нащадків, немає сенсу.

§ Стек потоку очищається після виходу із функції потоку. Щоб цьому запобігти, не слід, наприклад, передавати нікуди покажчики на локальні змінні такої функції. Якщо необхідні змінні, значення яких мають зберігатися між викли­ками функції потоку, але при цьому вони не будуть доступні іншим потокам, треба скористатися локальною пам'яттю потоку (Thread Local Storage, TLS) - певним чином організованими даними, доступ до яких здійснюється за допо­могою спеціальних функцій.

 

Розділ4. Міжпроцесова взаємодія.

(аудиторних-6/4г., самостійних- 8/4г.)

 

Лекція №1.

 

Тема: види міжпроцесової взаємодії.

 

План:

1.Проблеми міжпроцесової взаємодії.

2.Види міжпроцесової взаємодії:

a) методи розподілюваної пам’яті

b) методи передавання повідомлень

c) технологія відображуваної пам’яті(Л1. ст. 149-151).

3.Міжпроцесова взаємодія на базі спільної пам’яті (Л1. ст.151).

 

1.

 

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

Кожен потік виконується в рамках адресного простору свого процесу, тому часто постає задача організації взаємодії між потоками різних про­цесів. Ідеться власне про міжпроцесову взаємодію (interprocess communication, IPC). Ця технологія з'явилася задовго до поширення багатопотоковості.

Для потоків різних процесів питання забезпечення синхронізації теж є акту­альними, але вони в більшості випадків не ґрунтуються на понятті спільно вико­ристовуваних даних (такі дані за замовчуванням для процесів відсутні). Крім того, додається досить складна задача забезпечення обміну даними між захищеними адресними просторами. Підходи до її розв'язання визначають різні види міжпро­цесової взаємодії.

 

2.

 

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 176; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.154.103 (0.005 с.)