Процеси

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

Монітор (рис.Б.4) - єдине ціле із загальних даних, операцій доступу i списку черг чекання. Тільки один процес з багатьох може в деякий момент часу ввійти в монітор, чим з самого початку виключається багато проблем синхронізації. Блокування та розблокування процесів всередині монітора проводиться за умовними списками черг.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: