Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 •...

148
Operating System Operating System 5 5 岩井将行 岩井将行 5/12 1

Transcript of Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 •...

Page 1: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Operating SystemOperating System55

岩井将行岩井将行

5/12

1

Page 2: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第1回第1回

ドウ• ハードウエアとOS• CPUとデバイス、割り込み、記憶装置、ハードCPUとデバイス、割り込み、記憶装置、ハ ド

ディスク装置、RAID、パリティ

ドとプ セ メ リ ド 空間• スレッドとプロセス、メモリアドレス空間、ファイルシステム、NIC、ソケット、カーネル

2

Page 3: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第2回第2回

• CUI• タイピング ログイン コマンド操作 マニュアタイピング,ログイン,コマンド操作,マニュア

ル, シェル

フ イル操作 デ タ• ファイル操作,エディタ

3

Page 4: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第3回第3回

プ ジ ブ• プロセス,ジョブ

• プロセス管理 時分割処理とプロセス切り替プロセス管理、時分割処理とプロセス切り替え、スケジューリング、プロセス表

4

Page 5: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第4回第4回

憶装• 記憶装置

• メモリ階層 キャッシュ アドレス空間 物理アメモリ階層、キャッシュ、アドレス空間、物理アドレスと論理アドレス、ページング、チェックポインティング 効率的な自動メモリ管理 GCインティング、効率的な自動メモリ管理、GC、フラッシュメモリ

5

Page 6: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第5回第5回

権• シェルとアクセス権

• 標準入出力 フィルタコマンド シェルスクリプ標準入出力、フィルタコマンド、シェルスクリプト、ファイルのバックアップ、アクセス権、ドライブ ディレクトリ ファイル open/read/writeブ、ディレクトリ、ファイル、open/read/write

• ファイルのメモリへのマッピング、アクセス制御、権限、

6

Page 7: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第6回第6回

ネ• ネットワークとOS• ethernet,ping,socket,tcp/udp,rpc,apach,http,sethernet,ping,socket,tcp/udp,rpc,apach,http,ssh,ftp,remotewindow

新の 事情• 新のOS事情

7

Page 8: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第7回第7回

試験• 試験

8

Page 9: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

前回の復習

9

Page 10: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

2回目のこり2回目のこり

ドウ• ハードウエアとOS• CPUとデバイス、割り込み、記憶装置、ハードCPUとデバイス、割り込み、記憶装置、ハ ド

ディスク装置、RAID、パリティ

ドとプ セ メ リ ド 空間• スレッドとプロセス、メモリアドレス空間、ファイルシステム、NIC、ソケット、カーネル

10

Page 11: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第3回第3回

プ ジ ブ• プロセス,ジョブ

• プロセス管理 時分割処理とプロセス切り替プロセス管理、時分割処理とプロセス切り替え、スケジューリング、プロセス表

11

Page 12: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

プロセスの状態プロセスの状態

「実行 能なプ• 「実行可能なプロセス」とは?• プロセスの状態プロセスの状態

実行中?yes no

実行中?

実行CPUが空き次第実行できる?

noyes

実行可能 待ち

12

Page 13: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

プロセスの状態プロセスの状態

実行状態( )• 実行状態(running)– プロセスを実行している状態

– リソースは,そのプロセスのために確保されている

• 実行可能状態(ready)実行可能状態(ready)– 実行できるが、CPUリソースが確保できていない状態

CPUリソ スを確保した時点で実行開始される– CPUリソースを確保した時点で実行開始される

• 待ち状態(wait)– CPU以外のリソースも確保できていない状態

– 入力待ちなどもこれに含まれる待 含

13

Page 14: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

状態遷移

実行 能 CPUリソースが実行可能(ready)

CPUリソ スが割り当てられた(順番がまわってきた)

CPU以外のリソースを獲得orス パバイザ ル終了スーパバイザコール終了

待ち 実行

割込み

待ち(wait)

実行(running)

スーパバイザコールス パバイザコ ルorCPU以外のリソース喪失 14

Page 15: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

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

メモリとメモリ管理メモリとメモリ管理

15

Page 16: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

RAM(Random Access Memory)RAM(Random Access Memory)

通電中 もデ タを読 書き 能• RAMは、通電中でもデータを読み書き可能で、

電源を切ると記憶内容が失われる揮発性の電源を切る 記憶内容 失われる揮発性半導体メモリー

• SRAM(Static RAM;スタティックラム)• DRAM(Dynamic RAM;ダイナミックラム)

16

Page 17: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SRAMSRAM• SRAMはフィリップフロップ回路で構成された利用

した半導体メモリーで DRAMはコンデンサーをした半導体メモリ で、DRAMはコンデンサ を利用した半導体メモリー。

• フリップフロップ回路は、自己保持回路ともいわれる。論理回路で構成される。コンデンサーは電れる。論理回路で構成される。コンデンサ は電気を蓄えておく部品のことである。

• SRAMは、フィリップフロップ回路で構成され、DRAMはコンデンサーで構成されるということを覚えて欲しい。

17

Page 18: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SRAMSRAM

論理回路ではなく ンデンサ(キ パシタとも• DRAM 論理回路ではなく、コンデンサ(キャパシタとも言われる)の充電状態を使用した記憶方式

SRAMはDRAMと比較した場合 コンデンサの自然放• SRAMはDRAMと比較した場合、コンデンサの自然放電によるデータ消失を防ぐための定期的なリフレッシュ動作(再書き込み)を与える必要がないシュ動作(再書き込み)を与える必要がない。

– 記憶領域へのシンプルかつ高速なアクセスが可能である。ただし、1bitあたりのトランジスタ数やその配線がDRAMと比べ複雑になるため、bitあたりのコストは高くなる。

• 比較的小容量であっても高速性が求められる揮発性領域( のレジスタや キ シ メ リ)RAM領域(CPUのレジスタや、キャッシュメモリ)

18

Page 19: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

DRAM• Dynamic Random Access Memory• リフレッシュ(記憶保持動作)を必要とするダイナミックメモリ

• キャパシタ(コンデンサ)に電荷を蓄えることにより情報を記憶し、電源供給が無くなると記憶情報も失われる揮発性メモリリ

– 長期記録の用途には向かず、情報処理過程の一時的な作業記憶の用途に用いられる。用途に用いられる。

• DDR3‐SDRAM– Double‐Data‐Rate3 Synchronous Dynamic Random Access Memoryy y y– DDRでの同期クロックを4倍に高めそれぞれの立ち上がりと立ち下り

時にデータ入出力を確定するのでSDRに比べて8倍のデータ転送速度となる度となる。

– 動作周波数は800MHz、1066MHz、1333MHzの3種類

– ノート向け• S.O. DIMM(small outline dual in‐line memory module)• http://buffalo.jp/products/connect/ddr3_sdram‐so/ 19

Page 20: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

DARMとSRAMDARMとSRAM

記憶容量

アクセス速度

リフレッシュ

価格 用途 回路

DRAM 大きい 遅い 必要 安い 主記憶 コンデンサー

S 小さい 速い 不要 高いキャッシ メ

フィリップフロッSRAM 小さい 速い 不要 高い シュメモリ

フィリップフロップ

20

Page 21: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

メモリ実効速度メモリ実効速度• 実効速度=(キャッシュメモリの速度×ヒット率)+

(主記憶の速度×(1-ヒット率))

• ヒット率は、CPUが必要とするデータがキャッシュメモリー上に存在する確率

• NFPは、CPUが必要とするデータがキャッシュメモNFPは、CPUが必要とするデ タがキャッシュメモリー上に存在しない確率である。

• ヒット率+NFP(not found probability)=1• ヒット率+NFP(not found probability)=1

21

Page 22: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

メモリ実効速度問題メモリ実効速度問題• あるプロセッサが主記憶装置及びキャッシュ

ぞメモリにアクセスするとき,それぞれのアクセス時間は60ナノ秒及び10ナノ秒である。アクセ

スするデータがキャッシュメモリに存在する確率が80%の場合 このプロセッサの平均アクセ率が80%の場合,このプロセッサの平均アクセス時間は何ナノ秒か。

• 10ns*0.8+60ns*(1‐0.8)=8ns+12ns=20ns

22

Page 23: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

メモリ管理メモリ管理

23

Page 24: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

メモリ管理メモリ管理

ネ ジ• メモリ・マネージャ

– メモリのどの部分が使用中でどの部分がフリーメモリのどの部分が使用中でどの部分がフリか

– プロセスが要求するメモリを割り当て 使用後に– プロセスが要求するメモリを割り当て、使用後に解放

メインメモリとディスク間のスワッピングの管理– メインメモリとディスク間のスワッピングの管理

• メモリ管理システム

– スワッピング・ページングを使用しない方式

– スワッピング・ページングを使用する方式スワッピング ペ ジングを使用する方式

24

Page 25: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スワッピング・ページングなし(マルチプログラミング)

• 再配置(relocationの問題)

バイナリファイル

100番地

0番地

メモリに配置 100K+100番地

• 保護(protection)の問題

0番地

0

100K

保護(protection)の問題

ユーザ2のプログラム

ユーザ1のプログラムアクセス

25

Page 26: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

再配置と保護の問題の解決策再配置と保護の問題の解決策

ベ ジ タ ジ タを使• ベースレジスタとリミットレジスタを使用

– プログラムロード時にパーティションの先頭がプ グラム ド時にパ ティションの先頭がベースレジスタへ、パーティションの終わりがリミットレジスタへセットされるッ ジ タ ッ される

300Kリミットレジスタ

100K

ベ スレジスタ

CALL 100 100 + 100K(ベースレジスタの値)に自動的に変換し、かつ、

100Kベースレジスタ リミットレジスタもチェック

26

Page 27: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スワッピングスワッピング

プ 全体を 時的 デ 避• プロセス全体を一時的にディスクに退避

例例

B B B B

C C C C C

A A A

B B B B EA A A D D DOS OS OS OS OS OS OS

Aがスワップアウト 時間27

Page 28: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スワップ領域の割り当てスワップ領域の割り当て

プ領域• スワップ領域

– メインメモリに入りきらないものを退避させるためメインメモリに入りきらないものを退避させるための、ディスク上の領域

• スワップ領域割り当てのアルゴリズム• スワップ領域割り当てのアルゴリズム

– メインメモリ管理と同様のアルゴリズム

プ ご 割• スワップアウトごとに割り当てる

– 〃 と異なるアルゴリズム

• プロセス生成時に割り当てる

28

Page 29: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

仮想記憶(Virtual Memory)仮想記憶(Virtual Memory)

プ グ ズ ズ• プログラムサイズ > メインメモリサイズ

– オーバーレイ(overlay)というプログラム細分化オ イ( y) う グラ 細分化

• overlay0を 初に実行し、終了すると、次のoverlayを呼び出す

• 細分化するのはプログラマの仕事

• 仮想記憶の登場仮想記憶の登場

– プログラムサイズがメモリサイズを超えても構わないという点が発想の基本ないという点が発想の基本

29

Page 30: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ページングページング

仮想 ド 仮想 ド 空• 仮想アドレス、仮想アドレス空間

– プログラムから見えるアドレスおよびアドレス空間グラ ら見えるア およびア 空間

• MMU(メモリ管理ユニット:Memory Management Unit)Management Unit)– 仮想アドレスと物理メモリ・アドレスとのマッピング

を う プを行うチップ

CPU

MMUメモリ ディスク・

コントローラ仮想アドレス

物理アドレスバス30

Page 31: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

MMUの動作MMUの動作

• ページとページ・フレームのマップを示すページ表から物理アドレスを提供する

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 仮想アドレス

010 10

プレゼント/アブセント・ビット(マップされているか否か)

ページ番号オフセット

010 1001 1110 1

012 110

000 1100 0

34

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 物理アドレス31

Page 32: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ページフォールト(page fault)ページフォールト(page fault)

• ページ・フレームにマップされていないページをアクセスしようとすること

– CPUはOSにトラップをかける

OSはあるアルゴリズムに従って選んだページ・フ– OSはあるアルゴリズムに従って選んだページ・フレームをスワップアウト(ディスクに退避)する

ペ ジ フ ルトを起こしたペ ジの内容を退避– ページ・フォールトを起こしたページの内容を退避させたページ・フレーム部にロードする

32

Page 33: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ページ表(page table)ページ表(page table)

• 目的は、仮想ページをページ・フレームにマッピングすること

• 問題点

ペ ジ表が極端に大きくなる– ページ表が極端に大きくなる

• ページサイズ4K、32ビット・アドレス空間の場合、100万ペ ジ万ページ

• ページ表はプロセスごとに保持

ピングは高速である必要がある– マッピングは高速である必要がある

• 1命令に数回のメモリアクセスが必要な場合もある

• 改良案として、マルチレベルページ表33

Page 34: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ページ表エントリページ表エントリ

• ページ・フレーム番号

ページ・フレーム番号

プレゼント/アブセント 保護 修正 参照 キャッシング抑制

ジ フレ ム番号• プレゼント/アブセント・ビット

– 1: 物理メモリ上にある、0: 物理メモリ上にない

• 保護ビット– 読み取り、書き込み、実行のアクセス権限を示す

• 修正ビット– ページが編集されると、1

参照ビ ト• 参照ビット– ページが参照されると、1

キャッシング抑制ビット• キャッシング抑制ビット– デバイス・レジスタにマップされているページ用 34

Page 35: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ページ置換アルゴリズムページ置換アルゴリズム

ジ 生時 物• ページフォルト発生時、OSは物理メモリから削除するページを選択しなければならない

– 削除するページが編集されていれば、ディスクに書き戻す書き戻す

• 適ページ置換アルゴリズム

– もっとも次の参照までの時間が長いものを選択する

– 実現不可能

• 現実的かつ有用なアルゴリズムが必要現実的かつ有用なアルゴリズムが必要

35

Page 36: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

LRU今 LRU今後アク

(未知)

時間的局所性セスされ

時間的局所性に基づく考え方

る確率

• アクセス確率の低いページを選びたい

過去のアクセス間隔(既知)

アクセス確率の低いペ ジを選びたい• アクセス間隔の長いページを選べばよい

LRULeast Recently Used

36

Page 37: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

LRUアルゴリズム (1/3)LRUアルゴリズム (1/3)

• LRU(Least Recent Used)

– 長い間使用されていないページは、今後も参照さ長い間使用されていない ジは、今後も参照されない可能性が高い、という考えに基づく

• ページフォルト発生時 も長時間参照され• ページフォルト発生時、 も長時間参照されていないものを選択

• 実現可能な方法は、ハードウェア依存

• ソフトウェアでは 近似解を使用ソフトウェアでは、近似解を使用

37

Page 38: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

LRUアルゴリズム (2/3)LRUアルゴリズム (2/3)

ビ ウ タ を• 64ビットのカウンタCを利用

– 各命令後、インクリメント各命令後、インクリ ン

• ページ表のエントリにCを格納できるフィールドを用意ドを用意

• ページを参照した時点で、現在のCの値をそのページエントリに格納する

• ページエントリのカウンタの値が 小のもの• ページエントリのカウンタの値が 小のものがLRUページ

38

Page 39: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

LRUアルゴリズム (3/3)LRUアルゴリズム (3/3)

行 を使• 行列を使用

– n×n (n: ページフレーム数)( ジ 数)

例) 0123 の順番でアクセスされた場合 (4×4)

0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0

例) 0123 の順番でアクセスされた場合 (4×4)

0 0 0 00 0 0 0

1 0 1 10 0 0 0

1 0 0 11 1 0 1

1 0 0 01 1 0 0

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0

C=0111 C=1011 C=1101 C=1110

行の2進数とみて、 小値の行の番号がLRU

39

Page 40: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第5回第5回

権• シェルとアクセス権

• 標準入出力 フィルタコマンド シェルスクリプ標準入出力、フィルタコマンド、シェルスクリプト、ファイルのバックアップ、アクセス権、ドライブ ディレクトリ ファイル open/read/writeブ、ディレクトリ、ファイル、open/read/write

• ファイルのメモリへのマッピング、アクセス制御、権限、空き領域管理

40

Page 41: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

復習:スレッド復習:スレッド

プ 替• プロセス切り替え

– コスト高高

スレッド• スレッド

– プロセスを分割

– CPUリソースを割り当てる,さらに細かい単位

– 主記憶領域が同じのため 切り替えコスト低主記憶領域が同じのため,切り替えコスト低

41

Page 42: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

復習:割込み復習:割込み

割• 割込み

– 通常のCPU演算動作とは異なる事象通常 演算動作 は異なる事象

• キーボード入力を受け取った

• 自動車がどこかに衝突した自動車がどこかに衝突した

• サーバからデータが送られてきた

– 割込み発生時にプロセスの切り替えが起こる– 割込み発生時にプロセスの切り替えが起こる

– TSSでは、プロセス切り替えのためにインタ バルタイマ が定期的に割込みを発生インターバルタイマーが定期的に割込みを発生

42

Page 43: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

復習:割込みの種類復習:割込みの種類

内部割込み• 内部割込み– スーパバイザコール割込み

– プログラムチェック(例外)割込み

• 外部割込み入出力割込み– 入出力割込み

– タイマ割込み

マシンチ ク割込み– マシンチェック割込み

– リスタート割込み

43

Page 44: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ジ グ 基本スケジューリングの基本

Page 45: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

復習:プロセスの三状態

実行 能 CPUリソースが実行可能(ready)

CPUリソ スが割り当てられた(順番がまわってきた)

CPU以外のリソースを獲得orス パバイザ ル終了スーパバイザコール終了

待ち 実行

割込み

待ち(wait)

実行(running)

スーパバイザコールス パバイザコ ルorCPU以外のリソース喪失 45

Page 46: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

プロセスの状態遷移プロセスの状態遷移

CPUリソースが待ち行列

プロセス

CPUリソ スが割り当てられた(順番がまわってきた)

CPU以外のリソースを獲得orス パバイザ ル終了スーパバイザコール終了

CPU待ち 割込み

スーパバイザコールス パバイザコ ルorCPU以外のリソース喪失 46

Page 47: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スケジューリングスケジューリング

実行プロセスの選択• 実行プロセスの選択– CPUスケジューラが行う

– 対話型処理では,数十~数百回/s• スケジューリングアルゴリズム

– 高速かつ軽量に行う必要• オーバヘッド削減のため

• 基本– 待ち行列の先頭プロセスにCPUリソースを割り当て

• 全待ちプロセスの数に依存しない時間でスケジューリングが可能

47

Page 48: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

プロセスの中断方式プロセスの中断方式

実行プロセスの切り替えにはプロセスの• 実行プロセスの切り替えにはプロセスの中断が必要– 復習:CPU状態(PSWプロセッサステータスワード)の復習:CPU状態(PSWプロセッサステ タスワ ド)のPCB (Process Control Block, Task Control Block)への待避

中断方式• 中断方式– プリエンプション方式

• OSがプロセスから実行権を剥奪• OSがプロセスから実行権を剥奪• UNIX, WindowsXP, MacOS X

– ノンプリエンプション方式プ セ が に実行権を自主的に返還

プロセス暴走時には• プロセスがOSに実行権を自主的に返還• Windows 95, MacOS 9

暴走時 はシステム停止も

48

Page 49: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ジ グ 的スケジューリングの目的

Page 50: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スケジューリングの目的スケジューリングの目的

を効率的 た• リソースを効率的に利用したい

– CPUリソースは時分割により仮想化リソ は時分割 より仮想化

• プロセス切り替えが多発

• 次に実行するプロセスを選択する機会も膨大次に実行するプロセスを選択する機会も膨大

– 切り替えごとにコスト(オーバヘッド)が発生

• スケジューリング次第で全体のオーバヘッドが増減• スケジューリング次第で全体のオーバヘッドが増減

• 効率の悪いスケジューリング=全体の性能低下

• 効率のよいスケジューリングが必要

50

Page 51: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

効率化の指標効率化の指標

応答時間• 応答時間– ある依頼した処理に対して

応答が返ってくるまでに要する時間応答が返ってくるまでに要する時間• 対話処理:レスポンスタイム

– 端末から入力した命令に対しシステムから結果を受け取るまでの時間の時間

• バッチ処理:ターンアラウンドタイム– 投入したジョブに対しシステムから結果を受け取るまでの時間

プ• スループット– ある単位時間においてシステムが処理する仕事量

プ セス切り替えに必要となるオ バ ド等は含まない• プロセス切り替えに必要となるオーバヘッド等は含まない• ユーザにとって意義のある仕事をいかにこなせるか

51

Page 52: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

効率化の指標効率化の指標

応答時間とスル プ トは• 応答時間とスループットはトレードオフになる場合も

例)– 例)• 応答時間向上を追求

対話型処理を優先的に• 対話型処理を優先的に

• TSSのクオンタムを短く

• 切り替え回数増加,切り替えオーバヘッド増加切り替え回数増加,切り替えオ バ ッド増加

• スループット低下

• ユーザの要求やシステムの性質に応じて適切な指標・スケジューリングを用いることが重要

52

Page 53: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなさまざまなスケジューリング方式

Page 54: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ターンアラウンドタイムとレスポンスタイム

タ ンアラウンドタイム• ターンアラウンドタイム

• データの入力の開始から、データ出力が完全、に終了するまでの時間のこと。>レスポンスタイム>レスポンスタイム

• 応答時間ともいう。データ入力の終了から、出力が開始されるまでの時間のことである出力が開始されるまでの時間のことである。

54

Page 55: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

55

Page 56: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

56

Page 57: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

FIFOFIFO

着 ジ グ• 到着順スケジューリング

– FCFS: First Come First Served– FIFO: First In First Out

• 常に待ち行列の先頭から処理常に待ち行列の先頭から処理

– ○単純

• プロセス選択機構も簡単になるし 選択オ バヘッドも小• プロセス選択機構も簡単になるし,選択オーバヘッドも小

– ○公平

追い抜き禁止• 追い抜き禁止

– ×ターンアラウンドタイムは良くない

57

Page 58: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

FIFOの欠点FIFOの欠点• ターンアラウンドタイム

待ち行列

プロセスプロセスプロセスプロセス1s1s1s100s

103s 3s 2s 1s

• レスポンスタイム

待ち行列

プロセスプロセスプロセスプロセス プロセス100s

プロセス1s

プロセス1s

プロセス1s

103s 102s 101s 100s103s 102s 101s 100s

58

Page 59: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スループット(throughput)スループット(throughput)

• 単位時間当たりに処理できる仕事量のことである。 近では、ブロードバンドルーターの性ある。 近 、 ン タ 性能を表す指標としても用いられる。例えばブロードバンドルーターで 90Mbpsと表記されロ ドバンドル タ で、90Mbpsと表記されていれば1秒間に90Mビット処理ができるとい

うことである もちろんこの数値が高いほうがうことである。もちろんこの数値が高いほうがブロードバンドルーターの性能は高い

59

Page 60: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

60

Page 61: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SPTFSPTF

欠点は– FIFOの欠点は,各プロセスの「重さ」を考慮していないのが原因

• 処理時間順スケジューリング

h– SPTF: Shortest Processing Time First– 待ち行列内プロセスを処理時間順でソート

– 亜種;残り処理時間順(SRTF)

61

Page 62: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SPTFSPTF

処 時 短 プ 処• 処理時間の短いプロセスから順に処理

– ○応答時間 短;理想的○応答時間 短;理想的

– ×実装不可能

• 各プロセスの処理時間を事前に知ることはできない• 各プロセスの処理時間を事前に知ることはできない

待ち行列

プロセスプロセスプロセス プロセス5s

プロセス50sプロセス20s

62

Page 63: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SPTFの実装手法SPTFの実装手法

プロセスの処理時間を推定してスケジ リング• プロセスの処理時間を推定してスケジューリング– 経験則(heuristic)から近似的に処理時間を求める

• 対話型処理のプロセス処理時間• 対話型処理のプロセス処理時間

度数数

– ほとんどのプロセスは短時間で終了– 短時間で終了しないプロセスは,なかなか終了しない

処理時間

63

Page 64: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

64

Page 65: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

PSPS

各プロセスに優先度を付加• 各プロセスに優先度を付加– 静的優先度:プロセス生成時に指定した優先度を使用

例) プロセスの種類ごとに優先度を規定• 例)・プロセスの種類ごとに優先度を規定リアルタイムプロセス > OS > 対話型 > バッチ

– 動的優先度:プロセス実行中に優先度を適宜変化• 例)・既実行時間に応じて優先度を変化

・入出力操作直後のプロセスの優先度を高く

– ○優先度を適切に設定できれば非常に有効

– ×高負荷時,優先度の低いプロセスがなかなか実行権を獲得できない(starvation)• 待ち時間に応じた優先度変化(aging)などで対処

65

Page 66: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

66

Page 67: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

RRRR• TSSで用いられる方式

CPU待ち行列

プロセスプロセスプロセス

プリエンプション

待ち行列から選択されたプロセスに 微少な

プロセスプロセスプロセス

– 待ち行列から選択されたプロセスに,微少なCPU利用時間(クオンタム)を割り当て

• クオンタム– クオンタム≒無限大:RR = FIFO– クオンタム=極小 :処理時間の短いプロセス有利

67

Page 68: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

さまざまなスケジューリング方式さまざまなスケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重レベルフィードバック

68

Page 69: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

MLFMLF• Multi‐Level Feedback

– 優先度別に待ち行列を用意

– プロセスは,クオンタムを得るごとに

CPUより優先度の低い待ち行列に移される

プロセスプロセスプロセス

優先度度

低 69

Page 70: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

MLFMLF

• Multi‐Level Feedback– 複数のクオンタムを必要とするようなプロセス複数 クオンタ を必要 するような

(すなわち長い時間がかかるプロセス)は,どんどん優先度が下がってゆく, 優先度 下 ゆく

– SPTFの良い近似になっている

70

Page 71: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

スケジューリングアルゴリズムの実スケジュ リングアルゴリズムの実行例

Page 72: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

FIFOの例プ セス 処理時間 [ ] 到着時刻 [ ]プロセス 処理時間 [s] 到着時刻 [s]

A 10 0B 20 2C 5 6

10s

t=2 t=6 t=10 t=30 t=35

28s=(10-2)+20

29s=4(Aに対する待ち)+20(Bに対する待ち)+5(自身の処理時間)

Page 73: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SPTFの例プ セス 処理時間 [ ] 到着時刻 [ ]

SPTF: Shortest Processing Time First

プロセス 処理時間 [s] 到着時刻 [s]A 10 0B 20 2C 5 6

10s

t=2 t=6 t=10 t=15 t=35

33s=(10-2)(Aの処理待)+5(Cの処理待ち)+20(自身の処理)

9s

Page 74: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

RRの例プ セス 処理時間 [ ] 到着時刻 [ ]プロセス 処理時間 [s] 到着時刻 [s]

A 10 0B 20 2C 5 6

23s 10=2*(1/1)+4*(1/2)+x*(1/3)+y*(1/2)

t=2 t=6 t=20 t=23 t=35

33s

15s ?*(1/3)=5

Page 75: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

お るUNIXにおけるスケジュ リングスケジューリング

Page 76: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

実際 体的実装例• 実際のOS (UNIX) の具体的実装例

• UNIX SystemV– Solaris– AIX– HP‐UX

• Linux 2.6

76

Page 77: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

UNIX SysVUNIX SysV

多重レベルフィ ドバックがベ ス• 多重レベルフィードバックがベース

相違点• 相違点– 実行の終わったプロセスは,同じ優先度の待ち行列

にに再登録

– スーパバイザモードで実行されるプロセスは,イザ 実行される は,そのプリエンプションの原因から優先度を決定

– ユーザモードで実行されるプロセスは,以下で決定静的優先度• 静的優先度

• 動的優先度(過去のCPUリソースの割当状況から計算)• NICE値(ユーザが指定する優先度)NICE値( ザが指定する優先度)

77

Page 78: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SysVのスケジューリングy高

0これらの

込不可

プロセスの実行中は割り込み禁止

優優先度 例)ディスク入出力待ち

他のリソースを確保している可能性が高く,早く実行してやらないと他プロセスを足止めする。

128

78

Page 79: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SysVのスケジューリングy高 0 ■ ユーザモード優先度

P USER P_USER+ NICE+ P CPU

_

優先度

P_USER基準値 (=60)基準値 (=60)

NICEユーザ指定優先度128 ユーザ指定優先度

P_CPU動的優先度

低動的優先度

79

Page 80: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SysVのスケジューリングy高 0 ■ P_USER

ユーザモードプロセ ユ ザモ ドプロセスの基準値必ずこの値よりも優

ス|パ

必ずこの値よりも優先度が低くなる

パバイザ

優先度

スーパバイザモードプロセスとの境界60

128 通常 60ユ

|ザ

80

Page 81: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

SysVのスケジューリングy高 0 ■ NICE

ユーザが指定する ユ ザが指定する優先度ユーザは実⾏するプ

ユーザは実⾏するプロセスの優先度を下げることができる

優先度

げることができる (基本的には)上げ

ることはできないることはできない60

128

81

Page 82: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Linux 2 6 のスケジューリングLinux 2.6 のスケジューリングactive expired

CPU

優先度度

82

Page 83: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Linux 2 6 のスケジューリングLinux 2.6 のスケジューリングactive expired

CPU

優先度度

クオンタムが残っている:←activeへクオンタムを使い切った:クオンタ を使 切 たexpiredへ→

83

Page 84: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Linux 2 6 のスケジューリングLinux 2.6 のスケジューリングactive expiredactiveexpired

CPU

優先度度

84

Page 85: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

85

Page 86: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

86

Page 87: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

87

Page 88: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

88

Page 89: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

89

Page 90: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

90

Page 91: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

演習演習

91

Page 92: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

演習

92

Page 93: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

まとめ:スケジューリング方式まとめ:スケジューリング方式

FIFO (Fi t I Fi t O t)• FIFO (First In First Out)– 到着順スケジューリング,FCFSSPTF (Sh t t P i Ti Fi t)• SPTF (Shortest Processing Time First)– 処理時間順スケジューリング

PS (P i it S h d li )• PS (Priority Scheduling)– 優先度順スケジューリング

RR (R d R bi )• RR (Round Robin)– ラウンドロビン

MLF (M lti L l F db k)• MLF (Multi‐Level Feedback)– 多重フィードバック

93

Page 94: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

まとめ:処理時間順まとめ:処理時間順

処 時 ジ グ• 処理時間順スケジューリング

– 理論上,応答時間を 小にできる理論 ,応答時間を 小 きる

– 実装が不可能

• 近似により処理時間順を実現

– 多重レベルフィードバック

94

Page 95: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

まとめ:プロセス優先度まとめ:プロセス優先度

静的優先度• 静的優先度

– プロセス生成時に決定成時 決定

• 動的優先度

実行中に変化– 実行中に変化

• 優先度スケジューリング

優先度の低いプロセスがstarvationに陥る可能性– 優先度の低いプロセスがstarvationに陥る可能性

– aging等で解決

95

Page 96: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

第5回第5回

権• シェルとアクセス権

• 標準入出力 フィルタコマンド シェルスクリプ標準入出力、フィルタコマンド、シェルスクリプト、ファイルのバックアップ、アクセス権、ドライブ ディレクトリ ファイル open/read/writeブ、ディレクトリ、ファイル、open/read/write

• ファイルのメモリへのマッピング、アクセス制御、権限、空き領域管理

96

Page 97: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルのジョブの状態

• フォアグラウンド

– 直接端末から入出力を行える状態.

• バックグラウンド

フォアグラウンドジョブの裏で同時に実行している状態– フォアグラウンドジョブの裏で同時に実行している状態

中断• 中断

– 実行中に一時停止された状態

• 終了

97– 終了した、または終了させられた状態

Page 98: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

バックグラウンドジョブバックグラウンドジョブ

• プロンプトの裏で実行されているジョブ– 起動時に & を付ける起動時に & を付ける

通常:% /a out が終了するまで次の

バックグラウンド: 

%  ./a.out a.out が終了するまで次のコマンドは実行不可

%  ./a.out  &%  a.out の実行中も次のコマンドを

実行可能

注意:ログアウトしてもバックグラウンドジョブが残ることがあるので

98

ログアウトしてもバックグラウンドジョブが残ることがあるので、全てのバックグラウンドジョブを終了させてからログアウトする

Page 99: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ジョブの状態の切り替え

フォアグラウンドォ グラウ

C‐cfg %ジョブ番号

C‐zfg %ジョブ番号

バックグラウンド 中断

C c

bg %ジョブ番号

fg %ジョブ番号

kill –KILL %ジョブ番号kill –KILL %ジョブ番号

終了

99

Page 100: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ジョブ管理のコマンド キー操作ジョブ管理のコマンド、キー操作• コマンド

fg %番号 中断やバックグラウンドのジョブを再開bg %番号 中断状態のジョブをバックグラウンド

で再開

kill KILL %番号 指定した番号のジョブを強制終了kill –KILL %番号 指定した番号のジョブを強制終了jobs      バックグラウンドで実行中のジョブ,

及び中断状態のジョブを表示及び中断状態のジョブを表示

fg と bg で %番号 を省略すると,jobsコマンドで + がついたジョブが対象

• キー操作

グ ドジ ブを100

C‐z フォアグラウンドジョブを中断C‐c フォアグラウンドジョブを強制終了

Page 101: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ジョブ管理:使用例ジョブ管理 使用例

• 一旦起動したプログラムをバックグラウンドに変更%  ./hello

C‐z[1]  + 19277 Suspended             ./hello

Ctrlキーを押しながら z

%  bg[1]    ./hello &% 

• 不要なジョブを強制終了

%  jobs[1]    Running                       ./hello[2] + Running /a out[2]  + Running                       ./a.out[3]  ‐ Running                       emacs%  kill  –KILL  %2%

101

Page 102: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルに関する操作ファイルに関する操作

イ 関する操作• ファイルに関する操作

– アクセス権の設定

– ファイルの取りまとめ、圧縮

– ファイルの探索

– ファイル内の文字列探索

102

Page 103: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルのアクセス権ファイルのアクセス権

ご 権を指定 能• ファイルごとにアクセス権を指定可能

ユーザ ユーザA

ユ ザB

見える見える

見えない

見える見える

見える

file1 file2

103

Page 104: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルのアクセス権ファイルのアクセス権

• 各ファイルについて- ユーザのカテゴリ毎に- アクセス権を

設定可能

ユーザのカテゴリ アクセス権

•読み出し権

•書き込み権

•ファイルの所有者

•同じグループ •書き込み権

•実行権

•同じグル プ

•それ以外

104

Page 105: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルのアクセス権表示 ls ‐l

実行例

このファイルの所有者

イ 所属グ プ• 実行例% ls –l hello.txt

1 79999 989 M 22 19 26 h ll t t

このファイルの所属グループ

‐rw‐‐‐‐‐‐‐ 1 a79999a   usr 989 May 22 19:26 hello.txt

所有者のアクセス権

同じグループのユーザのアクセス権

アクセス権の表記

r 読出し権

それ以外のユーザのアクセス権

r 読出し権w 書込み権x 実行権

- 通常ファイルデ レクトリ

ファイルの種類

105

d ディレクトリ

Page 106: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

アクセス権の変更chmod

方法• 利用方法

chmod     アクセス権を変更するファイル

変更するカテゴリ所有者

変更するアクセス権読み出し権

権利の与奪+ 権利を与えるu  所有者

g  同じグループの利用者o  それ以外の利用者a 全ての利用者

r 読み出し権w  書き込み権x  実行権

+ 権利を与える

‐ 権利を与えない

a  全ての利用者

一つ以上指定 一つ以上指定どちらか一つ指定

106

Page 107: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

アクセス権の変更chmod

• 利用例利用例– 例1) ファイルの所有者に実行権を与える

% chmod u+x hello.txt

– 例2) 同じグループのユーザーに読み出し権と書き込み権を与える

%  chmod u+x hello.txt

書き込み権を与える

%  chmod g+rw hello.txt

– 例3) 所有者以外の全てのアクセスを禁止

%  chmod go‐rwx hello.txt

– 例4) ディレクトリ全体のアクセス権を変更

g

107

%  chmod ‐R go‐rwx work

Page 108: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ディレクトリのアクセス権ディレクトリのアクセス権

• ファイルのアクセス権とディレクトリのファイルのアクセス権とディレクトリのアクセス権は少し意味が異なる.– 読み出し権:読み出し権:

そのディレクトリにあるファイルの名前を閲覧する権利

– 書き込み権:そのディレクトリでファイルの削除や新規作成をする権

利利

– 実行権:– 実行権:そのディレクトリに移動する権利.ただし,実行権が無ければ閲覧もファイルの

108

編集・削除・新規作成も出来ない.

Page 109: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

アクセス権アクセス権

フ イルとデ レクトリのアクセス権の操作• ファイルとディレクトリのアクセス権の操作– 読み出し権

– 書き込み権

– 実行権実行権

109

Page 110: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルのとりまとめと圧縮

• 多数のファイルを保管したり他の計算機に転送するときするとき,

一つのファイルにまとめて,圧縮(サイズを小さく)すると便利すると便利.

たくさんのファイルやディレクトリ

まとめる 圧縮

ィ リ

保管, 転送

110

Page 111: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの取りまとめと展開tar

複数 を ま る• 複数のファイルを一つにまとめる

– 本来はテープに保存する(tape archive)コマンド本来はテ 保存する( p ) ン

複数のフ イル つのフ イル複数のファイル、ディレクトリ

一つのファイル

ディレクトリ

tar ファイル

ディレクトリ ディレクトリディレクトリfile1file2file3

tar

111

file1 file4file2 file3 file4

Page 112: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの取りまとめと展開tar• 利用法

tar file1 file2 ...処理内容 どれか一つ処 容c 1つのファイルにまとめるt まとめられたファイルの内容表示x まとめられたファイルの展開

どれか つ

表示に関する指示v 詳細情報表示

オプション

(処理内容で表示が異なる)c の場合:まとめられる各ファイル名t の場合:まとめられたファイルの

ズサイズなどの詳細情報x の場合:展開される各ファイル名

対象の取りまとめファイル 必ず指示

112

対象の取りまとめファイルf ファイル名ファイル名が ‐ の場合は標準入出力

必ず指示

Page 113: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルのとりまとめと展開tar

• 利用例– 例1) カレントディレクトリの work と tmp ディレクトリを

test.tar というファイルにまとめる.

ファイル名の末尾を .tar としておくと tar でまとめたファイルであることが分か て便利です

%  tar cf test.tar work tmp

であることが分かって便利です.

– 例2) test.tar の中身を表示(詳細情報も表示)(詳細情報も表示)

– 例3) test.tar を元の形に展開

%  tar tvf test.tar例3) test.tar を元の形に展開

(展開される各ファイルも表示)

%  tar xvf test.tar

113

Page 114: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

tar でディレクトリをまとめるときの注意

• ディレクトリは相対パスで指定した方が良い%  tar cvf test.tar test

– 任意の位置に展開することができる→ バックアップや他の計算機での利用が容易→ バックアップや他の計算機での利用が容易

もし絶対パスで指定した場合– もし絶対パスで指定した場合

全く同じ絶対パスにしか展開できない

%  tar cvf test.tar /home/user3/k70043a/test

全く同じ絶対パスにしか展開できない。

114

Page 115: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの圧縮 解凍ファイルの圧縮, 解凍

縮 中 な部分を削• 圧縮:ファイル中の冗長な部分を削ってサイズを小さくする.

• 解凍:削られた冗長部分を補って元のファイルに戻す元のファイルに戻す.

縮ファイル

圧縮

解凍

ファイルファイル

解凍

115

Page 116: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの圧縮,解凍gzip 

利用法 圧縮• 利用法: 圧縮

圧縮結果は 元のフ イル名の末尾に が

gzip  圧縮するファイル名

– 圧縮結果は,元のファイル名の末尾に .gz が付いたファイルに格納される.

– 例) hello.txt を圧縮する.( hello.txt.gz が作成される.)例) e o t t を圧縮する ( e o t t g が作成される )

利用法 解凍

%  gzip hello.txt

• 利用法: 解凍

例) h ll t t を解凍する (h ll t t が作成される )

gzip ‐d  解凍するファイル名

– 例) hello.txt.gz を解凍する.(hello.txt が作成される.)

%  gzip –d hello.txt.gz

116注意: 圧縮,解凍コマンド実行後,元のファイルは消える

Page 117: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

圧縮するファイルの選択圧縮するファイルの選択

を 縮する 点• ファイルを圧縮する利点

– ファイルの転送が速いァイル 転送 速

– ディスクを有効に利用できる

• 不便な点

– 通常、使用する前に復元(解凍)が必要

通常,他の計算機に転送するファイルやしばらく利用しないフ イルを圧縮する

117

しばらく利用しないファイルを圧縮する

Page 118: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

tar と gzip を組み合わせると効果的tar と gzip を組み合わせると効果的

SRCSRC/ SRC

file1

SRC.tar SRC.tar.gz

file1

SRC file1file2file3

file2file3file4

file2 file3 file4file1 file3file4

tar cvf SRC.tar SRCSRC.tar ファイル

gzip SRC.tarSRC.tar.gzファイル

ができる ができる

tar cvf ‐ SRC | gzip > SRC.tar.gz

118

tar cvf  SRC | gzip > SRC.tar.gz一度に実行

Page 119: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

取りまとめて圧縮されたファイルの復元復元SRC tar SRC tar gz

SRCSRC/file1

SRCfile1file2

SRC.tar SRC.tar.gz

file1

file1file2file3

file3file4

file2 file3 file4

tar xvf SRC.tar gzip ‐d SRC.tar.gzfile4

SRCディレクトリ以下が展開される

SRC.tarファイルができる

gzip –dc SRC.tar.gz | tar xvf ‐一度に実行

119gzip –dc ファイル名

解凍結果を標準出力に出力

Page 120: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの探索ファイルの探索

デ が増 くる• ファイルやディレクトリが増えてくると,目的のファイルがどこにあるかわからなくなっ目的 ァイ ある わ らなくなてくる.→ 探索コマンド find→ 探索コマンド find

120

Page 121: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの探索find

法• 利用法

find 探索開始ディレクトリ –name 名前 探索後の処理

– 探索開始ディレクトリは絶対パス,相対パスどちらで指定してもよい

find  探索開始ディレクトリ –name 名前 探索後の処理

で指定してもよい.– 主な”探索後の処理”:

i t 見つか たフ イルを表示‐print 見つかったファイルを表示‐exec 見つかったファイルに対して

マンドを実行コマンドを実行

121

Page 122: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルの探索find

• 利用例– 例1) work ディレクトリ以下から proj1.f90 を

探し 表探して表示

% find work –name proj1.f90 ‐print

– 例2) ホームディレクトリ以下から末尾が~であるファイルを探して削除

• コマンドには,見つかったファイル名を {} で指定する.

% find ~ ‐name '*~' –exec rm –i {} ¥;

• コマンドの末尾は”空白を一つ以上置いて” ¥;

122

Page 123: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

文字列の探索文字列の探索

• ファイル内から特定の文字列を含む行を探して表示する.

プログラムのデバ グなどに利用• プログラムのデバッグなどに利用

123

Page 124: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

文字列の探索grep

• 利用法

grep オプション 検索文字列 ファイル

– 主なオプション‐i 大文字小文字を区別しない

grep  オプション 検索文字列 ファイル

‐n 行番号も表示する

‐l 指定した文字列を含むフ イルの名前だけを表示するファイルの名前だけを表示する(複数のファイルを指定した場合に利用)

‐v 指定した文字列を含まない行を表示する.v 指定した文字列を含まない行を表示する.

124

Page 125: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

文字列の探索grep

• 利用例– 例1) ファイル test.c から total という文字列

を含む行を探索するを含む行を探索する.

%  grep –i total test.c

– 例2) ファイル名の末尾が .f90 のファイルから,!を含まない行を探索する!を含まない行を探索する.

直前

%  grep –v '¥!' *.f90

• ! のような特殊記号は '¥!' のように直前に¥を付け, さらにファイル名を' で囲んで指定する.

125

Page 126: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルスクリプトシェルスクリプト

連 ドを イ 列挙 括 実行• 一連のコマンドをファイルに列挙し一括して実行

– 条件分岐,繰り返しなども利用可能

• 用途:

– 何度も行う決まった処理

– 複雑な処理

バ チジ ブとして投入する処理– バッチジョブとして投入する処理

126

Page 127: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルスクリプトシェルスクリプト

利用法• 利用法

カレントデ レクトリにある場合は

スクリプトファイルのパス オプション

– カレントディレクトリにある場合は./ を忘れない.

– 引数を受け付けるかどうかは,シェルスクリプトの内容による.

– コマンドとして実行する前にchmod で実行権限を与えておく.実行権限を

%  chmod u+x スクリプトファイル名

127

Page 128: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルスクリプトの例1シェルスクリプトの例1

• workディレクトリに移動し,test f90 をコンパイルして実行するtest.f90 をコンパイルして実行する.– バッチジョブのスクリプト

#!/bin/cshcd  workfrt  test.f90  ‐o test./test

128

Page 129: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルスクリプトの例2• 引数に指定されたファイルが存在すれば,

そのファイルで member という文字列を探索する.

– 引数は $数字 で指示する.例) $1 : 1番目の引数.

– ファイルが存在するか否かの判定if (‐f ファイル名)

– メッセージの出力メッセ ジの出力echo メッセージ

#!/bin/cshif  (‐f  $1) thengrep 'member' $1grep  member   $1

elseecho  "$1 doesn't exist."

endif

129

endif

Page 130: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

シェルスクリプトの例3• カレントディレクトリにある,

ファイル名の末尾が .c であるファイルに対し,ファイル名の末尾にさらに .old を付ける.ファイル名の末尾にさらに を付ける

– 繰り返しはforeach 変数 ( 変数のとる値 )

から d までから end まで.

– ここでは変数のとる値として *.c 、すなわちカレントディレクトリにある、ファイル名の末尾が .c のファイルの名前を指定している.

– 条件を満たすファイル名について 順に繰り返しの中を実行する条件を満たすファイル名について,順に繰り返しの中を実行する.

– 変数の中身は ${変数}で参照.

#!/bin/cshforeach  cfile  ( *.c )

mv  ${cfile}  ${cfile}.oldecho  ${cfile}  ${cfile}.olddend

130

Page 131: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

分割コンパイルの支援分割コンパイルの支援

分割 パ• 分割コンパイル

– 一つのプログラムを複数のファイルに分割グラ を複数 ァイル 分割→ 大規模なプログラムの管理が容易

– 一部のファイルに修正を施した後,再度全部をコンパイルするのは無駄再度全部をコンパイルするのは無駄.→ 修正を行ったファイルのみコンパイル

131

Page 132: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

分割コンパイルの支援make

• ファイルの依存関係を元に必要なコンパイルだけを行う仕組み.

コンパイルのコマンドは計算機によって異なる– コンパイルのコマンドは計算機によって異なる

file1.f90 file1.of90 ‐c cc

file2.f90 file2.of90 ‐c

program

file3.c file3.occ ‐c

make• ファイルの依存関係は Makefile というファイルに

記述.

make

132

Page 133: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Makefileの例• FortranとC言語の混成プログラムFortranとC言語の混成プログラム.• コンパイル以外のターゲットも作成可能

例)clean: 途中でできた不要ファイルを削除– clean:  途中でできた不要ファイルを削除

– backup: 必要なファイルをまとめて圧縮

all: programprogram: file1.o file2.o file3.o

cc o program file1 o file2 o file3 occ ‐o program file1.o file2.o file3.ofile1.o: file1.f90

f90 ‐c file1.f90file2 o: file2 f90file2.o: file2.f90

f90 ‐c file2.f90file3.o: file3.c

cc ‐c file3.ccc  c file3.cclean:

rm ‐f file1.o file2.o file3.o *~backup: files.tar.gz

133

p gfiles.tar.gz: file1.f90 file2.f90 file3.c

tar ‐cf ‐ file1.f90 file2.f90 file3.c | gzip > files.tar.gz

Page 134: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Makefileの書き方Makefileの書き方

基本形• 基本形

ターゲット: ターゲット作成に必要なファイルアクシ ンTAB

– ターゲット: 目的

• ファイル もしくは単なる名前

アクションTAB

• ファイル,もしくは単なる名前

– ターゲット作成に必要なファイル名:

• 複数指定可

– アクション:

• ターゲットを作成するスクリプト

複数行にまたが ても可• 複数行にまたがっても可

• 行の先頭は必ず TAB

134

Page 135: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

分割コンパイルの支援make

法• 利用法

make ターゲット

– ターゲット: 何を生成するか→Makefileに記述されているものを指定する

make タ ゲット

→Makefileに記述されているものを指定する.– 何もターゲットが指定されない場合,

ll が指定されたものとして実行されるall が指定されたものとして実行される.

135

Page 136: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルシステムAPIとファイルシステムAPIとメモリマップドファイルリ ッ ァイ

136

Page 137: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルシステムの役割(1)ファイルシステムの役割(1)

様 な種類 次 憶装• 様々な種類の2次記憶装置へ,– 簡便で簡便

– 効率的で

安全で– 安全で

– 統一的な(装置によらない)

読み書き手段を提供する

137

Page 138: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

ファイルシステムの役割(2)ファイルシステムの役割(2)

電 を も われな 情報 ど• 電源を切っても失われない情報の(ほとんど唯一の)格納場所)– メモリの内容は電源を切ると失われる

• プロセス間で情報を共有する自然な場所• プロセス間で情報を共有する自然な場所

– プロセス間でメモリは分離されていた

メモリ メモリ メモリ

ファイル138

Page 139: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

OSがない状態での2次記憶OSがない状態での2次記憶

例 ドデ• 例: ハードディスク

– 固定サイズの「ブロック」の集合(典型: 512B, 1KB)固定サイ ック」 集合(典型 , )– ブロックのアドレス: (シリンダ, トラック, セクタ)

読み書きのインタフェ ス– 読み書きのインタフェース

• I/Oコマンド発行

終了通知の割り込み• 終了通知の割り込み

139

Page 140: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

基本的な抽象化: ファイル基本的な抽象化: ファイル

• ファイル名(パス名)ややこしいアドレスではなく自由な文字列– ややこしいアドレスではなく自由な文字列

• バイト配列としてファイルの簡便な読み書き– ファイル名, オフセット 記憶場所

– キャッシュを用いた効率的アクセス

• ファイルの作成,伸長空き領域確保– 空き領域確保

• ファイルの所有者,読み書き権限(来週以降)

140

Page 141: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

API : 基本概念API : 基本概念

く• 開く(open)– 権限の検査,以後の読み書き準備権限 検査,以後 読み書き準備

• 逐次的な読み書き(read/write)位置あわせ 頭出し• 位置あわせ(seek; 頭出し)

• メモリマップドファイル(後述)メモリマップドファイル(後述)• 閉じる(close)

openr/w seek

141

Page 142: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Unix APIUnix API 

• int fd = open(path, access);• intm = read(fd, buf, n);int m  read(fd, buf, n);• int m = write(fd, buf, n);• off_t o’ = lseek(fd, o, from);• int err = close(fd);int err = close(fd);

142

Page 143: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

Windows APIWindows API

• HANDLE h = CreateFile(path, access, …);• BOOL ok = ReadFile(h, buf, n, &m, …);• BOOL ok = WriteFile(h buf n &m );BOOL ok = WriteFile(h, buf, n, &m, …);• DWORD o’ = SetFilePointer(h, o1, &o2, from);• BOOL ok = CloseHandle(h);

143

Page 144: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

C言語の標準ライブラリAPI (1)C言語の標準ライブラリAPI (1)

• FILE * fp = fopen(path, mode);• size t sz’ = fread(buf, sz, n, fp);size_t sz    fread(buf, sz, n, fp);• size_t sz’ = fwrite(buf, sz, n, fp);• int fseek(fp, o, from);• int c = fgetc(fp);int c = fgetc(fp); • int c’ = fputc(c, fp);

144

Page 145: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

C言語の標準ライブラリAPI (2)C言語の標準ライブラリAPI (2)

• char * s’ = fgets(s, sz, fp); • int ok = fputs(s, fp);int ok  fputs(s, fp);• fscanf(fp, “%d”, &x); /* 例 */• fprintf(fp, “%d”, x);   /* 例 */• int err = fclose(fp);int err = fclose(fp);

145

Page 146: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

open/read/write系とfopen/fread/fwrite系の関係

系 シ ム• open/read/write系: システムコール

• fopen/fread/fwrite系: (結局はopen etc.を呼び出す)ライブラリ

– 違い1: 書式付入出力(fprintf, fscanf)など高機能なIOのサpポート

– 違い2: バッファリングを行う

• 複数回のfwriteをメモリ上に保持して一度のwriteシステムコールで書き込む

• 一度のreadシステムコールで大量に読み込んで以降の複数回のfreadに答える

146

Page 147: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

バッファリングバッファリング

f itf itf itf itf it fwritefwrite

fwritefwrite

fwritefwritefwrite

writewrite147

Page 148: Operating System 5 - CPS Lab...Operating System 5 岩井将行 5/12 1 第1回 • ハードウエアとOS • CPUとデバイス、割り込み、記憶装置、ハとデバイス、割り込み、記憶装置、ハ

お断りお断り

本授業資料の作成にあたり• 本授業資料の作成にあたり

• 慶應大学SFC IPL/ITB 岩井クラス

• 戸辺義人先生戸辺義人先生

• 田浦健次朗先生

• 降旗 大介先生

• 松尾啓志先生

• 九州大学情報基盤研究開発センター

• Wikipediaなどの資料を参考にさせていただいています。

• ありがとうございます。ありがとうございます。

148