オペレーティングシステム...二次記憶...

29
オペレーティングシステム オペレーティングシステム ( ( 仮想記憶管理 仮想記憶管理 ) ) 2006 2006 11 11 2 2 酒居敬一 酒居敬一 ( ( sakai.keiichi@kochi sakai.keiichi@kochi - - tech.ac.jp tech.ac.jp ) ) http http ://www.info.kochi ://www.info.kochi - - tech.ac.jp/k1sakai/Lecture/OS/2006/ tech.ac.jp/k1sakai/Lecture/OS/2006/

Upload: others

Post on 17-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

オペレーティングシステムオペレーティングシステム((仮想記憶管理仮想記憶管理))

20062006年年1111月月22日日

酒居敬一酒居敬一(([email protected]@kochi--tech.ac.jptech.ac.jp))

httphttp://www.info.kochi://www.info.kochi--tech.ac.jp/k1sakai/Lecture/OS/2006/tech.ac.jp/k1sakai/Lecture/OS/2006/

Page 2: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

記憶階層(45ページ)記憶階層(45ページ)

(0次記憶、短期記憶)

CPU内部のレジスタ

一次記憶(長期記憶)

主記憶(通常はRAM)のこと電力の供給を絶てば、記録内容は失われる

二次記憶(外部記憶)

HDDやフロッピーなど電力の供給がなくても、記録し続けるしくみがある

大容量とか可搬であるとか利点をもつが、一般に低速

Page 3: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

一次記憶一次記憶

一般にRAMとしてDRAMが使われるDRAMは大容量だがアクセス速度が遅いRAMの中ではコストパフォーマンスがよい通常、お金は有限なのです…ただし、リフレッシュが必要

小容量だがアクセス速度の速いSRAMもある記憶の参照は局所性がみられることが多い

DRAMに高速SRAMを組み合わせるのが一般的このときの高速SRAMはキャッシュと呼ばれている

CPUはせっかちさんだからね…

Page 4: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

二次記憶二次記憶

2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する

磁化を利用するHDDやフロッピーやDAT(磁界を変調して書く、磁界を読む)光磁気ディスクやMD(磁界を変調して書く、カー効果で読む)

電荷を利用するフラッシュROM(電荷を注入して書く、閾値の変化で読む)

結晶構造を利用するCD-RW(加熱による相変化で書く、相変化を読む)

入出力命令で装置上のデータを読み書きする

CPUがメモリを参照するのとは少し違う

Page 5: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

記憶記憶管理技法(管理技法(4646ページ)ページ)

フェッチ技法要求時プリフェッチ

割付け技法連続割付け単一連続割付け分割割付け固定区画割付け可変区画割付け

非連続割付けページングセグメンテーション

置き換え技法スワッピングFIFOOPTLRU

Page 6: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

記憶領域の保護記憶領域の保護

• TEXT–命令を置くための領域–書き込むことはあり得ない–命令はロードモジュールに含まれる

• DATA–初期値つき静的変数を置く領域–初期値はロードモジュールに含まれる

• BSS–初期値なし静的変数を置く領域

• STACK–動的変数や一時変数を置く領域

Page 7: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[Intel, ``Software Developer Manual’’]

Page 8: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[Intel, ``Software Developer Manual’’]

Page 9: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[大久保英嗣, オペレーティングシステムの基礎]

プロセスの中では記憶領域を自由に配置・獲得・使用したい!

記憶領域に関しても現実と切り離して、仮想的な存在とする

仮想記憶(55ページ)

Page 10: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

仮想記憶に必要なこととは?仮想記憶に必要なこととは?

• 有限の資源である主記憶のプロセスへの割付け–ページング– (現在ではセグメンテーションは単体では使われない)

• アドレス変換–ページング–セグメンテーション

• プロセス固有の領域を保護–セグメンテーション

Page 11: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

アドレス変換アドレス変換

• ページングによるもの–ページという固定の単位ごとにアドレスを変換–変換はアドレス変換表を使用–自由自在な変換ができる–高速化のためにTLBを使う

• 連想記憶機構を使った変換表のキャッシュ–領域は物理的に分割したもの(構造が無い)

• セグメンテーションによるもの–任意の大きさの領域を変換–領域は一般に論理セグメントに対応(構造がある)

Page 12: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

ページングによるアドレス変換

[Intel, ``Software Developer Manual’’]

Page 13: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

ページングによるアドレス変換

[Intel, ``Software Developer Manual’’]

Page 14: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[Intel, ``Software Developer Manual’’]

Page 15: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

セグメンテーションによるアドレス変換

[Intel, ``Software Developer Manual’’]

Page 16: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[Intel, ``Software Developer Manual’’]

Page 17: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

[Intel, ``Software Developer Manual’’]

ページングとセグメンテーションは組み合わされることが多い

Page 18: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

ページングアルゴリズム(ページングアルゴリズム(5858ページ)ページ)目的はページフォルト率を最小化目的はページフォルト率を最小化

• FIFO–主記憶上の最も古いページを選択しページアウト

• ページインした順にページアウトする–特別なハードウェアはいらない

• OPT–将来のページ使用を見てページアウト–現実には実装できない。性能評価の際の指標

• LRU–参照の時間的局所性を利用したものである–主記憶上で最も使われなかったページをページアウト–ハードウェア機構が必要である

Page 19: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

LRULRUアルゴリズムアルゴリズム• カウンタ

–時間を計時するため、カウンタを設ける–各ページは最終参照時刻を保持する–最も古くに参照されたページを線形検索しページアウト

• スタック–参照されたページ番号をスタックトップに移動する–スタックボトムがページアウト対象を示す

• 参照ビット–定期的にページ参照があったかをソフトウェアで調査–荒い時間刻みでLRUを実装したことに相当–擬似LRUとも呼ばれる

Page 20: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

割付け技法割付け技法

• 大域割付け–システム内に、ページ枠の集合はひとつ–ページのプロセスの所属とは無関係に割付ける

• 局所割付け–プロセスでは、各々のページ枠集合から割付け–ページ枠の集合をプロセスごとに持たせる

均等割付け(ページ枠数÷プロセス数)比例配分割付け(ページ枠数×仮想記憶量÷全仮想記憶量)ワーキングセットプロセスが活発に参照した領域(ワーキングセット)を維持ワーキングセットの決定には発見的手法が必要

Page 21: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

記憶割付けに関して記憶割付けに関して

• 要求時ロードとページ置き換え–実記憶を超えた容量の仮想記憶が割付け可能–プログラムやデータは参照される瞬間だけ実記憶に存在していればよい(そのように維持されればよい)。

• 1次記憶(主記憶、RAM)と2次記憶(HDD)の関係– 1次記憶は2次記憶のキャッシュ

• 記憶の実態は2次記憶装置上にある– 2次記憶は1次記憶が不足したときの退避領域

• スラッシング–ページインとページアウトが激しく起きている状態–実記憶容量より仮想記憶容量が大きく、参照の局所性が期待できないときに起こることが多い。

Page 22: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

サスペンドとハイバネーションサスペンドとハイバネーション

• サスペンド– CPUは動作停止。内部情報の保持のため電力供給。– メモリ(通常はDRAM)はリフレッシュ動作のみ継続。–周辺デバイスは内部状態をメモリ等に退避して電力供給を停止。

• ハイバネーション–すべてのデバイスは動作停止。電力供給も停止。–二次記憶装置などに内部状態を退避。

• レジューム– CPU/メモリ/周辺デバイスの状態を復帰して、実行再開

Page 23: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

入出力機器入出力機器

• バイト単位で入力と出力できる装置–読み書きする位置が設定(シーク)できるもの

• シーク可能デバイス– DAT– HDD

» シークが比較的速いので二次記憶装置として使われる

• ランダムにアクセスできるが、アクセス位置を示すポインタは装置側に存在する(メモリと異なる点)

–読み書きする位置が設定できないもの• シーク不可能デバイス

– キーボード– プリンタ– スキャナ

• 狭い意味での入出力装置

Page 24: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

制御方法制御方法

• 入出力制御専用の命令:I/O命令– メモリのようにキャッシュしないこれは、メモリのようにキャッシュ制御できないから

• I/O空間(メモリ空間に置かれている場合もある)– メモリのように空間内にすべて展開しない– I/Oポートという、ポートを通じて制御する–ポート(Port: 本来の意味は港)に対して入出力する

Page 25: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

直接同期制御直接同期制御

• プロセッサがハードウェアを直接操作• ハードウェアの状態変化と操作が同期• 状態変化を検出する方法→ポーリング

–ポーリングは時間精度がよい–プロセッサは検出にかかりっきり

Page 26: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

直接非同期制御直接非同期制御

• プロセッサがハードウェアを直接操作• ハードウェアの状態変化とプロセッサの動作が非同期

–つまり、状態変化を別の手段で知る–たとえば、割り込み

• プロセッサはその間別のことができる

Page 27: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

間接制御間接制御

• バスマスタ転送– DMA

• 主記憶を対象にデータを転送–バス使用権を持っているもの→バスマスタ

• それ以外はバスマスタによってデータが転送される• バスマスタになりえるもの→プロセッサ、ディスクI/Fなど

• I/Oプロセッサ–例: ネットワーク通信ボード, RAIDボード–プロセッサの高速化により、減りつつある

Page 28: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

入出力管理入出力管理

• キャラクタデバイス–入出力動作で1バイトのデータが入出力できる–キーボード、マウス、HDD–基本的にシーケンシャルアクセス

• ブロックデバイス– ファイルシステムが構築できる– HDD、フロッピー、CDROM–基本的にランダムアクセス

Page 29: オペレーティングシステム...二次記憶 ¾2つ以上の状態間で遷移でき、状態維持にエネル ギーを消費しないものを利用して記録する ¾磁化を利用する

論理デバイス論理デバイス

• 直接ハードウェアを操作させると問題がある–プロセスはOSの上に複数存在する、一方で、デバイスは限られた数しかない。

–デバイスドライバが間に入る。–ハードウェア構成は同一であるとは限らないが、同一のインターフェースで使用できるようにしたい

– OSが使用するデバイスは、一般のプロセスからアクセスされては困る。