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.
Verwendung
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.
Beispiele für die Nutzung von Polling sind der Sendeaufruf und der Hotfolder.
Vor- und Nachteile
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
Zu Polling gibt es folgende Alternativen (meistens dem Konzept Inversion of Control folgend), deren Einsatzmöglichkeiten jeweils von den Hard- und Softwaregegebenheiten abhängen:
- Interruptsteuerung, insbesondere bei Hardwareanschaltungen.
- Ereignissteuerung und Rückruffunktionen um z. B. 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 Echtzeitbetriebssystems, insbesondere für Semaphorenabfrage (Monitor) oder für die Prozesssynchronisation mit wait/notify.
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.
Literatur
- Gerhard Schnell, Konrad Hoyer: Mikrocomputer-Interfacefibel. Vieweg, Braunschweig/Wiesbaden 1984, ISBN 978-3-528-04248-6.
- Rolf Gübeli, Hans Käser, Rolf Klaus, Thomas Müller: Technische Informatik II: Mikroprozessor-Hardware und Programmiertechniken. 2. Auflage. vdf Hochschulverlag, Zürich 2010, ISBN 978-3-7281-3256-7.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.