第 8 章 ディスク ストレージ管理 (Tang Xiaodan 版オペレーティング システム ノート) 超充実、超詳細! !!

第 8 章 ディスクストレージの管理

メインミッション:

ストレージスペースを効果的に利用し、ディスク I/O 速度を向上させ、ディスクシステムの信頼性を向上させます。

8.1 外部ストレージの構成

ファイルにディスク領域を割り当てる方法。最小ディスク領域はディスク ブロック (セクター)、つまりファイルのディスク ブロックがどのように構成されているかです。

  • 継続的な組織
  • リンク組織
  • インデックスの構成

8.1.1 継続的な組織

ファイルごとに一連の連続した連続ディスク ブロックを割り当てます。

ディレクトリ上: 各ファイル名、開始ブロック番号、長さを格納

利点: 簡単なシーケンシャルアクセスと高速アクセス。

欠点:

  • 連続した割り当てスペースが必要
  • ファイルの長さを事前に知っておく必要がある
  • ダイナミックな成長には適さない
  • 柔軟な追加や削除ができない

8.1.2 リンク構成

各ファイルに割り当てられるディスク ブロックは個別にすることができます

  • リンク方式

    ①暗黙的リンク

    ディレクトリ上: 各ファイル名、開始ディスク ブロック番号、終了ディスク ブロック番号を保存します。

    暗黙的: ブロック上に次のブロックへのポインターがあります。

    ②明示的なリンク

    ディレクトリ上: 各ファイル名、開始ディスクブロック番号を保存

    明示的: FAT ファイル アロケーション テーブルを使用して、すべての物理ブロック番号と各物理ブロックによってリンクされている次のブロックを記録します。

8.1.3 FATテクノロジー

明示的なリンク構成でファイルシステムを整理する

  • FAT代数

    クラスタ単位での割り当てとリカバリの基本単位。クラスタは、連続したディスク ブロックのグループです。

    サポートされるファイル システムの容量サイズ = クラスターのサイズ * FAT 桁の 2 乗 * パーティションの数

クラスタリングの利点

ディスク容量の継続的な増加に適応でき、FAT テーブル内の項目数も減らすことができるため、FAT テーブルが占有する記憶領域が減り、FAT テーブルにアクセスする際のアクセス コストが削減されます。

FAT12→FAT16→FAT32へ

FAT テーブルのエントリは制限されており、最大 4096 まで許可されます。ディスク容量が増加すると、必然的にクラスタ内で断片化が発生し、クラスタのサイズが増加します。

FAT16 テーブルの長さは 65356 個しかありませんが、ディスク容量が増加すると必然的にクラスタのサイズも大きくなり、クラスタ内の断片化を軽減するには FAT テーブルの長さも長くする必要があります。 、FATテーブルの幅を増やす必要があり、これもFAT16からFAT32に進化しました。

FAT32 は、FAT シリーズのファイル システムの最終製品であり、FAT32 の各クラスターは 4KB に固定されており、各クラスターには 8 つのディスク ブロックがあり、最大 2TB のディスク領域を管理できます。

FAT32 には下位互換性がなく、FAT16 よりも低速で、最小管理スペース制限があり、FAT32 ボリュームには少なくとも 65537 個のクラスターが含まれます

8.1.4 NTFS ファイル構成

NTFS (New Technology File System) は、Windows NT 用に特別に開発されたまったく新しいファイル システムであり、Windows 2000/XP およびそれ以降の Windows OS に適用されます。

  • ディスク構成

    NTFS は、ディスク領域の割り当てと回復の基本単位としてクラスタを使用します。

    ファイルは複数のクラスタを占有し、クラスタは 1 つのファイルのみに属します

    このように、NTFS は物理ブロックから独立していますが、ファイルにディスク領域を割り当てるときに、異なるディスク容量に応じて対応するサイズのクラスターが選択されている限り、ディスク ブロックのサイズを知る必要はありません。ディスクのサイズ。

  • ファイル構成

    NTFS では、ボリューム内のすべてのファイル情報、ディレクトリ情報、および使用可能な未割り当て領域情報が、ボリュームを単位としてファイル レコードの形式でマスター ファイル テーブル MFT (Master File Table) に記録されます。

    このテーブルは NTFS ボリューム構造の中心であり、論理的に言えば、ボリューム内の各ファイルはレコードとみなされ、MFT テーブル内の行を占有し、MFT 自体のこの行も含まれます。各行のサイズは 1 B に固定されており、各行はその行に対応するファイルのメタデータと呼ばれ、ファイル制御ワードとも呼ばれます。

特徴:64ビットのディスクアドレス、データの整合性チェックなどの機能付き

8.1.5 インデックスの構成

リンク編成方法は、連続編成の問題 (ランダム アクセスには不便) を解決しますが、次のような新たな問題が発生します。

  • 効率的な直接アクセスはサポートされていません
  • FAT は大きなメモリ空間を占有する必要があり、ディスク ブロック番号は FAT 内でランダムに分散されているため、ファイルのすべてのディスク ブロック番号を見つけるには、FAT 全体をメモリ空間に配置する必要があります。
  • したがって、開いたファイルのブロック番号をメモリに転送するだけでよく、FAT 全体をメモリに転送する必要はありません。

    ファイルごとにインデックステーブルを割り当てる

    インデックス テーブルはすべて、インデックス ディスク ブロックと呼ばれる 1 つのディスク ブロックに割り当てられます。

    ディレクトリ上: ファイル名と各ファイルのインデックス ディスク ブロック番号を保存します。

長所: 大きなファイルの検索が大幅に高速化されます。

短所: 小さいファイルが多い場合、インデックス ディスク ブロックが多くなり、インデックス ディスク ブロックの使用率は高くありません。

単一レベルのインデックス構成

ここに画像の説明を挿入

図 1 単一レベルのインデックス構成

マルチレベルのインデックス構成

大きなファイルにディスク領域を割り当てるときに、割り当てられたディスク ブロックのディスク ブロック番号がすでにインデックス ブロックで埋められている場合、OS はそのファイルに別のインデックス ブロックを割り当てる必要があります。これは、今後ファイルに引き続き割り当てるために使用されます。ディスクブロック番号が記録される。同様に、各インデックス ブロックはチェーン ポインターを介して順番にリンクされます。

ここに画像の説明を挿入

図 2 セカンダリ インデックスの割り当て

増分インデックス方式

大、中、小のファイルが混在しても処理可能

8.2 ファイルストレージスペースの管理

ファイルストレージスペースの管理: 主にどのディスクブロックが使用され、どのブロックが使用されていないのか、次に割り当てと回復の操作を提供します。

8.2.1 フリーリスト方式とフリーリンクドリスト方式

フリーリスト方式(連続)

最初のディスク ブロック番号と、連続する空きディスク ブロックの空きディスク ブロックの数を記録します。

  • 割り当てとリサイクル: 各割り当てでは FCFS を使用して、連続した空きディスク ブロックを割り当てることができます。

利点: 割り当て速度の向上、ディスク I/O 頻度の削減

欠点: 割り当てられたスペースは連続している必要があります

フリーリスト法(離散)

空きディスク ブロックは空きディスク ブロック チェーンに引き込まれます

  • 割り当てと再利用: ディスク ブロックの個別の割り当て

長所: 割り当てとリサイクルのプロセスは非常に簡単です

短所: ディスクブロックの割り当てを何度も繰り返す必要があり、割り当てと回復の効率が低い

8.2.2 ビットマップ方式

バイナリの 1 または 0 を使用して使用するかどうかを示し、すべてのディスク ブロックに対応するビットがセットを形成します

  • 割り当てと再利用: ステータス ビットが空いている未割り当てのディスク ブロックを見つけ、対応するディスク ブロックの物理アドレスを変換し、ビット マップを変更します。

8.2.3 グループチェーン方式

UNIXではフリーリスト方式とフリーリンクドリスト方式を組み合わせた方式が採用されています。

8.3 I/O速度を上げる方法

キャッシュ、先読み、遅延書き込み、物理ブロック分散の最適化、仮想ディスク、安価なディスクの冗長アレイ

8.3.1 ディスクキャッシュ

メモリ内のディスク ブロックのバッファを指定し、そのバッファには特定のディスク ブロックのコピーが保存されます。

  1. ディスクにキャッシュされたデータを要求元のプロセスに転送するにはどうすればよいですか?

    ① データ配信:要求元プロセスのメモリワークスペースにデータを配信します。

    ②ポインタ受け渡し:バッファリングされたデータへのポインタを要求元のプロセスに受け渡します。

  2. どのような代替戦略を採用するか?

    置換アルゴリズムを使用する場合の考慮事項: アクセス頻度、予測可能性、データの一貫性

  3. 変更されたデータはどのようにしてキャッシュからディスクに書き換えられますか?

    定期的にディスクに書き戻す

8.3.2 ディスク I/O 速度を向上させるその他の方法

  • 先読みシーケンシャル ファイルに適しており、次のディスク ブロックのデータを事前にメモリに保存します
  • 遅延書き込みデータはすぐにはディスクに書き込まれず、ヘッドの移動を減らすためにバッファ内でハングします。
  • 物理ブロックの分散を最適化する:ヘッドの動きを減らすために、ディスク ブロックをできるだけ一緒に割り当てる必要があります。
  • 仮想ディスクはメモリ領域を使用してディスクをエミュレートします

8.3.3 安価なディスクの冗長アレイ (RAID)

  • RAID0 (パラレルインターリーブ)

    各ディスクブロックのデータはいくつかのサブディスクブロックに分割され、各サブディスクブロックのデータは異なるディスク上の同じ位置に保存されます。

    RAID1(ディスクミラーリング機能)

    RAID2(並列転送機能)

    RAID5(独立伝送機能付き)

  • 利点: 並列伝送により I/O 速度が向上し (RAID0 を除く)、バックアップの信頼性が高く、小型ディスクを使用して有利な価格を実現します。

8.4 ディスク速度を向上させるための信頼性テクニック

8.4.1 第一レベルのフォールトトレラント技術 STF-I

低レベルのディスク

効果:

ディスク表面の欠陥によるデータ損失を防ぐ

測定:

二重ディレクトリと二重ファイル割り当てテーブル (バックアップ)

ホットフィックスのリダイレクトとリードアフターライトチェックサム

8.4.2 第 2 レベルのフォールト トレランス技術 STF-II

中レベルのディスク

効果

ディスクドライブやディスクコントローラの故障によるシステムの誤動作から保護します。

測定:

ディスクミラーリング: 同じディスクコントローラの下に同一のディスクドライブを作成します (バックアップ)

ディスク二重化: ホストの下に別の同じディスク コントローラー (バックアップ) を追加します。

8.4.3 クラスタ技術によるフォールトトレラント機能

クラスタ: 複数のホストで構成される統合されたコンピュータ システム

測定

デュアルマシンホットデバイスモード: 1 台のホストが動作し、1 台のホストがバックアップ

2 マシン相互バックアップ モード: 2 台のマシンが同時に動作し、それぞれが独自のタスクを実行します。各サーバーには 2 つのディスクが装備されており、1 つは使用用、もう 1 つは相手側からバックアップ データを受信するために使用されます。

パブリックディスク: デュアルマシンモードではディスクが 1 つあり、1 つのディスクが 2 つのボリュームに分割されて使用されます。

8.4.4 バックアップシステム

自然要因による損傷を防ぐ

  • テープ
  • ハードディスク
  • CDドライブ
    • CD-ROM ドライブ: CD-ROM および DVD-ROM
    • 読み書き可能な光学ドライブ(レコーダー):CD-RW、COMBOレコーダー、DVDレコーダー

8.5 データ整合性制御

データの一貫性: 異なるファイルにあってもデータはいつでも同じです

8.5.1 トランザクション

トランザクションは、さまざまなデータ項目にアクセスして変更するためのプログラム単位です。一連の読み取りおよび書き込み操作として見ることができます

  • 操作する

コミットメント操作: すべてのファイルに対するトランザクションの読み取りおよび書き込み操作が完了することを指します。

リレーショナル操作: 複数のファイルに対するトランザクション操作の失敗を指し、早期の終了につながります。

  • 属性

データのバッチを完全に変更するか、まったく変更しない

  • あり: 取引記録

トランザクション レコードは、トランザクションの実行時にデータ項目の変更に関するすべての情報を記録できるデータ構造です。

  • トランザクション回復アルゴリズム

①undo:取引記録には開始操作のみがあり、委任操作はないため、すべてのデータが復元されます。

②やり直し:トランザクションが開始され、コミッション操作:すべてのデータが更新されます

8.5.2 チェックポイント

トランザクションを記録すると、時間の経過とともにより多くのデータが記録されます

トランザクションテーブルのクリーンアップを完了する

  • 障害発生後は、すべてのトランザクション テーブルのインデックス レコード トランザクションを処理する必要はなく、最後のチェックポイント後のレコード トランザクションのみを処理する必要があります。

8.5.3 同時実行制御

各トランザクションの実行は順次に行われ、1 つのトランザクションが実行された後でのみ、別のトランザクションの実行を開始できます。

同時実行制御:

  • ミューテックスの利用:オブジェクトのミューテックスを取得するだけでオブジェクトを操作できる(非効率)
  • 共有ファイルでは 1 つのトランザクションのみが書き込みを許可されますが、複数のファイルの読み取りは許可されます。共有ロックが導入されます。
  • 違い: ミューテックスでは 1 つのトランザクションのみの読み取りと書き込みが許可されますが、共有ロックでは複数のトランザクションの読み取りと書き込みは許可されます。

セマフォの仕組み

8.5.4 重複データのデータ整合性の問題

  1. 重複ファイルの一貫性

    UNIX ファイル ディレクトリの場合、各ディレクトリ エントリには ASCII ファイル名と、インデックス ノードを指すインデックス ノード番号が含まれます。
    重複ファイルがある場合、ディレクトリエントリはファイル名と複数のインデックスノード番号で構成され、インデックスノード番号はそれぞれのインデックスノードに対応します。

  2. リンク数の一貫性

    UNIX ファイル ディレクトリでは、各ディレクトリ エントリにインデックス ノード番号が含まれており、これはファイルのインデックス ノードを指すために使用されます。


  • 参考資料: コンピュータ オペレーティング システム (第 4 版) (Tang Xiaodan)

おすすめ

転載: blog.csdn.net/woschengxuyuan/article/details/128133558