Látható, hogy az operációs rendszernek nagyon nehéz feladata az eroforrások igazságos (és hatékony muködést eredményezo) kiosztása. Ennek megoldása gyakran lehetetlenség, mert nem ismert a folyamatok jovobeli viselkedése (vagyis nem lehet tudni, hogy egy adott folyamatnak milyen eroforrásokra lesz még szüksége). Vannak olyan "megoszthatatlan" eroforrások (mint például a legtöbb mágnesszalag-egység), amelyet egyszerre csak egy folyamat használhat, és abból adódhatnak a gondok, ha mégis két folyamat próbálja egyszerre használni oket. Tegyük fel, hogy egy multitaskingot biztosító operációs rendszerrel felszerelt gépen egy mágnesszalag-egység van, és egy darab printer. Két folyamat fut, és mindketto ki akar nyomtatni egy mágnesszalagon tárolt fájlt. Az egyik folyamat megnyitja a mágnesszalag-fájlt (ezzel kizárólagos hozzáférési jogot nyer az egységhez), a másik folyamat (multitaszkos volt a rendszer) ezzel párhuzamosan megnyitja a nyomtatóra irányított fájlt (ezzel kizárólagos hozzáférési jogot nyer a nyomtatóhoz). Ekkor az elso folyamat megpróbálhatja megnyitni a printer-fájlt, de mivel az "foglalt", ezért kénytelen várni (folyamatosan), amíg a másik folyamat "el nem engedi" azt. A másik folyamat megpróbálja megnyitni a mágnesszalag-fájlt, de o is kénytelen várni, amíg a másik folyamat el nem engedi azt. Vagyis mindkét folyamat olyan esemény bekövetkeztére vár, amelyet a két folyamat közül A másik folyamat idézhet elo. Az ilyen helyzeteket nevezik holtpont-helyzetnek, más néven deadlocknak. Léteznek ezt felismero vagy megelozo algoritmusok, de ezek az algoritmusok gyakran "kényelmetlenségeket" okoznak a felhasználóknak (pl. meg van kötve, hogy egy felhasználó maximum hány folyamatot indíthat el, mivel a processz-tábla is betelhet, és ez is okozhat holtpontot), ezért több operációs rendszer (mint például. a UNIX) egyszeruen tudomást sem vesz arról, hogy ez bekövetkezhet, és ha bekövetkezne egy ilyen esemény, akkor a felhasználóra bízza az ilyen helyzetbe került folyamatok "kilövését" (ld. majd késobb).