Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

9.Поняття про системи передачі повідомлень.

З системами передачі повідомлень пов’язана велика кількість складних проблем і конструктивних питань, яких не виникає у випадку семафорів і моніторів. Особливо багато складнощів з’являється у випадку взаємодії процесів, що відбуваються на різних комп’ютерах в мережі. Так, повідомлення може втратитись в мережі. Для цього необхідно вводити механізм підтверджень. Також виникає питання аутентифікації: яким чином клієнт може визначити, що він взаємодіє з справжнім файловим сервером. Крім того, існують конструктивні проблеми, суттєві при розміщенні відправника і отримувача на одному комп’ютері.

Передача повідомлень часто використовується в системах з паралельним програмуванням.

Лекція 5. Взаємоблокування.

  1. Основні поняття взаємоблокування.

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

Взаємоблокування з’являється при роботі як з апаратними, так із програмними засобами.

Ресурси бувають двох типів: вивантажуванні і невивантажуванні. Вивантажуванний ресурс можна забирати у володіючого ним процесу без ускладнень (наприклад, пам’ять). Не вивантажуванний ресурс не можна забирати від поточного власника, не знищивши результати обчислень.

Послідовність подій, необхідних для використання ресурсу: запит ресурсу, його використання і повернення.

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

2.Умови та моделювання взаємоблокувань.

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

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

Ребро направлене від процесу до ресурсу означає, що процес в даний момент блокований і знаходиться в стані очікування доступу до ресурсу. На рис.5.1(в) видно взаємоблокування: процес С очікує ресурс Т, утримуваний в даний момент процесом D. Процес D не планує звільняти ресурс Т, тому що він чекає ресурс U, який використовується процесом С. Обидва процеси будуть чекати до безмежності. Цикл в графі означає наявність взаємоблокування, що циклічно включає процеси і ресурси.

При виникнені взаємоблокувань використовують 4 стратегії:

  1. ігнорування проблемою в цілому;

  2. виявлення і відновлення. Дозволити взаємоблокуванню відбутись, виявити його і прийняти певні дії;

  3. уникнення за допомогою структурного відкидання однієї з 4 умов, необхідних для взаємоблокування.

Більша частина операційних систем, включаючи Unix та Windows, ігнорують проблеми взаємоблокування. Це пов’язано з тим, що більшість користувачів швидше погодяться на випадкове, час від часу взаємоблокування, ніж на правило, за яким всім користувачам дозволяється тільки один процес, один відкритий файл і т.д.