
Ich habe zwei Festplatten auf meinem lokalen Computer. Wenn Sie also gleichzeitig auf diese Festplatten schreiben, werden die Änderungen dann seriell oder parallel auf sie geschrieben?
Antwort1
Ich erkläre es anhand eines Beispiels. Diese Zahlen sollen nicht real sein, sondern nur eine Demonstration darstellen.
Angenommen, das Schreiben eines Datenblocks dauert 10 Sekunden (die Größe des Blocks wird dabei ignoriert), die Anweisung an die Festplatte zum Schreiben eines Blocks dauert jedoch nur 1 Sekunde.
Gehen Sie außerdem davon aus, dass die CPU in diesem vereinfachten Beispiel immer nur Befehle an eine Festplatte gleichzeitig senden kann.
In der ersten Sekunde weist die CPU Datenträger 1 an, einen Block zu schreiben. In der zweiten Sekunde beginnt Datenträger 1 mit dem Schreiben, während die CPU Datenträger 2 anweist, einen Block zu schreiben. In der dritten Sekunde beginnt Datenträger 2 mit dem Schreiben.
In Sekunde 11 wird Disk 1 fertig sein und in Sekunde 12 wird Disk 2 fertig sein. In diesem Beispiel wurden die Befehle also seriell gesendet, aber die Schreibvorgänge wurden durchgeführtmeistens(ungefähr 9 Sekunden) parallel.
Wenn man etwa tausend Komplexitätsebenen hinzunimmt, kommt man dem sehr nahe, was auf Ihrem Computer tatsächlich passiert.
Kurz gesagt: ja, das System wird sein Bestes tun, um parallel zu schreiben.
Antwort2
Sind die Festplatten gespiegelt? Wenn ja, dann schreiben sie so nah wie möglich gleichzeitig. Wenn nicht, sind sie auf demselben Controller? Wenn ja, schreiben sie wahrscheinlich sequentiell (oder führen möglicherweise verschachtelte Schreibvorgänge durch). Wenn sie auf unterschiedlichen Controllern sind, könnten sie entweder gleichzeitig oder sequentiell schreiben, abhängig vom Profil der Schreibvorgänge und zahlreichen anderen Faktoren, wie z. B. der Konfiguration des Caching auf dem System.
Antwort3
Ja, Schreibvorgänge sind asynchrones sei denn, Sie geben die sync
Option für ein Blockgerät in an /etc/fstab
.
Sogar Blockgeräte, die denselben System-BUS gemeinsam nutzen, können asynchron arbeiten, da Ihr SCSI/IDE-Controller die gleichzeitige Ansteuerung mehrerer Geräte unterstützt.