Blockering

Blockering sker när ett anrop till en subrutin inte återvänder förrän det slutförs eller misslyckas med en felkod eller ett undantag. En process som är blockerad är en som väntar på en händelse, som t.ex. att en resurs blir tillgänglig eller slutförandet av en I/O-operation.[1]

I ett datorsystem med flera parallella processer måste de enskilda processerna eller trådarna dela systemets resurser. Dessa resurser kan vara:

När en process använder en resurs är det i allmänhet inte möjligt, eller önskvärt, att en annan process kommer åt samma resurs samtidigt. Tekniker för ömsesidigt uteslutande används för att förhindra sådant samtidigt bruk. När den andra processen är blockerad är den oförmögen att exekvera tills den första processen har slutat använda resursen.

Programspråk och schemaläggningsalgorithmer utformas för att minimera blockering, och förhindra deadlock, det vill säga när två eller fler processer är blockerade, i väntan på resurser som de andra processerna håller i.

Se även

  • Icke-blockerande synkronisering
  • Race condition
  • Deadlock

Referenser

  1. ^ Stallings, William (2004). Operating Systems: Internals and Design Principles (5th). Prentice Hall