
ローカル コンピューターに 2 つのディスクがありますが、これらのディスクに同時に書き込む場合、変更は順番に書き込まれるのでしょうか、それとも並列に書き込まれるのでしょうか。
答え1
例を使って説明します。これらの数字は実際のものではなく、単なるデモンストレーションです。
1 つのデータ ブロックを書き込むのに 10 秒かかると仮定します (ブロックのサイズは無視します)。ただし、ディスクにブロックを書き込むように指示するには 1 秒しかかかりません。
また、この単純な例では、CPU は一度に 1 つのディスクにのみコマンドを送信できると仮定します。
最初の 1 秒で、CPU はディスク 1 にブロックを書き込むように指示します。2 秒目にディスク 1 が書き込みを開始し、CPU はディスク 2 にブロックを書き込むように指示します。3 秒目にディスク 2 が書き込みを開始します。
11秒目にディスク1が終了し、12秒目にディスク2が終了します。この例では、コマンドはシリアルで送信されましたが、書き込み操作は実行されました。たいてい(約9秒分)を並行して実行します。
約 1,000 層の複雑さを積み重ねると、コンピューター上で実際に起こっていることに近づきます。
つまり、システムは並列書き込みに最善を尽くします。
答え2
ディスクはミラーリングされていますか? そうであれば、ほぼ同時に書き込みが行われています。そうでない場合、同じコントローラ上にありますか? そうであれば、おそらく順番に書き込みが行われています (または、インターリーブ書き込みが行われている可能性があります)。異なるコントローラ上にある場合は、書き込み操作のプロファイルや、システムでのキャッシュの構成方法など、他の多くの要因に応じて、同時または順番に書き込みが行われる可能性があります。
答え3
はい、書き込みは非同期ですsync
でブロック デバイスのオプションを指定しない限り/etc/fstab
、
SCSI/IDE コントローラは一度に複数のデバイスを駆動することをサポートしているため、同じシステム バスを共有するブロック デバイスでも非同期で動作できます。