Një rast bllokimi mund të përkufizohet formalisht : Një bashkësi proçesesh ka një rast bllokimi kur çdo proçes në këtë bashkësi pret për një ngjarje që mund të shkaktohet vetëm nga një tjetër proçes i kësaj bashkësie. Duke qënë se të gjithë proçeset presin atëherë asnjëri nga këto proçese nuk do shkaktojë asgjë, pra situata vazhdon kështu pambarimisht. Në këtë model supozojmë se secili nga këto proçese ka vetëm një thread dhe interruptet nuk munden që të zhbllokojnë një proçes të bllokuar. Në shumicën e rasteve ngjarja që çdo proçes pret është lëshimi i disa resurseve që kërkohen nga një tjetër proçes në këtë bashkësi. Asnjeri nga këto proçese nuk mund të vazhdojë ekzekutimin sepse asnjëri nga ato nuk mund të lëshojë resurset dhe për rrjedhoje asnjeri nuk mund të zhvillohet. Numri i proçeseve si dhe numri dhe lloji i resurseve nuk ka rëndësi.
Kushtet për një rast bllokimi
Coffman në vitin 1971 tregoi katër kushtet që duhen plotësuar për të pasë një rast bllokimi:
-
- Kushti i përjashtimit të ndërsjelle. Secili resurs ose i është caktuar një proçesi ose është i lirshëm.
-
- Kushti i mbajtjes dhe pritjes. Proçeset që kanë tashmë një resurs mund të bëjë kërkesë për një tjetër resurs.
-
- Kushti që resurset nuk janë preemptive. Resurset që i janë caktuar më parë një proçesi nuk mund ti merren me forcë. Ka vetëm një mundësi: lëshimi i resursit nga vetë proçesi në mënyrë eksplicite.
-
- Kushti i pritjes rrethore. Duhet të jete të paktën dy proçese të tillë që secili prej tyre pret për një tjetër resurs që zotëron një proçes tjetër në këtë rreth.
Që të ndodhe një deadlock duhet që të jenë prezent të gjithë këto kushte. Nqs njëri nga këto mungon atëherë nuk kemi të bëjmë me një rast bllokimi.
Bazuar në librin Modern Operating Systems, me autor A.Tanenbaum