Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Асинхронно паралельні процеси

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

 

 

 

 

Ця програма друкує за чергою всі файли, імена яких послідовно в порядку надходження записують в загально-доступний спеціальний файл замовлень інших програм. Спеціальна змінна NEXT, яка також доступна усім процесам-клієнтам вміщує номер першої вільної для запису імені файла позиції у файлі замовлень. Процеси клієнти читають адресу з NEXT і записують у відповідну позицію файла замовлень своє ім’я і збільшують значення NEXT і записують у відповідну позицію файла замовлень своє ім’я і збільшують значення NEXT на 1. припустімо, що в деякий момент процес вирішив роздрукувати свій файл. Для цього він прочитав значення NEXT. Процес запам’ятав це значення але розмістити туди ім’я файла не встиг оскільки його виконання було перервано, наприклад через закінчення кванту часу. Черговий процес S який теж хоче роздрукувати свій файл так само прочитав значення NEXT розмістив в позицію 4 ім’я свого файлу(S2) і збільшує NEXT на 1(S3). Коли в черговий раз керування буде передано процесу R то він продовжить своє виконання у повній відповідності із значенням біжучої вільної позиції у файлі замовлень, яке було отримане під час попередньої ітерації і запише ім’я свого файла також в позицію 4 поверх імені файла, яке записав процес S. В результаті процес S ніколи не побачить свій файл роздрукованим таким чином, має місце проблема синхронізації процесів.

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

“Взаємовиключення” як спосіб взаємодії процесів.

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

1. задача повинна бути розв’язана програмним способом на комп’ютері який не має спеціальних команд взаємовиключення, причому:

а). кожна команда виконується як операція яка не може бути поділена

б). при одночасній спробі декількох процесорів звернутись до того самого елемента даних спрацьовує апаратна схема захисного блокування пам’яті. Будується черга яка дозволяє виконуватись тільки одне звертання.

2. не повинно бути ніяких припущень щодо відносних швидкостей виконання асинхронних паралельних процесів

3. процеси які знаходяться поза своїми критичними ділянками не можуть заважати заходити у їх власні користувацькі ділянки

4. не повинно бути безумовного відкидання моменту входу процесів в іх критичні ділянки

Концепція “семафорів” як засіб керування “взаємовиключенням”

 




Переглядів: 549

<== попередня сторінка | наступна сторінка ==>
Ядро ОС. Склад і основні функції. | Семафори

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.