Wikipedia · einfach zusammengefasst · Stand
Polling (Informatik)
Polling ist in der Informatik der Ausdruck für eine zyklische Abfrage, die den Status von Hard- oder Software oder das Ereignis einer Wertänderung ermittelt …
Inhalt4 Abschnitte
Grundprinzip des Pollings
Polling bezeichnet in der Informatik eine zyklische Abfrage. Dabei wird wiederholt ermittelt, welchen Status eine Hard- oder Software hat oder ob sich ein Wert geändert hat. Polling dient somit dazu, Zustandsänderungen festzustellen, indem ein Programm den betreffenden Zustand regelmäßig selbst abfragt.
Die Abfrage kann in einem festen Abtastzyklus einmal erfolgen, nach jeweils einer anderen Aktivität stattfinden oder dem aktiven Warten auf eine Zustandsänderung dienen. Dieses aktive Warten wird auch Spinning genannt. Polling arbeitet grundsätzlich explizit seriell: Die einzelnen Abfragen und ihre Reihenfolge sind im Programm bestimmbar.
Typische Einsatzbereiche
Polling wird eingesetzt, wenn der Status von Hardware oder Software benötigt wird. Hardware kann beispielsweise aus Ports elektrischer Schaltungen, Schnittstellen oder externen Geräten bestehen. Häufig abgefragte Software-Zustände sind Dateisperren auf anderen Rechnern und Semaphore. Ein Semaphor ist dabei ein softwareseitiger Zustand, der unter anderem zur Prozesssynchronisation verwendet werden kann.
Zu den im Artikel genannten Anwendungsbeispielen gehören der Sendeaufruf und der Hotfolder. Polling kann außerdem verwendet werden, wenn ein Programm wiederholt feststellen muss, ob eine Datei auf einem Dateisystem vorhanden, freigegeben oder durch ein anderes Programm gesperrt ist.
Wann Polling sinnvoll ist
Polling ist besonders dann sinnvoll, wenn sein einfaches, explizit serielles und bestimmbares Verhalten gegenüber potenziell komplexeren parallelen Lösungen gewünscht ist. Weitere geeignete Bedingungen sind:
- Die Abfrage ist sehr schnell, etwa weil eine Hardwareanschaltung den gewünschten Zustand binnen Mikrosekunden erreicht.
- Es gibt bereits eine zyklische Aktivität, in der die Abfrage durchgeführt werden kann. Das ist häufig bei zyklischen Regelungen der Fall.
- Es bestehen keine weiteren Verbindungen zu einem Kommunikationspartner außer der Abfragemöglichkeit. Dies kommt bei lose gekoppelten Systemen vor, beispielsweise beim Prüfen, ob eine Datei auf einem Dateisystem – gegebenenfalls auf einem entfernten Rechner – existiert, freigegeben oder gesperrt ist.
Der zentrale Vorteil liegt damit in der überschaubaren und leicht bestimmbaren Programmstruktur. Polling kann ohne zusätzliche parallele Mechanismen auskommen, wenn regelmäßige Abfragen technisch ausreichen.
Nachteile und Alternativen
Polling kann die Leistungsfähigkeit eines Programms nicht-deterministisch machen, beispielsweise durch variierende FPS, und ist meistens weniger leistungsfähig als alternative Lösungen. Auch die Nutzung von Systemressourcen kann deutlich ineffizienter sein. Eine naive Implementierung, die mit maximaler Geschwindigkeit abfragt, kann die Systemlast auf 100 % treiben. Dadurch entstehen unnötiger Stromverbrauch und zusätzliche Abwärme. Ereignisbasierte Lösungen oder Hardwareinterrupts können dagegen praktisch ohne Systemressourcen auskommen.
Als Alternativen nennt der Artikel:
- Interruptsteuerung, insbesondere bei Hardwareanschaltungen.
- Ereignissteuerung und Rückruffunktionen, etwa zur Verarbeitung von Benutzerinteraktionen.
- Pushing von Daten, also das unter Umständen ständige, unaufgeforderte Senden.
- Pulling von Daten, also das gezielte, sporadische Abfragen von Daten.
- Einen Scheduler eines Echtzeitbetriebssystems, insbesondere zur Semaphorenabfrage (Monitor) oder zur Prozesssynchronisation mit wait/notify.
Die Einsatzmöglichkeiten dieser Alternativen hängen von den jeweiligen Hard- und Softwaregegebenheiten ab. Ihr Nachteil besteht nach dem Artikel meistens darin, dass sie Techniken der parallelen Programmierung sind. Dadurch können gegenüber dem explizit seriellen Polling zusätzliche Komplexität und potenzielle Risiken entstehen.