A holtpont mellett a folyamatok működésének egy másik zavara lehet az éhezés. Az éhezés azt jelenti, hogy egy várakozó folyamat nincs ugyan holtponton, de nincs rá garancia, hogy véges időn belül továbbindulhasson.
A szinkronizációs eszközök tárgyalásakor bevezettük az ütemezés fogalmát. Azokban az esetekben, amikor több várakozó folyamat közül kell továbbindulót választani, a választást gyakran nem célszerű a véletlenre bízni, hanem meghatározott algoritmus szerint kell dönteni. A rendszer a szemaforokhoz, erőforrásokhoz, egyéb szinkronizációs objektumokhoz várakozási (ütemezési) sorokat rendel, amelyeket meghatározott algoritmusok szerint kezel (így még az esetleges véletlen kiválasztás is tudatossá tehető).
Az ütemezés leggyakoribb alapalgoritmusai az érkezési sorrend szerinti (FIFO) és a prioritásos ütemezés.
Egy ütemezést tisztességesnek (fair) nevezünk, ha garantálja, hogy egy várakozási sorból minden folyamat véges időn belül továbbindulhat, ameny-nyiben a rendszerben véges számú folyamat működik és a rendszerben nincs holtpont vagy hibás folyamat (amelyik például nem enged el egy megszerzett erőforrást). Ellenkező esetben az ütemezés tisztességtelen (unfair).
Tisztességes ütemezés például az érkezési sorrend szerinti kiszolgálás, tisztességtelen a statikusan rögzített prioritás szerinti kiszolgálás (ilyenkor nincs garancia arra, hogy egy alacsony prioritású folyamat valaha is hozzájut az erőforráshoz, ha mindig van nála magasabb prioritású igény).
Megjegyzések:
-
Az éhezés nem jelent holtpontot.
-
Külső eseményre (például kezelői beavatkozás) való meghatározatlan idejű várakozás nem jelent sem éhezést, sem holtpontot.
-
Tisztességtelen ütemezés tudatosan is alkalmazható, csak számolni kell a kevésbé fontos funkciók kiesésével a terhelés (a futtatandó folyamatok száma) növekedésekor.

Előző
Előző