Какво представлява блокирането в операционната система: Условия и алгоритъм за откриване

Опитайте Нашия Инструмент За Премахване На Проблемите





Основната цел на операционната система е да осигури правилна комуникация между хардуерни и софтуерни ресурси и също така да предоставя общи услуги на програмите. Когато процесът на операционната система иска достъп до който и да е ресурс, той първо изпраща заявка до конкретния ресурс, до който иска достъп, след това използва ресурса и накрая освобождава ресурса след използване. Да предположим, че много процеси се опитват да получат достъп до един ресурс едновременно, става трудно да се предостави по един ресурс на всички процеси наведнъж, в такава ситуация възниква концепцията, наречена блокировка. Следователно тази статия описва как възниква блокиране и как да се преодолее тази ситуация.

Какво е задънена улица в операционната система?

Определение: Dead-Lock е ситуация, при която два или повече процесора чакат да се случи някакво събитие, но такива събития, които не се случват, са състояние на блокиране и се казва, че процесорите са в състояние на блокиране. Например, нека приемем сценарий в реално време, където има два автомобила A & B, управлявани от двама индивидуални шофьори по еднопосочен път. Сега възниква ситуацията, когато шофьорът на автомобил А казва, че движението му на север е правилна посока, докато шофьорът на кола Б казва, че движението му в посока юг е правилно. Но нито един от тях не се движи назад, за да позволи на друга кола да се движи напред, това състояние се нарича състояние на блокиране.




Пример за кола

автомобил-пример

За по-добро разбиране нека разгледаме друг пример, където има два ресурса R1, R2 и два процеса P1 и P2, където R1 е присвоено на P1 и R2 е присвоено на P2. Сега, ако P1 иска достъп до R2, както вече знаем, че R2 се държи от P2, а сега P2 иска достъп до R1, което е P1, изпълнява се само когато има достъп до R2, също така P2 изпълнява само когато има достъп до R1 тази ситуация е състояние на задънена улица.



Пример за процесор

процесор-пример

Dead-Lock условия

По-долу са четирите важни условия за блокиране, ако всички условия възникнат едновременно, има определени шансове за възникване на блокиране.

Взаимно изключване

Това означава, че какъвто и ресурс да използваме, той трябва да се използва по взаимно изключващ се начин. Когато само един процес използва един ресурс в даден момент. Например процесът на печат продължава и изведнъж друг процес се опитва да прекъсне процеса на печат. Така че тук в ситуация на взаимно изключване, само след като задачата за печат е изпълнена, се обработва само следващата задача. Взаимното изключване може да бъде премахнато чрез едновременно споделяне на ресурси, което на практика не е възможно.

Взаимно изключване

взаимно изключване

Без предварително изкупуване

Според изпреварващ базирани алгоритми, ако има приоритетна задача, която се опитва да прекъсне текущата задача. Предварителният алгоритъм, който държи текущата задача и първо изпълнява приоритетна задача и се връща към първата си задача. Ситуация, обяснена съгласно горния пример, когато процес държи ресурса, докато се изпълни, т.е. P1 може да освободи R1 само след изпълнение, подобно P2 освобождава R2 само след изпълнение. Ако няма изпреварване, може да настъпи блокиране.


Пример без изключение

no-preemption-example

Задръжте и изчакайте

Процесът съдържа някои ресурси и чака допълнителни ресурси, но тези ресурси се придобиват от друг процес. От горния пример, P1 държи R1 и чака R2, където R2 се придобива от P2, а P2 държи R2 и чака R1, където R1 се придобива от P1, в системата може да настъпи задънена ситуация.

Пример за изчакване и изчакване

пример за задържане и изчакване

Циркулярно чакане

Казва се, че набор от процеси е в безизходица, ако един процес чака ресурс, който е разпределен за друг процес и този процес чака ресурс, той е подобен на описания по-горе пример, където е във форма на цикъл. Когато P1 чака R2 и R2 се разпределя за P2, а P2 чака R1 и R1, разпределени за P1, което е кръгла форма за изчакване, ако това условие отговаря на блокиране.

Пример за кръгло изчакване

circular-wait-пример

Алгоритъм за откриване на блокиране

Случаите, в които разпределяме ресурси за процеси и операционната система проверява повторно, ако в системата е настъпило блокиране или не, използвайки 2 основни алгоритма за откриване на блокиране, те са

  • Единична инстанция
  • Няколко екземпляра от тип ресурс

Един екземпляр

Един екземпляр е ситуация, при която системата има единични екземпляри на всички ресурси. Известен е също като алгоритъм за изчакване на графика или графика за разпределение на ресурси. Графиката за разпределение на ресурси се състои от набор от процеси и набор от ресурси, които са представени като два различни върха. Ресурсите в графиката за разпределение на ресурси се модифицират и се представят като форма за изчакване на графиката. Където чакането за графична форма има само процеси, които са представени като върхове, както е показано по-долу, където,

  • Графика за разпределение на ресурси: Процесите P1, P2, P3 и ресурси R1, R2, R3 са представени в графиката за разпределение на ресурси.
  • Изчакайте графика: В процес на изчакване на графиката се споменават само процеси P1, P2, P3.
  • Ако има условие на цикъла, че ако има непрекъснат поток на процес в една посока, това означава, че състоянието на цикъла излиза и изчакайте графиката да е в безизходица.

Пример 1: Примерът по-долу показва, че няма състояние на блокиране, тъй като не се наблюдава непрекъснат поток в очакване на графиката.

Пример за единичен екземпляр

single-instance-example1

Пример 2: Настъпило е състояние на блокиране, тъй като има непрекъснат цикъл от P1 до P4.

Единична инстанция - Пример2

единичен пример-пример2

Ако блокирането се случва много често в системата, тогава алгоритъмът за откриване се използва често. Ако се използва повече алгоритъма за откриване, ще има повече режийни и повече време за изчисление. Следователно, за да преодолеем това, ние извикваме алгоритъма, след като даваме еднакво време, по този начин се използва тежестта за графиката за откриване на блокиране.

Няколко екземпляра от тип ресурс

Множество екземпляри от типа ресурс е ситуация, при която системата има множество екземпляри от всички ресурси, известен е още като алгоритъм на банкери. Според алгоритъма на банкерите, веднага щом процесът получи всички необходими ресурси, той освобождава ресурсите си.

Нека разгледаме следния пример, да приемем, че има 3 процеса P0, P1, P2 и тип ресурси A, B, C, където A може да бъде процесор , B може да бъде принтер, а C може да бъде клавиатурата. Цифрите „0“ в колоната представляват наличността на ресурси.

Случай (i): Да предположим, че ако приемем, че заявката за условие е условие „000“, която присъства в P0 и P2, трябва да проверим коя заявка е изпълнена, процесите P0 освобождават процесите след разпределяне, след това следващите процеси P2 се освобождават след разпределението. По този начин, в последователност, един по един процес освобождава P0, P2, P3, P1, P4 в последователност. Накрая получаваме налични ресурси като P7, P2, P6. Наличната последователност е състояние, при което няма задънена улица.

Банкери-Алгоритъм-Пример1

банкери-алгоритъм-пример1

Къщи (ii): Да предположим, че ако P2 е 001 вместо 000, сега приложете алгоритъма на банкера, за да проверите за блокиране, където единственият P0 се изпълнява сред всичките 5 процеса. Следователно P1, P2, P3, P4 са в безизходица, с изключение на P0.

Банкери-Пример2

банкери-пример2

Приложения на Deadlock

Приложенията на задънена улица могат да бъдат обяснени с пример в реално време за онлайн резултати от изпити, където няколко студенти се опитват да получат достъп до уебсайта на университета си по време на освобождаването. Може да се забележи, че понякога уеб страницата не се зарежда наведнъж на множество потребители, това е състояние на блокиране. Това може да бъде преодоляно с помощта на някой от алгоритмите.

Предимства

Предимствата на блокирането са

  • Не се наблюдава изпреварване при избягване на задънена улица
  • Без забавяне в процеса

Недостатъци

Недостатъкът на блокирането е

  • Използваният ресурс трябва да бъде известен предварително
  • Блокиране на процеса за дълго време
  • Предварителните загуби се наследяват.

Тази статия прави преглед на това как възниква блокиране, когато има два или повече процеса и трите условия, които са причина за възникване на блокиране, и двата типа алгоритми, а именно алгоритъм за споделяне на ресурси, който открива, че съществува състояние на задънена улица и алгоритъм на банкерите, който е алгоритъм за избягване на задънена улица. Тук е въпросът „Какво се случва, ако блокирането бъде игнорирано?“.