interrupt vs Polling



  • Hallo,

    was ist der unterschied zwischen interrupt und Polling.
    Beim Polling frägt der Prozessor in festen Intervallen den derzeitigen Zustand
    ab. Beim Interrupt muss er den zustand doch auch immer wieder mal abfragen.
    Woher sollte er sonst wissen ob eine Anfrage da ist ?



  • kann es sein, dass beim interrupt das polling durch den interrupt conmtroller erledigt wird, und falls dieser kleine mini chip was neues weiß, wirft er die große cpu an um sich darum zu kümmern?

    lg lolo



  • Ein Interrupt ist wortwörtlich eine Unterbrechung. Es wird vorher festgelegt an welcher Stelle sich im Speicher der Code für die Interruptbehandlung befindet. Tritt nun ein Interrupt auf (und Interrupts sind aktiviert), dann springt die CPU automatisch an diese Stelle und führt den Code dort aus. Danach wird wieder an die alte Stelle zurück gesprungen und da mit dem weiter gemacht was vorher war. Die CPU reagiert also nur und muss nicht regelmäßig abfragen.

    noobLolo schrieb:

    kann es sein, dass beim interrupt das polling durch den interrupt conmtroller erledigt wird, und falls dieser kleine mini chip was neues weiß, wirft er die große cpu an um sich darum zu kümmern?

    Der PIC (Programmable Interrupt Controller) hat einfach nur ein paar Eingänge, an denen Geräte hängen. Sobald irgendwo ein Signal anliegt wird der Interrupt der CPU ausgelöst. Die CPU bzw. die Software die darauf läuft muss dann herausfinden, warum der Interrupt ausgelöst wurde, und dementsprechend reagieren.



  • Tobiking2 schrieb:

    Sobald irgendwo ein Signal anliegt wird der Interrupt der CPU ausgelöst.

    aaaber um herauszufinden an welchem pin ein signal anliegt muß er die doch der reihe nach abfragen (bzw. alle auf einmal) -> polling 😕

    lg lolo



  • Das ist theoretisch richtig, aber die CPU ist so gebaut, dass sie dieses "Polling" der IRQ-Leitung nebenher mitmacht (Hardware ist parallel!) und bei Bedarf halt die Interrupt-Routine anspringt.
    Beim echten Polling wird das Gerät durch die Software periodisch über die üblichen Kanäle abgefragt.

    Analogie zum wahren Leben(TM):
    Polling heißt, du läufst alle halbe Stunde runter zum Briefkasten und guckst, ob was da ist.
    Interrupt-Betrieb heißt, der Briefträger klingelt. Dass dein Gehirn das Ohr "pollen" muss, ist gut und schön, aber in dem Zusammenhang kein produktiver Einwand.



  • Mal ganz allgemein:

    Polling:
    Auf der CPU laufender Programmcode fragt aktiv nach, ob ein Ereignis aufgetreten ist. Fuer diesen Vorgang muss Rechenzeit aufgewandt werden.

    Interrupt:
    In der CPU steckt eine Logik in Hardware, die den aktuellen Programmablauf unterbricht und zu einer Behandlungsroutine springt. Das passiert automatisch und unabhaengig vom laufenden Programmcode, dh. fuer diesen Vorgang wird keine zusaetzliche Rechenzeit benoetigt.

    edit:
    Zu spaet. 🙄
    Bashar hat das auch schoen erklaert...



  • Polling:
    Der Chef fragt dich alle 5 Minuten "Bist du schon fertig".

    Interrupt:
    Der Chef sagt "Ich leg mich mal schlafen, weck mich auf wenn du fertig bist".

    🙂



  • Tanren schrieb:

    Polling:
    Der Chef fragt dich alle 5 Minuten "Bist du schon fertig".

    Interrupt:
    Der Chef sagt "Ich leg mich mal schlafen, weck mich auf wenn du fertig bist".

    🙂

    Und ich dachte Interrupt wäre, wenn der Chef einen weckt. 😃


Anmelden zum Antworten