- Polling (Informatik)
-
Polling bezeichnet in der Informatik die Methode, den Status eines Geräts aus Hard- oder Software oder andere Wertänderungen mittels zyklischem Abfragen zu ermitteln. 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 Polling ist das aktive Warten auf Zustandsänderungen, auch Spinning genannt. Eine andere Form ist die Abfrage jeweils einmal in einem Abtastzyklus, oder die Abfrage jeweils nach einer anderen Aktivität.
Zu Polling gibt es folgende Alternativen, deren Einsatzmöglichkeiten jeweils von den Hard- und Softwaregegebenheiten abhängen:
- Interruptsteuerung, insbesondere bei Hardwareanschaltungen.
- Ereignissteuerung (Events), zum Beispiel in Java gebräuchlich, um Benutzerinteraktionen zu verarbeiten,
- Pushing von Daten, also das (unter Umständen ständige) unaufgeforderte Senden
- Pulling von Daten, also das gezielte, sporadische Abfragen von Daten
- Einsatz eines Schedulers eines Echtzeitbetriebssystemes, insbesondere für Semaphorenabfrage (Monitor) oder für die Prozesssynchronisation mit wait/notify.
Polling ist unter folgenden Bedingungen sinnvoll:
- 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.
- 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.
Ein Beispiel für die Nutzung von Polling ist der Sendeaufruf.
Kategorien:- Betriebssystemtheorie
- Parallelverarbeitung
Wikimedia Foundation.