7/8

ディスク装置とファイルシステム
z ファイル : プログラムやデータを格納するための論理的な単位
z OSはプログラムやデータを「ファイル」という論理的な単位で扱う
→ディスク装置の物理的構造(トラック,セクタ,シリンダー
など)を隠蔽し(仮想化し),ユーザに使いやすいインター
フェースを提供する。
ファイルシステム
ディスクの構造
アーム
スピンドルモータ
アーム駆動部
トラック
ヘッド0
ヘッド1
ヘッド2
ヘッド3
ヘッド4
ヘッド5
ディスク1
ディスク2
ディスク3
1
磁気ヘッド
スライダ
アーム先端部
アーム先端部裏側
トラックとセクタ
セクタ3
セクタ2
セクタ1
セクタ4
セクタ0
トラック0
トラック1
トラック2
1枚のディスク
2
ディスク装置の各部
z ディスク: 円盤上の記憶面を多数,同一の回転軸で
回転させた構造(前のスライド)
z トラック: 各記憶面上で情報を記録する同心円の集合
z セクタ:
トラックをいくつかの固定長の大きさに分けた領域
(読書きの単位)
z シリンダ: 各記憶面の同じ位置のトラックの集合
(ヘッドの移動なしに読み書きができる円筒状のトラックの集合)
z ヘッド:
各記憶面に配置された読み書きヘッド
z 磁気ディスクへの読書きは,
シリンダ番号,ヘッド番号,セクタ番号 を指定して行う。
ディスクの構成
トラック
ヘッド 0,1
※ ヘッドは1枚のディスク
につき,二つある。
ディスク 0
ディスク 1
ディスク 2
シリンダ
ヘッド 4,5
回転
3
位置決め時間と回転待ち時間
目的のトラック(シリンダ)
目的のセクタ
移動方向
磁気ヘッド
磁気ヘッドが目的
のトラックへ移動
位置決め時間 (シーク時間)
回転待ち時間 (サーチ時間)
ディスクに対するアクセス
1.
2.
3.
アクセスアームを移動させてヘッドを指定したトラックに位
置づける。これに要する時間を「位置決め時間(シーク時
間:seek time)」という。
指定したヘッドを選ぶ。
トラック上の指定したセクタがヘッドの位置まで回転する
のを待つ。これに要する時間を「回転待ち時間(サーチ時
間:search time)」という。
4
ディスクのデータ転送時間
データ転送に要する時間=アクセス時間+転送時間
(1) アクセス時間=位置決め時間+回転待ち時間
目的のトラックにヘッドが移動する
までの時間
目的のセクタがヘッド位置に
来るまでの回転待ち時間
(2) 転送時間=転送速度×データ転送量
例題
平均位置決め時間(シーク時間):10ms
回転数:7200rpm(rotation per minute)
データ転送速度:10Mbyte/s
の性能をもつディスクにおいて4Kbyteのデータを読み出
すのに要する時間を求めよ。
解答
7200rpmの回転数をもつディスクでは,1回転するのに
1/7200(分)=1/120(秒)=8.4ms
回転待ち時間(サーチ時間)は半回転(1/2回転)時間と考える
と, 8.4ms×1/2 = 4.2ms
また,データの転送速度は 10Mbyte/s=10Kbyte/ms
なので,4Kbyte のデータを読み出すのに要する時間は,
1/10(ms/Kbyte)×4(Kbyte) = 0.4ms
したがって,読出しに要する時間は
10ms + 4.2ms + 0.4ms = 14.6 ms
5
ディスクとパーティション(論理ディスク)
ディレクトリ
ディレクトリ
パーティション
データ
(ファイル)
ディレクトリ
パーティション
データ
(ファイル)
パーティション
ディスク
データ
(ファイル)
ディスク
ディレクトリ
パーティション
データ
(ファイル)
1ディスク3パーティション
1ディスク1パーティション
ファイルシステム
z コンピュータ内の多数のファイルを効率良く統一的な方法で管理
するためにOSが用意する。
z ディレクトリ : ファイルの登録簿。ファイルの管理情報を記録・管
理する。
– 名前
: ファイルの名前.文字列で定義
– 型
: ファイルの型(テキストファイル,実行ファイル,‥‥)
– 物理的位置 : ファイルの実体が存在する記憶装置,および
記憶装置内の場所 = ブロックアドレス
(ブロックアドレスはシリンダ番号,ヘッド番号,セクタ番号により定まる)
– 大きさ(サイズ) : ファイルの大きさ.記憶装置上での領域の
割当てに用いられる
– 保護情報 : 読出しや書込み,実行の許可など
– 参照時刻 : ファイルの生成や変更日時の記録
6
ディレクトリの構成法
ディレクトリ
ルート
ファイル
F1
F2
F3
F4
F5
F6
ルート
単一レベルのディレクトリ
ルート
D1
F1
D1
D2
F2
F3
F4
F5
F3
D4
D3
F6
F1
D2
F4
F2
D3
D5
F5
木構造のディレクトリ
2 階層のディレクトリ
階層構造ディレクトリの用語
‹ ルートディレクトリ:木構造の根にあたる部分のディレクト
リ。すべてのディレクトリの頂点
‹ カレントディレクトリ:ユーザあるいはプロセスが現在位置
づけられているディレクトリ
‹ 絶対パス:ルートディレクトリからのパス名(道筋)
‹ 相対パス:カレントディレクトリからのパス名
( “.” : カレントディレクトリ,“..”:親ディレクトリ)
‹ ホームディレクトリ:ユーザがログインしたときにカレント
ディレクトリとなるディレクトリ
7
F6
絶対パスと相対パス
ルート( / )
ディレクトリ
ファイル
D1
D2
F3
D4
F1
D3
F6
D5
F4
F5
F2
木構造のディレクトリ
カレントディレクトリがD4で,ファイルF5にアクセスする場合
絶対パスによる指定:
相対パスによる指定:
/D3/D5/F5
../../D3/D5/F5
UNIXにおけるディレクトリの階層構造の例
/
usr
var
home
bin
dev
passwd
管理用ファ
イルなど
lib
tty01
デバイス
ファイル
ユーザのホーム
ディレクトリ
man
csh
マニュアル ユーティ
リティ
lib
ライブラリ
taro
vmunix
tmp
UNIXの実行
可能プログラ
ム
システム稼動
時に変化する
ファイル
share
etc
jiro
hanako
ユーザファイル
8
lp0
作業用の
一時ファイル
UNIXのファイルシステム
z パーティションごとに階層構造のディレクトリが作られる。
z システム起動時に起動されるパーティションのディレクトリを
ルートディレクトリとする。
z パーティションごとのディレクトリ構造をマウント(mount: 接木:
木を結合すること)することによって,システム全体で一つの論理
的なディレクトリ構造を作ることができる。
ブートブロック
スーパーブロック
マウント
i ノードリスト
パーティション1
データ(ファイル)
(仮想記憶領域用)
パーティション2
ファイルシステム1
(ルートファイルシステム)
マウント
ブートブロック
スーパーブロック
物理ディスク1
i ノードリスト
パーティション1
データ(ファイル)
パーティション2
ファイルシステム2
ブートブロック
スーパーブロック
物理ディスク2
i ノードリスト
データ(ファイル)
ファイルシステム3
9
論理ディスク
(パーティション)
UNIXのファイルシステム構造
ブートブロック(システム起動のためのプログラム)
スーパーブロック(論理ボリュームの管理情報)
i ノード(0)
ブロックサイズ,iノード数,
i ノード(1)
空きブロック数など
i ノード(2)
i ノードリスト
…
…
(データ領域の管理情報)
i ノード(n)
データブロック(0)
データブロック(1)
…
…
データ領域
※ ディレクトリもファイルとして扱われる
データブロック(m)
論理ボリューム(パーティション)の構成
UNIXの階層化ディレクトリの例
/ (ルート)
etc
home
taro
file1
jiro
hanako
file2
…
…
10
…
/home/taro/file2 の検索
UNIXのファイル検索
i ノード
番号 2
3
4
5
i ノードリスト
1000
1008
データ領域
1000
root( / )
. 2
.. 2
etc
3
home 4
1024
…
12
…
25
1860
1008 home
.
..
4
2
taro
8
hanako 12
jiro
13
1024 taro
…
…
1680 file1
file1の実体
ディスク装置のブロックアドレス
11
.
..
file1
file2
8
4
24
25
…
1680
i ノード番号
…
24
親ディレクトリ
…
…
8
カレントディレクトリ
1860 file2
file2の実体