Solaris のシステム管理 (第 2 巻)

バッファー資源

read システムコールと write システムコール用のバッファーキャッシュは、カーネルアドレス空間内で一定の範囲の仮想アドレスを使用します。1 ページ分のデータがカーネルのアドレス空間に対応づけられ、プロセスが要求したデータ量がプロセスのアドレス空間に物理的にコピーされます。次に、ページはカーネル内で対応づけを解除されます。物理ページは、ページデーモンによって開放されるまでメモリー内に残ります。

これは、少数の入出力集中型プロセスによってメインメモリーが独占されたり、他のプロセスが排除されたりする可能性があることを意味します。メインメモリーの独占を防ぐには、スクリプト内で並列に、または at(1) コマンドを使用して、入出力集中型のプロセスの実行負荷を調整します。プログラマは、mmap(2)madvise(3) を使用して、プログラムが使用していないときに必ずメモリーを開放するように設定できます。