Polling (Informatik)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Polling bezeichnet in der Informatik die Methode, den Status eines Geräts aus Hard- oder Software oder das Ereignis einer Wertänderung mittels zyklischem Abfragen zu ermitteln.

Verwendung[Bearbeiten]

Hardware, deren Status benötigt wird, besteht häufig aus Ports elektrischer Schaltungen, Schnittstellen oder externen Geräten. Software-Zustände, die häufig abgefragt werden, sind Dateisperren auf anderen Rechnern oder Semaphore.

Ein möglicher Zweck des Pollings ist das aktive Warten auf Zustandsänderungen, auch Spinning genannt. Eine andere Form ist die Abfrage jeweils einmal in einem Abtastzyklus, oder die Abfrage nach jeweils einer anderen Aktivität.

Ein Beispiel für die Nutzung von Polling ist der Sendeaufruf.

Vor- und Nachteile[Bearbeiten]

Polling ist unter folgenden Bedingungen sinnvoll:

  • Das einfache explizit serielle und bestimmbare Verhalten von Polling-Programmierungen kann gegenüber potentiell komplexeren parallelen Alternativen erwünscht sein.
  • Es handelt sich um eine sehr schnelle Abfrage beispielsweise einer Hardwareanschaltung, die binnen Mikrosekunden den gewünschten Zustand einnimmt.
  • Es ist eine zyklische Aktivität vorhanden, in der das Polling stattfinden kann, während alternative Lösungen mehr Aufwand erfordern. Dies ist oft bei zyklischen Regelungen der Fall.
  • Es existieren keine weiteren Verbindungen zum Partner außer der Abfragemöglichkeit. Das ist etwa bei lose gekoppelten Systemen gegeben, beispielsweise beim Abfragen, ob eine Datei auf einem Dateisystem (gegebenenfalls auf einem entfernten Rechner) existiert oder freigegeben ist, die von einem anderen Programm bereitgestellt wird oder gesperrt ist.

Nachteile:

  • Durch Polling ist häufig die Leistungsfähigkeit von Programmen nicht-deterministisch (z. B. variierende FPS) und meistens geringer als mit Alternativlösungen.
  • Die Effizienz bei der Verwendung von Systemressourcen kann signifikant geringer sein als Alternativansätze. Beispielsweise kann eine naive Polling-Implementierung, z. B. ein mit maximaler Geschwindigkeit pollendes Programm, die Systemlast auf 100 % treiben (mit unnötigem Stromverbrauch und Abwärme), wogegen eine Event-basierte- oder Hardwareinterrupt-Lösung praktisch keine Systemressourcen verbraucht.

Alternativen[Bearbeiten]

Zu Polling gibt es folgende Alternativen (meistens dem Konzept Inversion of Control folgend), deren Einsatzmöglichkeiten jeweils von den Hard- und Softwaregegebenheiten abhängen:

Nachteil der meisten dieser Alternativen ist, dass dies Techniken der parallelen Programmierung sind, und damit potentielle Risiken und erhöhte Komplexität gegenüber dem explizit seriellen Polling haben.