計算機工学 III オペレーティングシステム #14 ファイル:...

22
1 オオオオオオオオオオオオ #11 オオオオオ III オオオオオオオオオオオオ #14 オオオオオオオオオオオオオオオオオ 2006/07/21 オオ オオ

description

計算機工学 III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁. 14.1 ディスクキャッシュ. 仮想記憶 と ディスクキャッシュ. 仮想記憶 主記憶の大きさの制限をなくす そのために主記憶上のデータをディスク(二次記憶) に退避する ディスクキャッシュ ディスクアクセスの遅さを改善する そのために頻繁に読み書きされるディスク上のデータ (ファイル等)を主記憶に置く. 一貫性の保持. 書き込み発生時における一貫性保持 書き込みは主記憶上に存在する ディスクキャッシュに対して行う - PowerPoint PPT Presentation

Transcript of 計算機工学 III オペレーティングシステム #14 ファイル:...

Page 1: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

1

オペレーティングシステム#11

計算機工学 IIIオペレーティングシステム

#14 ファイル:より進んだファイルシステム

2006/07/21

津邑 公暁

Page 2: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

2

オペレーティングシステム#11

14.1ディスクキャッシュ

Page 3: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

3

オペレーティングシステム#11 仮想記憶 と ディスクキャッシュ

■ 仮想記憶 主記憶の大きさの制限をなくす そのために主記憶上のデータをディスク(二次記憶)

に退避する

■ ディスクキャッシュ ディスクアクセスの遅さを改善する そのために頻繁に読み書きされるディスク上のデータ

(ファイル等)を主記憶に置く

Page 4: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

4

オペレーティングシステム#11 一貫性の保持

■ 書き込み発生時における一貫性保持 書き込みは主記憶上に存在する

ディスクキャッシュに対して行う 主記憶上データとディスク上データが異なってしまう 何らかの形で一貫性をとる必要がある

■ ライトスルー■ ライトバック

Page 5: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

5

オペレーティングシステム#11 ライトスルー と ライトバック

■ ライトスルー (Write Through) 書き込み発生時,ディスクに対しても書き込みを行う

■ ライトバック (Write Back) 書き込み発生時はディスクキャッシュに対してのみ

行う

プロセス

ディスクキャッシュ(主記憶)

ディスク

write throughwrite

プロセス

ディスクキャッシュ(主記憶)

ディスク

write backwritewritewrite

write throughwrite

write throughwrite

書き込みは高速化されない

書き込みも高速化される

Page 6: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

6

オペレーティングシステム#11

14.2非同期入出力

Page 7: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

7

オペレーティングシステム#11 非同期入出力

■ 通常の I/O (同期) スーパバイザコールにより

実行中のプロセスを待ち状態に移行 I/O 操作

➔ プロセスにとっては非常に長い待ち時間

■ ノンブロッキング I/O (非同期) I/O 操作の際,プロセスを止めない I/O 処理を待たずに実行できる部分を先にやっとく

Page 8: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

8

オペレーティングシステム#11

■ 同期入出力

■ 非同期入出力

ユーザプログラム

OS

ユーザプログラム

OS

I/O 待ちの必要ない部分を

実行

高速化

Page 9: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

9

オペレーティングシステム#11

14.3ファイルシステムの仮想化

Page 10: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

10

オペレーティングシステム#11 ディスクに関する仮想化

■ ディスクキャッシュ ディスク上のデータを一部主記憶に置くことで,

低速なディスクへの読み書きを,主記憶アクセス時間で実現する

■ ステージング テープ等のデータを一部ハードディスクに置くこと

で,低速な二次記憶への読み書きを,(比較的高速な二次記憶である)ハードディスクへのアクセス時間で実現する

Page 11: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

11

オペレーティングシステム#11 ステージング

■ 二次記憶の階層化 アクセス頻度の低いデータを,

より低速だがより安価な記憶メディアに転送

直感的な例は,「バックアップデータ」➔ データが破損した場合にのみアクセスされる➔ 書き込みも定期的( 1 日に 1 回,週に 1 回,など)➔ アクセス頻度:非常に低

Page 12: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

12

オペレーティングシステム#11

14.4事例: MS-DOS と UNIX の

ファイルシステム

Page 13: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

13

オペレーティングシステム#11

■ FAT (File Allocation Table) MS-DOS, Windows95/98 デジカメ,シリコンオーディオプレーヤ

■ i-node 伝統的 UNIX 系ファイルシステムで用いられる

データ構造

Page 14: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

14

オペレーティングシステム#11 FAT

■ FAT 基本はインデクス方式 複数セクタを 1 クラスタとして管理 クラスタの総数に上限あり

- FAT12 : 4084

- FAT16 : 65524

➔ よって, 1 クラスタのサイズはディスク容量をクラスタ数で割ったものになる

➔ どんな小さなファイルでも 1 クラスタ消費する

Page 15: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

15

オペレーティングシステム#11 FAT におけるディスク構成

データ領域

ルートディレクトリ

FAT2

FAT1

ブートセクタMBR (Master Boot Record) が格納される場所

ディスクに関する情報, OS を読み込んで実行するための小さなプログラムや, OS の管理情報テーブル (BIOSParameter Block: BPB) 等を格納

インデクステーブル

FAT1 のバックアップ

ルートディレクトリのファイル情報

サブディレクトリやファイルの実体

Page 16: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

16

オペレーティングシステム#11 FAT におけるディスク構成

データ領域

ルートディレクトリ

FAT2

FAT1

ブートセクタ

0003

0004

0007

0006

FFFF

0005

0000

0001

FFF7

0000

0001

0002

0003

0004

0005

0006

0007

0008

0009

000A

第 1 クラスタ

第 2 クラスタ

第 3 クラスタ

第 5 クラスタ

最終クラスタ

第 4 クラスタ

空きクラスタ

予約クラスタ

不良クラスタ

0000

0001

0002

0003

0004

0005

0006

0007

0008

0009

000A

Page 17: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

17

オペレーティングシステム#11 i-node

■ i-node 基本はインデクス方式 階層構造を用いた設計

➔ より大容量のディスクを少ないインデクス領域で管理

Page 18: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

18

オペレーティングシステム#11 i-node の構造

:

DatablockData

block

DatablockData

blockDatablock

:

: :

:

:

: :

:

:

: :

:

:

: :

:

Datablock

DatablockData

blockDatablock

DatablockData

blockDatablock

DatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablockData

blockDatablock

DatablockData

blockDatablock

第一間接ブロック

二重間接ブロック

三重間接ブロック直接

ブロック

Page 19: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

19

オペレーティングシステム#11 i-node

■ 間接方式 3 重間接では 10243 = 1,073,741,824 クラスタ

を扱える➔ 1 クラスタ = 8kB の場合, 8TB

Page 20: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

20

オペレーティングシステム#11 まとめ

■ ディスクキャッシュ 遅いディスク上のデータの一部を主記憶に置く 高速アクセス可能だが,

書き込み時にディスクへの変更部分の反映が必要

ライトスルー➔ 書き込み時には,主記憶上のイメージだけでなく

同時にディスクに対しても書き込みを行う ライトバック

➔ 書き込み時には,主記憶上のイメージに対してのみ変更➔ 必要になった時点で変更部分をまとめてディスクに反映

Page 21: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

21

オペレーティングシステム#11 まとめ

■ 非同期入出力(ノンブロッキング I/O ) I/O が必要となった際,プロセスを停止せずに

I/O 結果に依存しない部分を I/O 操作と並行して行う

■ ステージング ファイルシステムの仮想化手法 低速ディスクの内容を一部高速な主記憶に置く

ディスクキャッシュと同様の考え方 低速メディア(テープ,光ディスク)の内容を

一部高速な二次記憶(ハードディスク)に置く

Page 22: 計算機工学 III オペレーティングシステム #14  ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁

22

オペレーティングシステム#11 まとめ

■ FAT MS-DOS で採用されたファイルシステム 基本はインデクス方式 複数セクタを 1 クラスタとして管理 クラスタの総数に上限あり

■ i-node 伝統的 UNIX 系ファイルシステムで用いられる 基本はインデクス方式 階層構造を用いた設計

➔ より大容量のディスクを少ないインデクス領域で管理