Verhungern (Informatik)

Als Verhungern (englisch Starvation) bezeichnet man in der Informatik den Fall, wenn ein Prozess oder Thread keine CPU-Zeit zugeteilt bekommt, obwohl er zur Ausführung bereit wäre. Der Scheduler im Betriebssystemkern sollte idealerweise dafür sorgen, dass dies nicht geschieht und die CPU-Zeit „fair“ zugeteilt wird. Es gibt im Allgemeinen keine ideale Lösung, um Verhungern zu vermeiden, weil ein ideales prioritätengesteuertes Scheduling gerade nicht fair ist.[1]

Wenn Verhungern in einem gleichzeitigen Algorithmus unmöglich ist, wird der Algorithmus als hungerfrei, aussperrungsfrei oder als endlicher Bypass bezeichnet. Diese Eigenschaft ist eine Instanz der Lebendigkeit und ist eine der beiden Voraussetzungen für jeden Algorithmus zum gegenseitigen Ausschluss; das andere ist die Richtigkeit. Der Name „endliche Umgehung“ bedeutet, dass jeder Prozess (gleichzeitiger Teil) des Algorithmus höchstens eine endliche Anzahl von Malen umgangen wird, bevor Zugriff auf die gemeinsam genutzte Ressource gewährt wird.[2]

  1. Baun, Christian.: Betriebssysteme Kompakt. Springer, Berlin / Heidelberg 2017, S. 166 (proquest.com).
  2. Andrew S. Tanenbaum: Modern operating systems. Upper Saddle River, N.J. : Prentice Hall, 2001, ISBN 978-0-13-031358-4 (archive.org [abgerufen am 17. Oktober 2021]).

Developed by StudentB