Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Синхронізація процесів і потоків

Реферат Синхронізація процесів і потоків





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

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

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

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

Нижче наведена програма.

Працюють 3 процесу: Р1, Р2, Р3. І поштові скриньки, передающія повідомлення процесам g, i, k.

Працює процес Р1, потім передає повідомлення поштової скриньки g, поштова скринька g передає повідомлення процесу Р2, Р2-I, i-P3, P3- k, k-P1.


Рис.2.1 Передача повідомлень


Рис.2.2 Передача повідомлень


Рис.2.3 Передача повідомлень


Завдання №3-А


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

Виявлення блокувань в обчислювальній системі при наявності одного примірника ресурсів кожного типу виробляється на основі аналізу побудованого графа ресурсів і процесів. Наявність циклів у графі вказує на взаємне блокування в обчислювальній системі.

У графі процеси позначаються як коло з ім'ям процесу, а ресурси позначаються як квадрат з ім'ям ресурсу. Вихідне ребро від процесу до ресурсу означає, що процес вимагає даний ресурс. Вхідне ребро від ресурсу до процесу означає, що процес зайняв даний ресурс.

Один з можливих алгоритмів пошуку циклів у графі наступний. Для кожного з N вузлів в графі виконується п'ять кроків:

. Задаються початкові умови: L-порожній список, всі ребра немаркованих.

. Поточний вузол додаємо в кінець списку L і перевіряємо кількість появи вузла в списку. Якщо він зустрічається два рази, значить цикл і взаімоблокіровка.

. Для заданого вузла дивимося, чи виходить з нього хоча б одне немаркованих ребро. Якщо так, то переходимо до кроку 4, якщо ні, то переходимо до кроку 5.

. Вибираємо нове немаркованих виходить ребро і маркіруємо його. І переходимо по ньому до новому вузлу і повертаємося до кроку 3.

. Зайшли в глухий кут. Видаляємо останній вузол зі списку і повертаємося до попереднього вузла. Повертаємося до кроку 3. Якщо це початковий вузол, значить, циклів немає, і алгоритм завершується.

Для реалізації роботи алгоритму була розроблена програма (рисунок 3.2 і 3.4).

У дану програму для швидкого виклику внесені приклади з методичного вказівки, а також реалізована перевірка на коректність введених даних.


Рис. 3.1. Граф процесів і ресурсів наприклад рис. 3.2.


Рис. 3.2. Блокування не виявлені.

Рис. 3.3. Граф процесів і ресурсів наприклад рис. 3.4.


Рис. 3.4.Есть блокування.


Завдання №3-В



Назад | сторінка 6 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Судові повідомлення
  • Реферат на тему: Завідомо неправдиве повідомлення про тероризм
  • Реферат на тему: Вибір засоби передачі рекламного повідомлення
  • Реферат на тему: Рекламне повідомлення. Основні структурні елементи
  • Реферат на тему: Критерії належного повідомлення іноземних осіб в господарському процесі