E / A gebunden - I/O bound

In der Informatik , I / O - gebunden bezieht sich auf einen Zustand , in dem es die Zeit zur Vervollständigung nimmt Berechnung wird durch die Zeit hauptsächlich bestimmt verbrachte warten auf Ein- / Ausgabeoperationen abgeschlossen werden. Dies ist das Gegenteil einer CPU-gebundenen Aufgabe . Dieser Umstand tritt auf, wenn die Rate, mit der Daten angefordert werden, langsamer ist als die Rate, mit der sie verbraucht werden, oder mit anderen Worten, mehr Zeit für das Anfordern von Daten aufgewendet wird als für die Verarbeitung.

E / A-Bindung als inhärentes Problem beim Rechnen

Der E / A-gebundene Zustand wurde fast seit seiner Einführung als Problem beim Rechnen identifiziert. Bei der Von Neumann-Architektur , die von vielen Computergeräten verwendet wird, handelt es sich um mehrere mögliche Lösungen, z. B. die Implementierung einer logisch getrennten Zentralprozessoreinheit, die neben dem Speichern der Programmanweisungen auch die tatsächlichen Daten normalerweise aus dem Hauptspeicher abruft und diese stärker nutzt zugängliche Daten zum Arbeiten. Wenn der Prozess beendet ist, werden die Ergebnisse in den ursprünglichen Speicher (normalerweise den Hauptspeicher ) zurückgeschrieben.

Da Daten entlang eines Busses mit begrenzter Datenübertragungsrate zwischen CPU und Speicher verschoben werden müssen , liegt eine Bedingung vor, die als Von-Neumann-Engpass bezeichnet wird . Einfach gesagt bedeutet dies , dass die Datenbandbreite zwischen der CPU und Speicher tendiert dazu , die Gesamtgeschwindigkeit der Berechnung zu begrenzen. In Bezug auf die tatsächliche Technologie, aus der ein Computer besteht, sagt der Von Neumann-Engpass voraus, dass es einfacher ist, die CPU dazu zu bringen, Berechnungen schneller durchzuführen, als sie mit der dafür erforderlichen Geschwindigkeit mit Daten zu versorgen.

In der jüngeren Geschichte ist der Von Neumann-Engpass deutlicher geworden. Die Designphilosophie moderner Computer basiert auf einer physisch getrennten CPU und einem Hauptspeicher. Es ist möglich, die CPU mit einer hohen Datenübertragungsrate laufen zu lassen, da Daten über winzige Entfernungen zwischen Standorten in ihnen verschoben werden. Die physische Trennung zwischen CPU und Hauptspeicher erfordert jedoch einen Datenbus, um Daten über vergleichsweise große Entfernungen von Zentimetern oder mehr zu bewegen. Das Problem, diesen Teil des Systems so schnell arbeiten zu lassen, dass er mit der CPU Schritt hält, war eine große Herausforderung für die Designer.

E / A als praktisches Problem gebunden

Der E / A-gebundene Zustand wird als unerwünscht angesehen, da dies bedeutet, dass die CPU ihren Betrieb blockieren muss, während sie darauf wartet, dass Daten aus dem Hauptspeicher oder dem Sekundärspeicher geladen oder entladen werden . Da eine schnellere Rechengeschwindigkeit das Hauptziel neuer Computerdesigns und -komponenten wie CPU und Speicher ist, ist es dringend erforderlich, E / A-gebundene Zustände zu vermeiden, und deren Beseitigung kann zu einer wirtschaftlicheren Leistungsverbesserung führen als ein Upgrade der CPU oder Erinnerung.

Wenn die CPU schneller wird, werden Prozesse tendenziell stärker an E / A gebunden

Oder einfacher ausgedrückt:

Wenn die CPU schneller wird, nimmt die Geschwindigkeit der Prozesse im Verhältnis zur CPU-Geschwindigkeit nicht zu, da sie stärker an die E / A gebunden sind.

Dies bedeutet, dass E / A-gebundene Prozesse langsamer als nicht E / A-gebundene Prozesse sind und nicht schneller. Dies ist auf die Zunahme der Datenverarbeitungsrate im Kern zurückzuführen, während die Rate, mit der Daten vom Speicher zum Prozessor übertragen werden, nicht mit dieser Geschwindigkeit zunimmt. Wenn die CPU-Taktrate zunimmt und mehr Befehle in einem bestimmten Zeitfenster ausgeführt werden können, ist der begrenzende Faktor für die effektive Ausführung die Rate, mit der Befehle vom Speicher an den Prozessor geliefert und vom Prozessor an ihr Ziel gesendet werden können. Kurz gesagt, Programme werden natürlich immer mehr an E / A gebunden.

Vergleich mit CPU-gebunden

Angenommen, wir haben einen CPU-gebundenen Prozess und viele E / A-gebundene Prozesse. Während die Prozesse im System ablaufen, kann sich das folgende Szenario ergeben. Der CPU-gebundene Prozess erhält und hält die CPU. Während dieser Zeit beenden alle anderen Prozesse ihre E / A und werden in die Bereitschaftswarteschlange verschoben, um auf die CPU zu warten. Während die Prozesse in der Bereitschaftswarteschlange warten, sind die E / A-Geräte inaktiv. Schließlich beendet der CPU-gebundene Prozess seinen CPU-Burst und wechselt zu einem E / A-Gerät. Alle E / A-gebundenen Prozesse mit kurzen CPU-Bursts werden schnell ausgeführt und kehren zu den E / A-Warteschlangen zurück. Zu diesem Zeitpunkt befindet sich die CPU im Leerlauf. Der CPU-gebundene Prozess kehrt dann in die Bereitschaftswarteschlange zurück und erhält die CPU zugewiesen. Wiederum warten alle E / A-Prozesse in der Bereitschaftswarteschlange, bis der CPU-gebundene Prozess abgeschlossen ist. Es gibt einen Konvoieffekt, da alle anderen Prozesse darauf warten, dass der eine große Prozess die CPU verlässt. Dieser Effekt führt zu einer geringeren CPU- und Geräteauslastung, als dies möglich wäre, wenn die kürzeren Prozesse zuerst ausgeführt würden.

Siehe auch

Verweise