Нескінченне відкладання


Процеси, чекаючі ресурсів, встають в черзі до цих ресурсів. Така черга може обслуговуватися будь-якою невитісняючою стратегією планування. Моментом, коли менеджер ресурсу ухвалює рішення про обслуговування, є звільнення ресурсу.

Єдиною дисципліною, яка гарантує, що всі процеси в черзі будуть врешті-решт обслужені, є FCFS. Інші методи базуються на пріоритетах - зовнішніх або обчислюваних на підставі розміру запиту или/и безпеки ситуації. Черга може бути впорядкована за збільшенням розміру запиту, і при звільненні ресурсів останні можуть віддаватися по запиту "самого відповідного" розміру. Черга може бути впорядкована в порядку зростання небезпеки виділення ресурсів, і ресурс, що звільнився, може віддаватися тому процесу, запит якого найбезпечніший. При впорядкуванні черги, процес, що видав найбільший або найнебезпечніший запит, може надовго в ній застрягти, тобто, потрапити в ситуацію нескінченного відкладання. З іншого боку, застосування FCFS в чистому вигляді може привести до зниження рівня мультипрограмування, до небезпечного стану і навіть до тупиків - якщо процес з дуже великим запитом виявиться першим в черзі. Частково ця суперечність може бути згладжене, якщо ми допустимо часткове виділення ресурсів: запит, що стоїть в черзі першим отримує стільки ресурсів, скільки йому можна виділити, зберігаючи ситуацію безпечною, останні - віддаються наступному в черзі процесу.

Оскільки тупикова ситуація небезпечніша, ніж нескінченне відкладання, ОС все ж таки віддає перевагу критеріям безпеки, отже, свідомо запобігти нескінченному відкладанню неможливо. Нескінченне відкладання процесу встановлюється за часом його перебування в черзі: якщо процес перебуває в черзі довше за деякий встановлений час, то вважається, що він чекає нескінченно. Залежно від політики ОС відносно справедливості обслуговування і від характеристик процесу (якщо вони відомі) допустимий час очікування може встановлюватися великим або меншим. Якщо ж нескінченне відкладання встановлене, то для його ліквідації ОС припиняє видачу ресурсів новим процесам, поки не буде обслужений відкладений процес.

Проблема тупиків до деякої міри втрачає актуальність в сучасних ОС, оскільки вони мають тенденцію до зменшення кількості ресурсів, що не розділяються. Одним із способів зробити пристрій, що не розділяється, таким, що розділяється є буферизація, яку ми розглянемо в наступному розділі. Системні структури даних розділяються з використанням засобів взаємного виключення доступу, яким буде присвячений розділ 8. Ця проблема, проте, стає все більш актуальною для сучасних СУБД, які забезпечують одночасний доступ до ресурсів-даних для тисяч і десятків тисяч користувачів.

 

Файлові системи



Дата добавления: 2016-07-27; просмотров: 1277;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.