• 検索結果がありません。

SCAN (Elevator)

ドキュメント内 オペレーティングシステム (ページ 38-73)

SCAN

C- SCAN (Elevator)

• Circular SCAN

• SCAN よりも待ち時間が均一になる傾向がある

• ヘッドが端にいったら逆方向に進まずに、ヘッドを逆方向の端 に移動させて処理を継続

10回 オペレーティングシステム

LOOK and C-LOOK

• SCAN, C-SCAN の改良

• ヘッドを端までもっていかず、もし、ヘッドの移動方 向に I/O 要求がなければ、移動方向を変更

C-SCAN C-LOOK

2018/6/18 40

Disk Attachment

• 2つの方法

– コンピュータのI/Oポートに接続 – ネットワークに接続

1. NFSのような分散ファイルシステム

2. SCSIの延長

SAN(Storage Area Network) 分散ファイルシステム

10回 オペレーティングシステム

ファイルシステム

• File Concept

• Access Methods

• Directory Structure

• File System Mounting

• File Sharing

• Protection

• File System Structure

• File System Implementation

• Directory Implementation

• Allocation Methods

• Free-Space Management

• Efficiency and Performance

• Recovery

• Log-Structured File Systems

ファイル

• ファイルとは

– 連続した論理的アドレス空間 – 内容 :

• データ

– 数値 – 文字

– バイナリ

• プログラム

• ファイル構造

– 構造なし

• 語あるいはバイト列

– 単純なレコード構造

• 行、固定長、可変長

– 複雑な構造

• 書式化されたドキュメント、

リロケータブルプログラム オブジェクト

– 誰が決める? :

• Operating system

• Program

2018/6/18 10回 オペレーティングシステム 42

ファイルとは

• プログラム中に保持する情報

– プロセス生成後に発生し、終了時に消滅 – アドレス空間の大きさに制限

もっと長期に大容量

プロセス メモリ中 ファイル

CPU メモリ

2次記憶

ファイルとは

• 記憶装置の構造に依存しないデータ保持の単位

– データやプログラム

– 記憶装置は主に 2 次記憶(外部記憶)

• HDD, フラッシュメモリ, 磁気テープ, etc.

• 主記憶上にファイルを配置することも可能

• 統一的な取り扱いが可能な論理的存在

– 生成、オープン , 読み , 書き , クローズ , etc.

– 属性情報を保持

2018/6/18 10回 オペレーティングシステム 44

ファイルの名前

• 情報の抽象化:保存しておいて後から読み出し

– ファイルに名前を付加

• 文字数・使える文字等の制限はファイルシステムにより差あり

– 8+3, 256, ... ; 大文字・小文字の区別

• 拡張子 ( ピリオド [.] より後ろの扱い )

– ファイルの種類の判定

• .txt, .tex, .doc, .ppt, .bat, .exe, .c, .h, .o, ...

– 単なる慣習の場合

– OS・アプリケーション解釈する場合

2018/6/18 46

ファイル属性とディレクトリ

Name – 名前

Type – ファイルのタイプ

Location – デバイス上のどこにあるか

Size – 大きさ

Protection – 誰にread/write/deleteを許すか

Time, date, and user identification

10回 オペレーティングシステム

F 1 F 2

F 3 F 4

F n Directory

Files

これらの属性はディレクトリの中に保持

ファイル操作

• Create

• Write

• Read

• Seek

• Delete

• Truncate

• Open(F

i

) : F

i

で示されるファイルをディスクから探索

– ファイルの中身をメモリ上で操作できるように

• Close (F

i

) :メモリ上で操作した内容をディスクに反映

2018/6/18 48

ファイルタイプ例

10回 オペレーティングシステム

OS におけるファイルアクセス

• ファイル制御ブロック (FCB: File Control Block)

– ファイル記述子 (File Descriptor) とも

– ファイルシステム中の属性情報のうち必要なものを保持 – ファイルのアクセス状態の管理

– プロセスは FCB を通じてファイルを操作

• read, write の引数では FCB の配列のインデックスを指定

– ユーザプロセスは FCB の中味は変更が不可能

– Open の返り値として取得が可能

OS におけるファイル操作

• create/delete

– ファイルの生成・削除 – 生成時には属性の指定

• open

– ファイルの使用開始

– 必要な属性を FCB へコピー

• ファイルアクセスに関する状態情報も保持

– 操作属性の指定 (read only など )

2018/6/18 10回 オペレーティングシステム 50

OS におけるファイル操作

• close

– バッファのフラッシュ、 FCB の削除 – 属性情報の更新

– プロセス終了時には全て自動的に close

• read/write

– データの読み出し・書き込み

– ある程度のまとまりを主記憶 ( バッファ ) に保持

OS におけるファイル操作

• append

– 追記、 write の限定版

• seek

– 読み・書きの場所の移動

• set/get attribute

– 属性値の取得 ( 時刻やら )

• rename

– ファイル名の変更

2018/6/18 10回 オペレーティングシステム 52

ファイルの構造

• バイト列

– OSはファイルの中味に興味なし

– 構造的な解釈はアプリケーションが担当

• レコード列

– 論理レコード

ファイルを構成するデータの集まりの単位 住所録 = 名前・住所・電話番号

改行まで (可変長)

– 物理レコード(ブロック)

記憶装置に入出力する際のデータの単位 内容は1つまたは複数の論理レコード

ファイルの構造

• 構造を持つファイル ( 論理構造 )

– 2 次記憶装置 ( 物理構造 ) に依らず扱う必要性 – ファイルの 2 次記憶への格納時

• 論理構造 ⇒ 物理構造へ変換し格納

– 2 次記憶からファイルの読み出し時

• 物理構造 ⇒ 論理構造へ変換し主記憶に配置

• ファイルアクセスの方法

– 2 次記憶での構造と入出力の効率化

2018/6/18 10回 オペレーティングシステム 54

バッファリング

• 二次記憶を直接読み書き → 遅い

– メモリ中に一次蓄積

• バッファリング( buffering )

– 二次記憶からブロック単位でメモリに転送 – プロセスはバッファに読み書き

– 変更のあるバッファは定期的・解放時に二次記憶に書き戻す

– CPU と入出力の並行処理

ダブルバッファリング

• 二つのバッファ

– 一方のバッファを読み・書きしている間に他方に二次記憶から/へ転送

• プロセスのI/O待ちを最小化

入力レコード

出力レコード

レコード レコード レコード

レコード レコード レコード

レコード レコード レコード

レコード レコード レコード

レコード レコード

レコード レコード

レコード レコード

レコード レコード

レコード レコード

レコード

作業バッファ レコード

入力バッファ1

入力バッファ2

出力バッファ1

出力バッファ2

2018/6/18 10回 オペレーティングシステム 56

ファイルアクセス手法

• 逐次ファイル (sequential file)

– レコードを書き込んだ順で配置

• 書き込んだ順でのみ読み出し可能

– 磁気テープ上のファイルはこの構造

• レコードの位置はレコード番号で指定

• 途中のレコードを読む場合

– 先頭から読みたいレコードの前までを読み飛ばす必要あり

ファイルアクセス手法

• 直接アクセスファイル (direct access file)

– ランダムアクセスファイル (random access) – 任意の位置のレコードを直接アクセス可能

• ファイルのブロックサイズの粒度(固定)

– 逐次アクセスの 2 次記憶装置では実現不可能

• 磁気テープ

• ランダムアクセス可能な2次記憶装置

• ランダムアクセス可能な割当て方式

2018/6/18 10回 オペレーティングシステム 58

ファイルの管理

• ディレクトリ (directory) … フォルダ

– ファイルの情報を保持する管理実体

• 1つのディレクトリで複数ファイルを管理

• 2次記憶上に保持

• ファイルアクセスの際にディレクトリもアクセス

– 高速化が必要

– 一部を主記憶にキャッシュ

2018/6/18 60

ディレクトリ操作

• ファイルの探索

• ファイルの生成

• ファイルの削除

• ディレクトリの下のファイルをリスト化

• ファイル名を変更 Rename a file

• 他のファイルシステムに移動

– 例:

• LinuxファイルシステムからWindowsファイルシステムへ

– 貸与したLaptop上でWindowsファイルシステムを見ることが可能

• LinuxファイルシステムからNFSファイルシステムへ

10回 オペレーティングシステム

ディレクトリ作成の指標

Efficiency :高速にファイルを探索可能

Naming : ユーザー利便性

– 複数のユーザーが異なるファイルに同じ名前 – 同じファイルに異なる名前

Grouping :ファイルの特徴による論理的な集合を定義可能

– 例: all Java programs, all games, …

ディレクトリエントリの管理

• 線形リスト

– 特定のエントリの検索 ⇒ 線形探索 – エントリをソート ⇒ 2分探索

• エントリの挿入・削除が複雑 (2次記憶)

• 2分木

– エントリの挿入・削除が容易 – 線形リストより領域が必要

• ハッシュ

– 高速,エントリの挿入・削除が容易 – 同一ハッシュ値の対策が必要

2018/6/18 10回 オペレーティングシステム 62

ディレクトリの階層

• 単一レベルディレクトリ

– システムにディレクトリは1つ

– ファイル名をシステム全体でユニークにする必要あり

• 2階層ディレクトリ

– ユーザごとに独立

• 自分の空間のみ参照

• ユーザ間共有不可

・・・

File

File File ・・・

ディレクトリ ・・・

File

File File ・・・

user n user 2

user 1 ・・・

マスタファイルディレクトリ

ユーザファイルディレクトリ

ディレクトリの階層

• 木構造ディレクトリ

– ディレクトリの階層化を一般化

• ルートディレクトリ,サブディレクトリ

・・・

File

File File

File File

File File

File File

ルートディレクトリ

サブディレクトリ

2018/6/18 10回 オペレーティングシステム 64

ディレクトリの階層

• パス名 (path name) … 木構造の中での指定法

– 絶対パス名 (absolute path name)

• ルートから指定

例: /usr/local/bin/

– 相対パス名 (relative path name)

• 作業ディレクトリ (working directory)から辿る際のパス

• カレントディレクトリとも (current directory)

• UNIX の場合

– / で区切り、. がカレント、.. が一つ上

• /usr/local/bin にいて ../../lib とすると /usr/lib

2018/6/18 66

単一レベルディレクトリ

• すべてのユーザーが同じディレクトリを使う

Naming problem Grouping problem

10回 オペレーティングシステム

2レベルディレクトリ

• ユーザ毎にディレクトリを作る

•Path name

•Can have the same file name for different user

•Efficient searching

•No grouping capability

2018/6/18 68

木構造ディレクトリ

• 効率良い検索

• グループ化機能

• カレントディレクトリ やワーキングディレク トリの概念

cd /spell/mail/prog – more list

– mkdir tmp – rmdir tmp

10回 オペレーティングシステム

Acyclic-Graph ディレクトリ

• 異なる名前で同一の実体を参照 (aliasing)

• If dict deletes list  dangling pointer.

解決方法 :

– Backpointers, so we can delete all pointers.

Variable size records a problem.

– Backpointers using a daisy chain organization.

– Entry-hold-count solution.

2018/6/18 70

Acyclic-Graph ディレクトリ

• Hard Link

– ディレクトリからファイルの実体を参照 – ファイル側は reference count を保持

– 参照しているファイルが削除されてもファイルの実体は残る

• reference countがゼロでないから

• Symbolic Link (Soft Link)

– ファイルのパス(文字列)でファイルを参照

– 参照しているファイルが削除されると、symbolic linkしているファイル名から の参照が不可能

10回 オペレーティングシステム

ドキュメント内 オペレーティングシステム (ページ 38-73)

関連したドキュメント