Preprečevanje smrtnih objemov

Ker so za smrtni objem potrebni vsi zgoraj navedeni pogoji, ga lahko preprečimo s tem, ko preprečimo vsakega od štirih pogojev posebej.

  1. Največji problem je, da je večina virov lahko dostopna samo enemu procesu na enkrat. Če določen proces piše v datoteko, noben od ostalih procesov nima dostopa do te datoteke.

  2. Da preprečimo drugi pogoj moramo omogočiti procesu, da nek vir pridobi preden ga bo uporabil. Pri tem pride do dveh težav:
    > Viri bodo zasedeni preden jih bodo procesi sploh uporabljali.
    > Metoda ni uporabna na porabljive vire kot so sporočila (messages), ker bi bilo potrebno, da bi vsak proces najprej sprejel vsa sporočila od drugega procesa in šele nato bi jih začel obdelovati

  3. Dovoliti procesu, da ukrade ali si sposodi vir od drugega procesa je lahko rešitev, vendar moramo najprej prekiniti proces od katerega smo pobrali vir, kar bi se izkazalo kot izgubljeno delo, ali pa tudi izguba podatkov.

  4. Vsem tipom virov lahko določimo skupen ukaz, ki bo prisilil vse procese, da sledijo ukazu, ko si prilastijo nove vire. Če nek procse potrebuje več kot eno enoto vira določenega tipa, si mora prilastiti vse ali nobenega.

            "The dream of building large deadlock-free systems is just a dream."