ダーティビットとは

ダーティビットは、仮想記憶方式を採用したオペレーティングシステム(OS)において、主記憶装置(RAM)上の特定のページが、ディスクから読み込まれた後にCPUによって内容が書き換えられたかどうかを示すフラグ(ビット)のことであり、ページ置換アルゴリズムにおいて、書き換えられていないページ(クリーンページ)を優先的に置換することで、ディスクへのページアウト処理を省略し、システム性能を向上させるための、メモリ管理における重要な状態情報のことです。

ダーティビットの概要と役割

ダーティビット(Dirty Bit)、または変更ビット(Modified Bit)は、仮想記憶システムで用いられるページテーブルエントリ(PTE)に含まれる1ビットのフラグです。このビットは、そのページがディスク上のオリジナルと比べて変更されているかどうかを識別する目的で利用されます。

1. 仮想記憶とページ置換

仮想記憶システムでは、RAM容量が不足すると、OSはRAM上のページをディスクのスワップ領域などに書き出す(ページアウト)必要があります。このとき、ページアウトの処理は、ディスクI/Oを伴うため、システムのパフォーマンスに大きな影響を与えます。

2. ダーティビットの機能

ダーティビットは、このページアウト処理の必要性を判断するために機能します。

  • 動作: CPUがページ内のデータに対して書き込み操作(ストア命令)を行った際、MMU(メモリ管理ユニット)またはOSが、そのページのダーティビットを自動的に1に設定します。
  • 状態の判断:
    • ダーティビットが1(ダーティページ): ページの内容がディスク上のコピーと異なっており、RAMから追い出す前に、必ずディスクに書き戻す(ページアウト)必要があります。
    • ダーティビットが0(クリーンページ): ページの内容がディスク上のコピーと同じであり、RAMから追い出す際に、ディスクへの書き戻しを省略(スキップ)できます。

ダーティビットを活用したページ置換の最適化

ダーティビットの最大の利点は、ページ置換時のディスクアクセスを最小限に抑え、システムのスループットを向上させる点にあります。

1. ディスクI/Oの削減

ページ置換アルゴリズムがRAMからページを追い出す候補を選択する際、OSはダーティビットを検査します。

  • クリーンページの優先: ダーティビットが0のページは、ディスクへの書き出しが不要であるため、ページアウト処理を高速に完了できます。このため、OSはクリーンページを優先的に置換候補として選択します。
  • I/Oの非同期化: ダーティページを置換する場合でも、書き戻し処理をバックグラウンドで非同期的に実行し、その間に別のプロセスにCPU時間を割り当てることで、CPUの待機時間を最小限に抑えます。

2. LRU近似アルゴリズムとの連携

ダーティビットは、参照ビットと組み合わせて、LRU(Least Recently Used)アルゴリズムを近似する、より高度なページ置換戦略にも利用されます。

たとえば、第二次チャンスアルゴリズムやクロックアルゴリズムの拡張版として、ページの状態を以下のように分類して置換優先度を決定することがあります。

状態(参照, ダーティ)優先度処理内容
(0, 0) – クリーンで未使用最優先ディスク書き込み不要。即座に置換可能。
(0, 1) – ダーティで未使用第二優先最近使われていないが、ディスクへの書き戻しが必要。
(1, 0) – クリーンで使用済低優先最近使われたため、置換候補から外す(参照ビットを0にする)。
(1, 1) – ダーティで使用済最低優先最近使われ、かつディスクへの書き戻しが必要。置換は避ける。
置換優先度

この複合的な状態管理により、OSは「最も長い間使われておらず、かつディスクへの書き戻しが不要なページ」を効率的に選択し、高いページング性能を実現します。

ダーティビットは、ディスクI/Oというシステムのボトルネックを最小限に抑えるための、ハードウェアとOSが連携した基本的な最適化機構です。

関連用語

最近最長未使用アルゴリズム | 今更聞けないIT用語集
アルゴリズム | 今更聞けないIT用語集
ソフトウェアエンジニアリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。