Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
129.54 Кб
Скачать

33. Уникнення взаємо блокувань при наявностi декiлькох ресурсiв кожного типу.

Якщо в системi iснує декiлька екземплярiв деяким з ресурсiв для виявлення взаємо блокування iнший метод. Розглянемо алгоритм, що базується на матрицях, який виявляє тупiки серед n-процесiв вiд P1 … Pn. Нехай m – це число класiв ресурсiв, причому в системi Е1 – це ресурси класу 1, Е2 – це ресурси класу 2 i в загальному Еi – ресурси кламу i, де m>i>1, Е – вектор iснуючих ресурсiв, вiн передає загальну кiлькiсть наявних екземплярiв кожного ресурсу. В будь-який момент часу деякi ресурси можуть бути зайнятими i вiдповiдно недоступними.

34. Вихiд iз взаємо блокування.

Пiсля виявлення взаємо блокування успiшно i знаходження тупiка необхiднi методи для вiдновлення i отримання працюючої системи.

1. Вiдновлення за допомогою примусового вивантаження ресурсу.

2. Вiдновлення через вiдкат.

Найпростiший спосiб виходу iз ситуацiї взаємно полягає в знищеннi одного або декiлькох процесiв, можна знищити процес, який знаходиться в циклi взаємо блокування. Якщо 1-ше видалення не допомагає, то процедуру можна повторювати поки цикл знову не буде розiрваний. Також використовується пiдхiд при якому вибiр процесу, що не знаходиться в циклi, але такий чиї ресурси потрiбнi iншим процесам в циклi, iснує пiдхiд до яких краще знищувати процеси, якi легко можна знову вiдновити.

35. Уникнення взаємо блокувань.

Розглядаючи виявлення взаємо блокування передбачалось, що коли процес потребує ресурсiв, то вiн вимагає всiх одночасно. Але в бiльшостi систем запрошуються почергово, по-одному. Система повинна вмiти вирiшити чи надання ресурсу є безпечним чи нi i надавати йому процесу лише в першому випадку. Таким чином виникає питання: чи iснує алгоритм, який завжди може уникнути взаємо блокування роблячи завжди правильний вибiр. Рiзниця мiж безпечним i небезпечним станами така: в безпечному станi система могла гарантувати, що програма закiнчила свою роботу.

36. Алгоритм банкiра для одного та декiлькох видiв ресурсiв.

Алгоритм планування, який дозволить уникнути взаємо блокування був розроблений Дейкстрою i мав назву «Алгоритм банкiра». Вiн представляє собою розширення аналогiчного виявлення тупикiв. Модель алгоритму банкiра базується на прикладi роботи банкiра i малому мiстi, що маж справу групою клiєнтiв, яким вiн видав кредити. Алгоритм перевiряє чи веде виконання кожного запиту до небезпечного стану, якщо «так», то запит вiдхиляється, якщо задоволення запиту до ресурсу приводить до небезпечного стану, то ресурс надається процесу. Алгоритм банкiра можна узагальнити для керування системою з декiлькома видами ресурсiв. У випадку одного виду ресурсiв процеси повиннi точно визначати необхiдну сумарну кiлькiсть ресурсу до початку роботи для того, щоб система могла розраховувати право матрицi в кожен момент часу 3 вектори.

37. Уникнення взаємо блокувань.

Атака умови взаємного виключення. Якщо в системi немає ресурсiв, якi вiдданi в одноосiбне користування одному процесу то система попадає в тупiк. Але якщо дозволити двом процесам одночасно друкувати данi на принтера, то вiдбудеться змiшення iнформацiї. Атака умови стримання i очiкування. Якщо процеси, що займають деякi ресурси вберегти вiд очiкування, то зникає ситуацiя взаємо блокування. Один з способiв досягти цiєї мети полягає у вимозi: будь-який процес повинен вимагати всi необхiднi ресурси до початку роботи. Атака умови вiдсутностi примусового вивантаження ресурсiв. Виникнення цiєї умови неможливе (н-д друк тексту на принтерi чи на плотарi). Атака умови циклiчного очiкування. Циклiчне очiкування можна усунути декiлькома способами. Один з них: процесу дано право тiльки на один ресурс в конкретний момент часу. Якщо потрiбен 2-ий ресурс, то потрiбно звiльнити 1-й. Однак цей спосiб не пiдходить, н-д для копiювання великих файлiв.