Download presentation
Presentation is loading. Please wait.
Published byAta Savaş Modified 約 5 年前
1
酒居敬一(sakai.keiichi@kochi-tech.ac.jp)
オペレーティングシステム (ファイル) 2009年11月9日
2
入出力機器 バイト単位で入力と出力できる装置 読み書きする位置が設定(シーク)できるもの 読み書きする位置が設定できないもの
シーク可能デバイス DAT HDD シークが比較的速いので二次記憶装置として使われる ランダムにアクセスできるが、アクセス位置を示すポインタは装置側に存在する(メモリと異なる点) 読み書きする位置が設定できないもの シーク不可能デバイス キーボード プリンタ スキャナ 狭い意味での入出力装置
3
I/O空間(メモリ空間に置かれている場合もある)
制御方法 入出力制御専用の命令:I/O命令 メモリのようにキャッシュしない これは、メモリのようにキャッシュ制御できないから I/O空間(メモリ空間に置かれている場合もある) メモリのように空間内にすべて展開しない I/Oポートという、ポートを通じて制御する ポート(Port: 本来の意味は港)に対して入出力する
4
直接同期制御 プロセッサがハードウェアを直接操作 ハードウェアの状態変化と操作が同期 状態変化を検出する方法→ポーリング
ポーリングは時間精度がよい プロセッサは検出にかかりっきり
5
直接非同期制御 プロセッサがハードウェアを直接操作 ハードウェアの状態変化とプロセッサの動作が非同期 つまり、状態変化を別の手段で知る
たとえば、割り込み プロセッサはその間別のことができる
6
間接制御 バスマスタ転送 I/Oプロセッサ DMA バス使用権を持っているもの→バスマスタ 例: ネットワーク通信ボード, RAIDボード
主記憶を対象にデータを転送 バス使用権を持っているもの→バスマスタ それ以外はバスマスタによってデータが転送される バスマスタになりえるもの→プロセッサ、ディスクI/Fなど I/Oプロセッサ 例: ネットワーク通信ボード, RAIDボード プロセッサの高速化により、減りつつある
7
非同期入出力(Non-Blocking I/O)
同期/非同期入出力 同期入出力(Blocking I/O) 入出力処理の際、処理の完了まで待たされる 待っている間は何もできない 複数の入出力処理に関して待つしくみがある UNIXではpollシステムコール 非同期入出力(Non-Blocking I/O) 入出力処理の際、処理の完了まで待たない 定期的にポーリングする場合などに使われる
8
入出力管理 キャラクタデバイス ブロックデバイス 入出力動作で1バイトのデータが入出力できる キーボード、マウス、HDD
基本的にシーケンシャルアクセス ブロックデバイス ファイルシステムが構築できる HDD、フロッピー、CDROM 基本的にランダムアクセス
9
論理デバイス 直接ハードウェアを操作させると問題がある プロセスはOSの上に複数存在する、一方で、 デバイスは限られた数しかない。
デバイスドライバが間に入る。 ハードウェア構成は同一であるとは限らないが、 同一のインターフェースで使用できるようにしたい OSが使用するデバイスは、一般のプロセスから アクセスされては困る。
10
2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する
二次記憶 2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する 磁化を利用する HDDやフロッピーやDAT(磁界を変調して書く、磁界を読む) 光磁気ディスクやMD(磁界を変調して書く、カー効果で読む) 電荷を利用する フラッシュROM(電荷を注入して書く、閾値の変化で読む) 結晶構造を利用する CD-RW(加熱による相変化で書く、相変化を読む) 入出力命令で装置上のデータを読み書きする CPUがメモリを参照するのとは少し違う
11
入出力機器 バイト単位で入力と出力できる装置 読み書きする位置が設定(シーク)できるもの 読み書きする位置が設定できないもの
シーク可能デバイス DAT HDD シークが比較的速いので二次記憶装置として使われる ランダムにアクセスできるが、アクセス位置を示すポインタは装置側に存在する(メモリと異なる点) 読み書きする位置が設定できないもの シーク不可能デバイス キーボード プリンタ スキャナ 狭い意味での入出力装置
12
二次記憶装置などの、装置を抽象化したもの データやプログラムといった情報を記録できるもの
ファイルとは? 二次記憶装置などの、装置を抽象化したもの データやプログラムといった情報を記録できるもの バイト単位で読み書きできるもの、として抽象化 基本的には記録媒体+ポインタという構成で使える 所有者やアクセス権や参照カウントなどを保持 統一されたAPIをもつ open/close read/write/seek/readdir ioctl ファイルそのものには構造化する仕組みがない 情報を記録するしくみであり、整理するしくみではない
13
ディレクトリを指し示すことで構造化できる
ディレクトリ(フォルダ)とは? ファイルに関する情報を複数記録したもの 情報はディレクトリエントリに記録 ディレクトリエントリの中でファイルを指し示す 指し示すようにすること → リンクする ディレクトリもファイルの一種である 記録するしくみとしてファイルを使用 ディレクトリエントリがディレクトリを指すこともできる ディレクトリを指し示すことで構造化できる 原理的には有向グラフにできる ただし、一般には木構造とする
14
各ディレクトリには特別な名前のディレクトリがある
. ディレクトリそれ自身 .. 親ディレクトリ(rootに近いほうのディレクトリ) 親子関係により木構造としている 原理上、ディレクトリどおしの関係をグラフにすることもできるが、やらない。
15
ファイル4が、ディレクトリ Dir. DとDir. Eにリンクされている
ファイル6が、ディレクトリ Dir. BとDir. Fにリンクされている ファイル8が、ディレクトリ rootとDir. Fにリンクされている UNIXでは通常ファイルを複数のディレクトリからリンクすることができる ファイルは番号で参照され、ファイルの名前と番号はディレクトリで対応付け
16
ファイルを、実際の記憶装置に写像するもの 記憶装置はバイト単位のデータを読み書きできる装置として仮想的に扱う スーパーブロック
ファイルシステム(FS)とは? ファイルを、実際の記憶装置に写像するもの 記憶装置はバイト単位のデータを読み書きできる装置として仮想的に扱う スーパーブロック FSの大きさ、空きブロックの情報などを保持 ファイルが置かれる領域 所有者、時刻、種類、リンク数、使用データブロック データブロック 一定の大きさのブロックに分割されている 例: FAT、i-nodeなどが有名
17
データブロックの割当て技法 連続割当て 非連続割当て 空き領域の断片化が発生しやすい 空き領域のコンパクションが必要 リンク割当て
リンクを逐次たどらないと参照できない。二次記憶装置の性質を考えると、参照するのに時間がかかる。 索引割当て 参照すべき領域は索引(index)を参照すればわかるので、データ領域を参照するのに時間がかからないようにできる。
18
非連続割当てでは原理的には問題ないが、なぜ問題となるか?
フラグメンテーション フラグメンテーション(断片化)とは? 使用しているデータブロックが連続していない状態 非連続割当てでは原理的には問題ないが、なぜ問題となるか? リンク割当てにせよ索引割当てにせよ、データブロックが非連続に配置されていると参照に時間がかかる。 32MB/秒のデータ転送速度と8ミリ秒のシーク速度を持つデバイスでは、たとえば、32KBのデータ転送には1ミリ秒しかかからない。シークがいかに遅いか。
19
例: i-nodeファイルシステム 二次記憶上に置かれるもの スーパーブロック i-node領域 データブロック領域 FSの大きさ
空き領域の管理表 i-node領域 i-nodeの数がファイル数上限 ファイル データブロック領域 ファイルに含まれる情報
21
該当ファイルのディレクトリエントリを削除
i-node FSにおけるファイルの削除 該当ファイルのディレクトリエントリを削除 該当ファイルの名前は消える。 名前はディレクトリエントリに入ってる アンリンクするという。 アンリンクしたファイルの参照カウントを減らす 参照カウントが0でなければファイルは消さない。 他のディレクトリからリンクされている場合 実行中の場合(後で説明) mmapされている場合(後で説明) 参照カウントが0ならファイルを消す。
22
ファイルの種類 通常ファイル デバイススペシャルファイル ソケットやパイプ(次回) 外部装置を抽象化したもの ブロック型とキャラクタ型がある
バイト単位で送受信できる通信路を抽象化 UNIXでは、ファイルシステムの構築されたブロック型デバイスをマウントという操作を通じて、木構造の一部に接ぎ木することができる。 すべてのデバイスをファイルとして扱えるようにし、それらすべてのファイルを木構造の階層ディレクトリを通して参照できる。もちろん同じAPIにより参照できる。巨大なシステムをうまく単純化している。
23
デバイススペシャルファイル キャラクタ型 ブロック型(マウントできるデバイス) キーボードやマウス HDDやフロッピー DAT(テープ)
バイト単位で入出力できればすべてキャラクター型 DAT(テープ) バイト単位なら読み書きできる ブロック型(マウントできるデバイス) ファイルシステムを作ることできる装置 ファイルというものは、バイト単位で読み書きできる
24
プログラムのDemand Loadingができるということ
プロセスとファイルシステム プログラムのDemand Loadingができるということ プロセスと実行可能形式ファイルの関連付け ファイルには参照カウントがある プロセスは当該ファイルを実行中ということで参照カウントを+1 プロセスは実行可能形式ファイルのi-node番号を保持 ここでファイルの実体を知ってるから、ロードできる ファイルは、ディレクトリからリンクされて参照されるだけとは限らない 実際にロード作業を行うのはVMMの仕事である
25
VMM(仮想記憶管理)とファイルシステム
仮想記憶とファイルの関係は一般化してある 仮想記憶では領域を分けて、ファイルと関連付けるしくみがある Demand Loadingのために、実行形式ファイル中のTEXTやDATA領域と該当仮想記憶領域を対応付け そのしくみの一般化 → メモリのマッピング 通常ファイルを仮想記憶空間に写像できる ファイルをメモリのように参照 デバイス中のメモリすらファイルとして仮想化できるが… デバイスファイルをマッピングすることもでる そういうデバイスは、メモリとして参照するのが自然 ファイルとの対応無しにマッピングもできる 単に仮想記憶をプロセスに割当てただけ ファイルの実体と対応がなく、プロセス消滅とともに消えるのみ…
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.