Es ist seit jeher bekannt, dass Festplattenvorgänge langsam sind, und wir kennen die Gründe, warum sie langsam sind. Die Frage hier ist also, warum wir auf I / O warten müssen oder warum es so etwas wie IOWait usw. gibt.
Ich habe gemerkt, dass bei der Ausführung einiger E / A-Aufgaben im Hintergrund Ihr Computer im Grunde genommen sehr viel langsamer wird. Insbesondere bei der Verwendung von Linux ist mir aufgefallen, dass Sie längere E / A-Aufgaben ausführen wird das Betriebssystem fast unbrauchbar, bis sie abgeschlossen sind.
Tatsächlich habe ich dieses Thema auch in einem Artikel gefunden, es gibt einen Ausschnitt:
Die E / A-Wartezeit beträgt 12,1%. Dieser Server hat 8 Kerne (via cat / proc / cpuinfo). Dies ist sehr nahe (1/8 Kerne = 0,125)
Im Grunde bedeutet dies, dass der Computer VIEL langsamer wird. Warum ist das so? Ich meine OK, jetzt sind die normalen Computer mindestens 2 Kerne, manchmal 4 oder manchmal haben sie mehr wegen Hyperthreading oder so ähnlich. Jetzt stellt sich die Frage, warum die CPU eigentlich dort bleiben muss und praktisch nichts anderes tut, als nur auf IO zu warten. Ich meine die Grundidee oder Architektur des Prozessmanagements, jetzt weiß ich nicht, ob es das Betriebssystem ist, das dafür verantwortlich ist, oder ob es auf den Hardwareteil ankommt, aber es sollte der CPU ermöglicht werden, zu warten oder zu warten Überprüfen Sie dies regelmäßig, während Sie viele andere Aufgaben ausführen und erst dann zum E / A-Prozess zurückkehren, wenn er fertig ist. In der Tat, wenn das eine so schwierige Aufgabe ist und die CPU warten müsste, warum nicht? Ist das mit Hardware effizienter? Zum Beispiel könnte es eine Art Mini-CPU geben, die nur darauf wartet und den kleinen Teil der Daten an die echte CPU liefert, sobald sie wieder in den Prozess eingehen, und so würde der Prozess wiederholt und wir hätten es nicht getan praktisch einen ganzen CPU-Kern für den Datenkopierprozess zu widmen ... Oder wäre ich derjenige, der solche Sachen erfinden und dafür einen Nobelpreis bekommen sollte? : S
Okay, ich sage es jetzt wirklich aus der Perspektive eines Beobachters und ich habe mich nicht so tief mit dem Thema befasst, aber ich verstehe wirklich nicht, warum die CPU mit der Geschwindigkeit der Festplatte arbeiten muss, obwohl es nur möglich ist Tun Sie etwas anderes und kehren Sie zur Festplatte zurück, sobald sie fertig ist. Die Idee ist nicht, die Anwendung zu beschleunigen, die diese E / A-Operation oder den Kopiervorgang oder was auch immer benötigt, sondern den CPU-Verbrauch während dieser Operation nur minimal zu beeinflussen, damit das Betriebssystem ihn für andere Prozesse und den Benutzer verwenden kann Ich müsste beim Kopieren keine allgemeine Verzögerung des Computers spüren ...