Частина тексту файла (без зображень, графіків і формул):
Асинхронні паралельні процеси.
Асинхронно паралельні процеси
Процеси називаються паралельними якщо вони існують одночасно. Розвиток технології створення апаратури сприяють зменшенню габаритів апаратури , розвитку багатопроцесорних систем і як кінцевий результат реалізації максимального паралелізму на всіх рівнях роботи КС. Паралельні процеси можуть бути повністю незалежними або взаємодіючими. Взаємодіючі процеси можуть бути конкуруючими або такими що сумісно виконують спільну роботу. Як правило маємо справу з паралельними процесами яким необхідно тільки час від часу синхронізуватись та взаємодіяти. Такі паралельні процеси називаються асинхронними.
EMBED Visio.Drawing.6
EMBED Visio.Drawing.6
Ця програма друкує за чергою всі файли, імена яких послідовно в порядку надходження записують в загально-доступний спеціальний файл замовлень інших програм. Спеціальна змінна NEXT, яка також доступна усім процесам-клієнтам вміщує номер першої вільної для запису імені файла позиції у файлі замовлень. Процеси клієнти читають адресу з NEXT і записують у відповідну позицію файла замовлень своє ім’я і збільшують значення NEXT і записують у відповідну позицію файла замовлень своє ім’я і збільшують значення NEXT на 1. припустімо, що в деякий момент процес вирішив роздрукувати свій файл. Для цього він прочитав значення NEXT. Процес запам’ятав це значення але розмістити туди ім’я файла не встиг оскільки його виконання було перервано, наприклад через закінчення кванту часу. Черговий процес S який теж хоче роздрукувати свій файл так само прочитав значення NEXT розмістив в позицію 4 ім’я свого файлу(S2) і збільшує NEXT на 1(S3). Коли в черговий раз керування буде передано процесу R то він продовжить своє виконання у повній відповідності із значенням біжучої вільної позиції у файлі замовлень, яке було отримане під час попередньої ітерації і запише ім’я свого файла також в позицію 4 поверх імені файла, яке записав процес S. В результаті процес S ніколи не побачить свій файл роздрукованим таким чином, має місце проблема синхронізації процесів.
Складність проблеми синхронізації полягає в тому що синхронізації виконують регулярно. Це визначається взаємними швидкостями процесів і моментами їх переривання. Така відладка взаємодіючих процесів є складною задачею. Ситуація подібна тій коли два або більше процесів обробляють дані тобто такі що дозволяються і що кінцевий результат залежить від співвідношень швидкостей процесів називають перегонами або гонками. Вони мають місце не тільки в програмному але й апаратному рівні.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!