Взаимна блокировка
Взаимната блокировка е ситуация, при която всеки компютър чака ресурс, който е присвоен на друг процес. В тази ситуация процесите се изпълняват само ако необходимият ресурс се задържа от друг процес, който също чака да се освободи друг ресурс. Важно е да се предотврати взаимна блокировка, преди да възникне. Разписанието за ресурси може да засече възникване на взаимна блокировка, което помага на операционната система да следи всички ресурси, разпределени на различни процеси. Взаимната блокировка може да възникне, ако следните четири условия са изпълнени едновременно:
•Без преразпределение – даден ресурс може да бъде освободен само доброволно от процеса, който го задържа, след като този процес завърши задачата си.
•Взаимно изключване – специален вид двоичен семафор, използван за контрол на достъпа до споделения ресурс. Той дава възможност текущите задачи с по-висок приоритет да бъдат държани блокирани за възможно най-кратко време.
•Задържане и изчакване – в това състояние трябва да спрете задържането на един или няколко ресурса от процесите, докато едновременно чакат един или повече други.
•Циклично изчакване – то налага обща подредба на всички видове ресурси. Цикличното изчакване също изисква всеки процес да заявява ресурси в нарастващ ред на изброяване.
Има три начина да се справите с взаимна блокировка:
•Не допускайте системата да попадне в състояние на взаимна блокировка.
•Ако такава възникне, направете преразпределение, за да се справите с нея.
•Ако възникне взаимна блокировка, рестартирайте системата.