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

Microsoft PowerPoint os5.pptx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint os5.pptx"

Copied!
148
0
0

読み込み中.... (全文を見る)

全文

(1)

Operating System

Operating System

5

5

岩井将行 岩井将行 5/12

(2)

第1回

第1回

ドウ • ハードウエアとOSCPUとデバイス、割り込み、記憶装置、ハードCPUとデバイス、割り込み、記憶装置、ハ ド ディスク装置、RAID、パリティ ドとプ セ メ リ ド 空間 • スレッドとプロセス、メモリアドレス空間、ファ イルシステム、NIC、ソケット、カーネル

(3)

第2回

第2回

CUI • タイピング ログイン コマンド操作 マニュアタイピング,ログイン,コマンド操作,マニュア ル, シェル フ イル操作 デ タ • ファイル操作,エディタ

(4)

第3回

第3回

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

(5)

第4回

第4回

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

(6)

第5回

第5回

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

(7)

第6回

第6回

ネ • ネットワークとOSethernet,ping,socket,tcp/udp,rpc,apach,http,sethernet,ping,socket,tcp/udp,rpc,apach,http,s sh,ftp,remotewindow 最新の 事情 • 最新のOS事情

(8)

第7回

第7回

試験

(9)
(10)

2回目のこり

2回目のこり

ドウ • ハードウエアとOSCPUとデバイス、割り込み、記憶装置、ハードCPUとデバイス、割り込み、記憶装置、ハ ド ディスク装置、RAID、パリティ ドとプ セ メ リ ド 空間 • スレッドとプロセス、メモリアドレス空間、ファ イルシステム、NIC、ソケット、カーネル

(11)

第3回

第3回

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

(12)

プロセスの状態

プロセスの状態

「実行 能なプ • 「実行可能なプロセス」とは? • プロセスの状態プロセスの状態 実行中? yes no 実行中? 実行 CPUが空き次第実行できる? no yes

(13)

プロセスの状態

プロセスの状態

実行状態( ) • 実行状態(running) – プロセスを実行している状態 – リソースは,そのプロセスのために確保されている • 実行可能状態(実行可能状態(ready)ready) – 実行できるが、CPUリソースが確保できていない状態 CPUリソ スを確保した時点で実行開始される – CPUリソースを確保した時点で実行開始される • 待ち状態(wait) – CPU以外のリソースも確保できていない状態 – 入力待ちなどもこれに含まれる待 含

(14)

状態遷移

実行 能 CPUリソースが 実行可能 (ready) CPUリソ スが 割り当てられた (順番がまわってきた) CPU以外のリソースを獲得 or ス パバイザ ル終了 スーパバイザコール終了 待ち 実行 割込み 待ち (wait) 実行 (running)

(15)

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

オペレ ティングシステム

第4回

第 回

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

(16)

RAM(Random Access Memory)

RAM(Random Access Memory)

通電中 もデ タを読 書き 能 • RAMは、通電中でもデータを読み書き可能で、 電源を切ると記憶内容が失われる揮発性の 電源を切る 記憶内容 失われる揮発性 半導体メモリー • SRAM(Static RAM;スタティックラム) • DRAM(Dynamic RAM;ダイナミックラム)

(17)

SRAM

SRAM

• SRAMはフィリップフロップ回路で構成された利用 した半導体メモリーで DRAMはコンデンサーを した半導体メモリ で、DRAMはコンデンサ を 利用した半導体メモリー。 • フリップフロップ回路は、自己保持回路ともいわ れる。論理回路で構成される。コンデンサーは電 れる。論理回路で構成される。コンデンサ は電 気を蓄えておく部品のことである。 • SRAMは、フィリップフロップ回路で構成され、 DRAMはコンデンサーで構成されるということを 覚えて欲しい。

(18)

SRAM

SRAM

論理回路ではなく ンデンサ(キ パシタともDRAM 論理回路ではなく、コンデンサ(キャパシタとも 言われる)の充電状態を使用した記憶方式 SRAMはDRAMと比較した場合 コンデンサの自然放 • SRAMはDRAMと比較した場合、コンデンサの自然放 電によるデータ消失を防ぐための定期的なリフレッ シュ動作(再書き込み)を与える必要がない シュ動作(再書き込み)を与える必要がない。 – 記憶領域へのシンプルかつ高速なアクセスが可能である。 ただし、1bitあたりのトランジスタ数やその配線がDRAMと 比べ複雑になるため、bitあたりのコストは高くなる。 • 比較的小容量であっても高速性が求められる揮発性 領域( のレジスタや キ シ メ リ) RAM領域(CPUのレジスタや、キャッシュメモリ)

(19)

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/

(20)

DARMとSRAM

DARMとSRAM

記憶容 量 アクセス 速度 リフレッ シュ 価格 用途 回路 DRAM 大きい 遅い 必要 安い 主記憶 コンデンサー S 小さい 速い 不要 高い キャッ シ メ フィリップフロッ SRAM 小さい 速い 不要 高い シュメモ リ フィリップフロッ プ

(21)

メモリ実効速度

メモリ実効速度

• 実効速度=(キャッシュメモリの速度×ヒット率)+ (主記憶の速度×(1-ヒット率)) • ヒット率は、CPUが必要とするデータがキャッシュメモ リー上に存在する確率 • NFPは、CPUが必要とするデータがキャッシュメモNFPは、CPUが必要とするデ タがキャッシュメモ リー上に存在しない確率である。

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

(22)

メモリ実効速度問題

メモリ実効速度問題

• あるプロセッサが主記憶装置及びキャッシュ ぞ メモリにアクセスするとき,それぞれのアクセス 時間は60ナノ秒及び10ナノ秒である。アクセ スするデータがキャッシュメモリに存在する確 率が80%の場合 このプロセッサの平均アクセ 率が80%の場合,このプロセッサの平均アクセ ス時間は何ナノ秒か。 • 10ns*0.8+60ns*(1‐0.8)=8ns+12ns=20ns

(23)

メモリ管理

メモリ管理

(24)

メモリ管理

メモリ管理

ネ ジ • メモリ・マネージャ – メモリのどの部分が使用中でどの部分がフリーメモリのどの部分が使用中でどの部分がフリ か – プロセスが要求するメモリを割り当て 使用後に – プロセスが要求するメモリを割り当て、使用後に 解放 メインメモリとディスク間のスワッピングの管理 – メインメモリとディスク間のスワッピングの管理 • メモリ管理システム – スワッピング・ページングを使用しない方式

(25)

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

グラミング)

• 再配置(relocationの問題) バイナリ ファイル 100番地 0番地 メモリに 配置 100K+100番地 • 保護(protection)の問題 0番地 0 100K 保護(protection)の問題 ユーザ2のプログラム ユーザ1のプログラム アクセス

(26)

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

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

ベ ジ タ ジ タを使 • ベースレジスタとリミットレジスタを使用 – プログラムロード時にパーティションの先頭がプ グラム ド時にパ ティションの先頭が ベースレジスタへ、パーティションの終わりがリ ミットレジスタへセットされるッ ジ タ ッ される 300K リミットレジスタ リ CALL 100 100 + 100K(ベースレジスタの値)

(27)

スワッピング

スワッピング

プ 全体を 時的 デ 避 • プロセス全体を一時的にディスクに退避 例 例 B B B B C C C C C A A A B B B B E A A A D D D OS OS OS OS OS OS OS Aがスワップアウト 時間 27

(28)

スワップ領域の割り当て

スワップ領域の割り当て

プ領域 • スワップ領域 – メインメモリに入りきらないものを退避させるためメインメモリに入りきらないものを退避させるため の、ディスク上の領域 • スワップ領域割り当てのアルゴリズム • スワップ領域割り当てのアルゴリズム – メインメモリ管理と同様のアルゴリズム プ ご 割 • スワップアウトごとに割り当てる – 〃 と異なるアルゴリズム • プロセス生成時に割り当てる

(29)

仮想記憶(Virtual Memory)

仮想記憶(Virtual Memory)

プ グ ズ ズ • プログラムサイズ > メインメモリサイズ – オーバーレイ(オ イ(overlay)というプログラム細分化y) う グラ 細分化 • overlay0を最初に実行し、終了すると、次のoverlayを 呼び出す • 細分化するのはプログラマの仕事 • 仮想記憶の登場仮想記憶の登場 – プログラムサイズがメモリサイズを超えても構わ ないという点が発想の基本 ないという点が発想の基本

(30)

ページング

ページング

仮想 ド 仮想 ド 空 • 仮想アドレス、仮想アドレス空間 – プログラムから見えるアドレスおよびアドレス空間グラ ら見えるア およびア 空間 • MMU(メモリ管理ユニット:Memory  Management Unit) Management Unit) – 仮想アドレスと物理メモリ・アドレスとのマッピング を う プ を行うチップ CPU メモリ ディスク・ 仮想アドレス

(31)

MMUの動作

MMUの動作

• ページとページ・フレームのマップを示すペー ジ表から物理アドレスを提供する 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 仮想アドレス 010 1 0 プレゼント/アブセント・ビット (マップされているか否か) ページ番号 オフセット 010 1 001 1 110 1 0 1 2 110 000 1 100 0 3 4 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 物理アドレス31

(32)

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

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

• ページ・フレームにマップされていないページ をアクセスしようとすること – CPUはOSにトラップをかける OSはあるアルゴリズムに従って選んだページ・フ – OSはあるアルゴリズムに従って選んだページ・フ レームをスワップアウト(ディスクに退避)する ペ ジ フ ルトを起こしたペ ジの内容を退避 – ページ・フォールトを起こしたページの内容を退避 させたページ・フレーム部にロードする

(33)

ページ表(page table)

ページ表(page table)

• 目的は、仮想ページをページ・フレームにマッ ピングすること • 問題点 ペ ジ表が極端に大きくなる – ページ表が極端に大きくなる • ページサイズ4K、32ビット・アドレス空間の場合、100 万ペ ジ 万ページ • ページ表はプロセスごとに保持 ピングは高速である必要がある – マッピングは高速である必要がある • 1命令に数回のメモリアクセスが必要な場合もある • 改良案として、マルチレベルページ表

(34)

ページ表エントリ

ページ表エントリ

• ページ・フレーム番号 ページ・フレーム番 号 プレゼント/アブセント 保護 修正 参照 キャッシング抑制 ジ フレ ム番号 • プレゼント/アブセント・ビット – 1: 物理メモリ上にある、0: 物理メモリ上にない • 保護ビット – 読み取り、書き込み、実行のアクセス権限を示す • 修正ビット – ページが編集されると、1 参照ビ ト • 参照ビット – ページが参照されると、1

(35)

ページ置換アルゴリズム

ページ置換アルゴリズム

ジ 生時 物 • ページフォルト発生時、OSは物理メモリから 削除するページを選択しなければならない – 削除するページが編集されていれば、ディスクに 書き戻す 書き戻す • 最適ページ置換アルゴリズム – もっとも次の参照までの時間が長いものを選択 する – 実現不可能 • 現実的かつ有用なアルゴリズムが必要現実的かつ有用なアルゴリズムが必要

(36)

LRU

LRU

今 後ア ク ( 未知 ) 時間的局所性 セス さ れ 時間的局所性 に基づく考え方 る 確率 • アクセス確率の低いページを選びたい 過去のアクセス間隔 (既知) アクセス確率の低いペ ジを選びたい • アクセス間隔の長いページを選べばよい LRULeast Recently Used

(37)

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

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

LRU(Least Recent Used) – 長い間使用されていないページは、今後も参照さ長い間使用されていない ジは、今後も参照さ れない可能性が高い、という考えに基づく • ページフォルト発生時 最も長時間参照され • ページフォルト発生時、最も長時間参照され ていないものを選択 • 実現可能な方法は、ハードウェア依存 • ソフトウェアでは 近似解を使用ソフトウェアでは、近似解を使用

(38)

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

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

ビ ウ タ を • 64ビットのカウンタCを利用 – 各命令後、インクリメント各命令後、インクリ ン • ページ表のエントリにCを格納できるフィール ドを用意 ドを用意 • ページを参照した時点で、現在のCの値をそ のページエントリに格納する • ページエントリのカウンタの値が最小のもの • ページエントリのカウンタの値が最小のもの がLRUページ

(39)

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 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 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

(40)

第5回

第5回

権 • シェルとアクセス権 • 標準入出力 フィルタコマンド シェルスクリプ標準入出力、フィルタコマンド、シェルスクリプ ト、ファイルのバックアップ、アクセス権、ドライ ブ ディレクトリ ファイル open/read/write ブ、ディレクトリ、ファイル、open/read/write • ファイルのメモリへのマッピング、アクセス制 御、権限、空き領域管理

(41)

復習:スレッド

復習:スレッド

プ 替 • プロセス切り替え – コスト高高 スレッド • スレッド – プロセスを分割 – CPUリソースを割り当てる,さらに細かい単位 – 主記憶領域が同じのため 切り替えコスト低主記憶領域が同じのため,切り替えコスト低

(42)

復習:割込み

復習:割込み

割 • 割込み – 通常の通常 CPU演算動作とは異なる事象演算動作 は異なる事象 • キーボード入力を受け取った • 自動車がどこかに衝突した自動車がどこかに衝突した • サーバからデータが送られてきた – 割込み発生時にプロセスの切り替えが起こる – 割込み発生時にプロセスの切り替えが起こる – TSSでは、プロセス切り替えのために インタ バルタイマ が定期的に割込みを発生 インターバルタイマーが定期的に割込みを発生

(43)

復習:割込みの種類

復習:割込みの種類

内部割込み • 内部割込み – スーパバイザコール割込み – プログラムチェック(例外)割込み • 外部割込み 入出力割込み – 入出力割込み – タイマ割込み マシンチ ク割込み – マシンチェック割込み – リスタート割込み

(44)

基本

スケジューリングの基本

(45)

復習:プロセスの三状態

実行 能 CPUリソースが 実行可能 (ready) CPUリソ スが 割り当てられた (順番がまわってきた) CPU以外のリソースを獲得 or ス パバイザ ル終了 スーパバイザコール終了 待ち 実行 割込み 待ち (wait) 実行 (running) スーパバイザコール ス パバイザコ ル or CPU以外のリソース喪失 45

(46)

プロセスの状態遷移

プロセスの状態遷移

CPUリソースが 待ち行列 プロセス CPUリソ スが 割り当てられた (順番がまわってきた) CPU以外のリソースを獲得 or ス パバイザ ル終了 スーパバイザコール終了 CPU 待ち 割込み

(47)

スケジューリング

スケジューリング

実行プロセスの選択 • 実行プロセスの選択 – CPUスケジューラが行う – 対話型処理では,数十~数百回/s • スケジューリングアルゴリズム – 高速かつ軽量に行う必要 • オーバヘッド削減のため • 基本 – 待ち行列の先頭プロセスにCPUリソースを割り当て • 全待ちプロセスの数に依存しない時間で スケジューリングが可能

(48)

プロセスの中断方式

プロセスの中断方式

実行プロセスの切り替えにはプロセスの • 実行プロセスの切り替えにはプロセスの 中断が必要 – 復習:復習:CPU状態(PSWプロセッサステ タスワ ド)のCPU状態(PSWプロセッサステータスワード)の PCB (Process Control Block, Task Control Block)への待避 中断方式 • 中断方式 – プリエンプション方式 • OSがプロセスから実行権を剥奪 • OSがプロセスから実行権を剥奪 • UNIX, WindowsXP, MacOS X – ノンプリエンプション方式 プ セ が に実行権を自主的に返還 プロセス暴走時には • プロセスがOSに実行権を自主的に返還 • Windows 95, MacOS 9 暴走時 は システム停止も

(49)

スケジューリングの目的

(50)

スケジューリングの目的

スケジューリングの目的

を効率的 た • リソースを効率的に利用したい – CPUリソースは時分割により仮想化リソ は時分割 より仮想化 • プロセス切り替えが多発 • 次に実行するプロセスを選択する機会も膨大次に実行するプロセスを選択する機会も膨大 – 切り替えごとにコスト(オーバヘッド)が発生 • スケジューリング次第で全体のオーバヘッドが増減 • スケジューリング次第で全体のオーバヘッドが増減 • 効率の悪いスケジューリング=全体の性能低下 • 効率のよいスケジューリングが必要

(51)

効率化の指標

効率化の指標

応答時間 • 応答時間 – ある依頼した処理に対して 応答が返ってくるまでに要する時間 応答が返ってくるまでに要する時間 • 対話処理:レスポンスタイム – 端末から入力した命令に対しシステムから結果を受け取るまで の時間 の時間 • バッチ処理:ターンアラウンドタイム – 投入したジョブに対しシステムから結果を受け取るまでの時間 プ • スループット – ある単位時間においてシステムが処理する仕事量 プ セス切り替えに必要となるオ バ ド等は含まない • プロセス切り替えに必要となるオーバヘッド等は含まない • ユーザにとって意義のある仕事をいかにこなせるか

(52)

効率化の指標

効率化の指標

応答時間とスル プ トは • 応答時間とスループットは トレードオフになる場合も 例) – 例) • 応答時間向上を追求 対話型処理を優先的に • 対話型処理を優先的に • TSSのクオンタムを短く • 切り替え回数増加,切り替えオーバヘッド増加切り替え回数増加,切り替えオ バ ッド増加 • スループット低下 • ユーザの要求やシステムの性質に応じて適切な

(53)

さまざまな

さまざまな

(54)

ターンアラウンドタイム

とレスポンスタイム

タ ンアラウンドタイム • ターンアラウンドタイム • データの入力の開始から、データ出力が完全、 に終了するまでの時間のこと。 >レスポンスタイム >レスポンスタイム • 応答時間ともいう。データ入力の終了から、 出力が開始されるまでの時間のことである 出力が開始されるまでの時間のことである。

(55)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重フィードバック

(57)

FIFO

FIFO

着 ジ グ • 到着順スケジューリング – FCFS: First Come First Served – FIFO: First In First Out • 常に待ち行列の先頭から処理常に待ち行列の先頭から処理 – ○単純 • プロセス選択機構も簡単になるし 選択オ バヘッドも小 • プロセス選択機構も簡単になるし,選択オーバヘッドも小 – ○公平 追い抜き禁止 • 追い抜き禁止 – ×ターンアラウンドタイムは良くない

(58)

FIFOの欠点

FIFOの欠点

• ターンアラウンドタイム 待ち行列 プロセス プロセス プロセス プロセス 1s 1s 1s 100s 103s 3s 2s 1s • レスポンスタイム 待ち行列 プロセス プロセス プロセス プロセス プロセス 100s プロセス 1s プロセス 1s プロセス 1s

(59)

スループット(throughput)

スループット(throughput)

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

(60)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重フィードバック

(61)

SPTF

SPTF

欠点は – FIFOの欠点は, 各プロセスの「重さ」を考慮していないのが原因 • 処理時間順スケジューリング h – SPTF: Shortest Processing Time First – 待ち行列内プロセスを処理時間順でソート – 亜種;残り処理時間順(SRTF)

(62)

SPTF

SPTF

処 時 短 プ 処 • 処理時間の短いプロセスから順に処理 – ○○応答時間最短;理想的応答時間最短;理想的 – ×実装不可能 • 各プロセスの処理時間を事前に知ることはできない • 各プロセスの処理時間を事前に知ることはできない 待ち行列 プロセス プロセス プロセス プロセス 5s プロセス 50s プロセス 20s

(63)

SPTFの実装手法

SPTFの実装手法

プロセスの処理時間を推定してスケジ リング • プロセスの処理時間を推定してスケジューリング – 経験則(heuristic)から近似的に処理時間を求める • 対話型処理のプロセス処理時間 • 対話型処理のプロセス処理時間 度 数数 – ほとんどのプロセスは短時間で終了 – 短時間で終了しないプロセスは,なかなか終了しない 処理時間

(64)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重フィードバック

(65)

PS

PS

各プロセスに優先度を付加 • 各プロセスに優先度を付加 – 静的優先度:プロセス生成時に指定した優先度を使用 例) プロセスの種類ごとに優先度を規定 • 例)・プロセスの種類ごとに優先度を規定 リアルタイムプロセス > OS > 対話型 > バッチ – 動的優先度:プロセス実行中に優先度を適宜変化 • 例)・既実行時間に応じて優先度を変化 ・入出力操作直後のプロセスの優先度を高く – ○優先度を適切に設定できれば非常に有効 – ×高負荷時,優先度の低いプロセスがなかなか 実行権を獲得できない(starvation) • 待ち時間に応じた優先度変化(aging)などで対処

(66)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重フィードバック

(67)

RR

RR

• TSSで用いられる方式 CPU 待ち行列 プロセス プロセス プロセス プリエンプション 待ち行列から選択されたプロセスに 微少な プロセス プロセス プロセス – 待ち行列から選択されたプロセスに,微少な CPU利用時間(クオンタム)を割り当て • クオンタム – クオンタム≒無限大:RR = FIFO – クオンタム=極小 :処理時間の短いプロセス有利

(68)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重レベルフィードバック

(69)

MLF

MLF

Multi‐Level Feedback – 優先度別に待ち行列を用意 – プロセスは,クオンタムを得るごとに CPU より優先度の低い待ち行列に移される 高 プロセス プロセス プロセス 優 先 度 度 低 69

(70)

MLF

MLF

Multi‐Level Feedback – 複数のクオンタムを必要とするようなプロセス複数 クオンタ を必要 するような (すなわち長い時間がかかるプロセス) は,どんどん優先度が下がってゆく, 優先度 下 ゆく – SPTFの良い近似になっている

(71)

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

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

(72)

FIFOの例

プ セス 処理時間 [ ] 到着時刻 [ ] プロセス 処理時間 [s] 到着時刻 [s] A 10 0 B 20 2 C 5 6 10s t=2 t=6 t=10 t=30 t=35 28s=(10-2)+20 29s=4(Aに対する待ち)+20(Bに対する待ち)+5(自身の処理時間)

(73)

SPTFの例

プ セス 処理時間 [ ] 到着時刻 [ ] SPTF: Shortest Processing Time First プロセス 処理時間 [s] 到着時刻 [s] A 10 0 B 20 2 C 5 6 10s t=2 t=6 t=10 t=15 t=35 33s=(10-2)(Aの処理待)+5(Cの処理待ち)+20(自身の処理) 9s

(74)

RRの例

プ セス 処理時間 [ ] 到着時刻 [ ] プロセス 処理時間 [s] 到着時刻 [s] A 10 0 B 20 2 C 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

(75)

お る

UNIXにおける

スケジュ リング

スケジューリング

(76)

実際 体的実装例 • 実際のOS (UNIX) の具体的実装例UNIX SystemV – Solaris – AIX – HP‐UX • Linux 2.6

(77)

UNIX SysV

UNIX SysV

多重レベルフィ ドバックがベ ス • 多重レベルフィードバックがベース 相違点 • 相違点 – 実行の終わったプロセスは,同じ優先度の待ち行列 に に 再登録 – スーパバイザモードで実行されるプロセスは,イザ 実行される は, そのプリエンプションの原因から優先度を決定 – ユーザモードで実行されるプロセスは,以下で決定 静的優先度 • 静的優先度 • 動的優先度(過去のCPUリソースの割当状況から計算) • NICE値(ユーザが指定する優先度)NICE値( ザが指定する優先度)

(78)

SysVのスケジューリング

y

高 割 0 これらの 込 不 可 プロセスの実行中は 割り込み禁止 優 優 先 度 例)ディスク入出力待ち 他のリソースを確保している可能 性が高く,早く実行してやらないと 他プロセスを足止めする。 128

(79)

SysVのスケジューリング

y

高 0 ■ ユーザモード優先度  P USER  P_USER + NICE + P CPU 優 _ 優 先 度  P_USER 基準値 (=60) 基準値 (=60)  NICE ユーザ指定優先度 128 ユーザ指定優先度  P_CPU 動的優先度 低 動的優先度

(80)

SysVのスケジューリング

y

高 0 ■ P_USER  ユーザモードプロセ  ユ ザモ ドプロセ スの基準値 必ずこの値よりも優 ス | パ 優  必ずこの値よりも優 先度が低くなる パ バ イ ザ 優 先 度 ザ  スーパバイザモード プロセスとの境界 60 128 ユ 通常 60

(81)

SysVのスケジューリング

y

高 0 ■ NICE  ユーザが指定する  ユ ザが指定する 優先度 ユーザは実⾏するプ 優  ユーザは実⾏するプ ロセスの優先度を げることができる 優 先 度 げることができる  (基本的には)上げ ることはできない ることはできない 60 128 低

(82)

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

Linux 2.6 のスケジューリング

active expired 高 CPU 優 先 度 度

(83)

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

Linux 2.6 のスケジューリング

active expired 高 CPU 優 先 度 度 クオンタムが残っている: ←activeへ クオンタムを使い切った: クオンタ を使 切 た expiredへ→ 低

(84)

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

Linux 2.6 のスケジューリング

active expiredactive

expired 高 CPU 優 先 度 度

(85)
(86)
(87)
(88)
(89)
(90)
(91)

演習

演習

(92)
(93)

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

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

FIFO (Fi t I Fi t O t) • FIFO (First In First Out) – 到着順スケジューリング,FCFS SPTF (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) – 多重フィードバック

(94)

まとめ:処理時間順

まとめ:処理時間順

処 時 ジ グ • 処理時間順スケジューリング – 理論上,応答時間を最小にできる理論 ,応答時間を最小 きる – 実装が不可能 • 近似により処理時間順を実現 – 多重レベルフィードバック

(95)

まとめ:プロセス優先度

まとめ:プロセス優先度

静的優先度 • 静的優先度 – プロセス生成時に決定成時 決定 • 動的優先度 実行中に変化 – 実行中に変化 • 優先度スケジューリング 優先度の低いプロセスがstarvationに陥る可能性 – 優先度の低いプロセスがstarvationに陥る可能性 – aging等で解決

(96)

第5回

第5回

権 • シェルとアクセス権 • 標準入出力 フィルタコマンド シェルスクリプ標準入出力、フィルタコマンド、シェルスクリプ ト、ファイルのバックアップ、アクセス権、ドライ ブ ディレクトリ ファイル open/read/write ブ、ディレクトリ、ファイル、open/read/write • ファイルのメモリへのマッピング、アクセス制 御、権限、空き領域管理

(97)

シェルのジョブの状態

• フォアグラウンド – 直接端末から入出力を行える状態. • バックグラウンド フォアグラウンドジョブの裏で同時に実行している状態 – フォアグラウンドジョブの裏で同時に実行している状態 中断 • 中断 – 実行中に一時停止された状態 • 終了 – 終了した、または終了させられた状態

(98)

バックグラウンドジョブ

バックグラウンドジョブ

• プロンプトの裏で実行されているジョブ – 起動時に起動時に & を付ける& を付ける 通常: % /a out が終了するまで次の バックグラウンド:  %  ./a.out a.out が終了するまで次の コマンドは実行不可 %  ./a.out  & a.out の実行中も次のコマンドを 実行可能 注意:

(99)

ジョブの状態の切り替え

フォアグラウンド

ォ グラウ

C‐c fg %ジョブ番号 C‐z fg %ジョブ番号

バックグラウンド

中断

C c bg %ジョブ番号 fg %ジョブ番号 kill –KILL %ジョブ番号 kill –KILL %ジョブ番号

終了

(100)

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

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

• コマンド fg %番号 中断やバックグラウンドのジョブを再開 bg %番号 中断状態のジョブをバックグラウンド で再開 kill KILL %番号 指定した番号のジョブを強制終了 kill –KILL %番号 指定した番号のジョブを強制終了 jobs      バックグラウンドで実行中のジョブ, 及び中断状態のジョブを表示 及び中断状態のジョブを表示 fg と bg で %番号 を省略すると,jobsコマンドで + がついたジョブが対象 • キー操作

(101)

ジョブ管理:使用例

ジョブ管理 使用例

• 一旦起動したプログラムをバックグラウンドに変更 %  ./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 %

(102)

ファイルに関する操作

ファイルに関する操作

イ 関する操作 • ファイルに関する操作 – アクセス権の設定 – ファイルの取りまとめ、圧縮 – ファイルの探索 – ファイル内の文字列探索

(103)

ファイルのアクセス権

ファイルのアクセス権

ご 権を指定 能 • ファイルごとにアクセス権を指定可能 ユーザ ユーザ A ユ ザ B 見える 見える 見えない 見える 見える 見える file1 file2

(104)

ファイルのアクセス権

ファイルのアクセス権

• 各ファイルについて - ユーザのカテゴリ毎に - アクセス権を 設定可能 ユーザのカテゴリ アクセス権 •読み出し権 •書き込み権 •ファイルの所有者 •同じグループ •書き込み権 •実行権 •同じグル プ •それ以外

(105)

ファイルのアクセス権表示 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 実行権 - 通常ファイル デ レクトリ ファイルの種類 d ディレクトリ

(106)

アクセス権の変更

chmod

方法 • 利用方法 chmod     アクセス権を変更するファイル 変更するカテゴリ 所有者 変更するアクセス権 読み出し権 権利の与奪 + 権利を与える u  所有者 g  同じグループの利用者 o  それ以外の利用者 a 全ての利用者 r 読み出し権 w  書き込み権 x  実行権 + 権利を与える 権利を与えない a  全ての利用者

(107)

アクセス権の変更

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 %  chmod ‐R go‐rwx work

(108)

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

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

• ファイルのアクセス権とディレクトリのファイルのアクセス権とディレクトリの アクセス権は少し意味が異なる. – 読み出し権:読み出し権: そのディレクトリにあるファイルの名前を閲覧する権利 – 書き込み権: そのディレクトリでファイルの削除や新規作成をする権 利 利 – 実行権: – 実行権: そのディレクトリに移動する権利.

(109)

アクセス権

アクセス権

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

(110)

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

• 多数のファイルを保管したり他の計算機に転送 するとき するとき, 一つのファイルにまとめて,圧縮(サイズを小さく) すると便利 すると便利. たくさんの ファイルや ディレクトリ まとめる 圧縮 ィ リ

(111)

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

tar

複数 を ま る • 複数のファイルを一つにまとめる – 本来はテープに保存する(本来はテ 保存する( ptape archive)コマンド) ン 複数のフ イル つのフ イル 複数のファイル、 ディレクトリ 一つのファイル ディレクトリ tar ファイル ディレクトリ ディレクトリ ディレクトリ file1 file2 file3 tar

(112)

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

tar

• 利用法

tar file1 file2 ...

処理内容 どれか一つ 処 容 c 1つのファイルにまとめる t まとめられたファイルの内容表示 x まとめられたファイルの展開 どれか つ 表示に関する指示 v 詳細情報表示 オプション (処理内容で表示が異なる) c の場合:まとめられる各ファイル名 t の場合:まとめられたファイルの ズ サイズなどの詳細情報 x の場合:展開される各ファイル名

(113)

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

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

(114)

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

注意

• ディレクトリは相対パスで指定した方が良い %  tar cvf test.tar test – 任意の位置に展開することができる → バックアップや他の計算機での利用が容易 → バックアップや他の計算機での利用が容易 もし絶対パスで指定した場合 – もし絶対パスで指定した場合 全く同じ絶対パスにしか展開できない %  tar cvf test.tar /home/user3/k70043a/test 全く同じ絶対パスにしか展開できない。

(115)

ファイルの圧縮 解凍

ファイルの圧縮, 解凍

縮 中 な部分を削 • 圧縮:ファイル中の冗長な部分を削って サイズを小さくする. • 解凍:削られた冗長部分を補って 元のファイルに戻す 元のファイルに戻す. 縮 ファイル 圧縮 解凍 ファイル ファイル 解凍

(116)

ファイルの圧縮,解凍

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

(117)

圧縮するファイルの選択

圧縮するファイルの選択

を 縮する 点 • ファイルを圧縮する利点 – ファイルの転送が速いァイル 転送 速 – ディスクを有効に利用できる • 不便な点 – 通常、使用する前に復元(解凍)が必要 通常,他の計算機に転送するファイルや しばらく利用しないフ イルを圧縮する しばらく利用しないファイルを圧縮する

(118)

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

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

SRC SRC/ SRC file1 SRC.tar SRC.tar.gz file1 SRC file1 file2 file3 file2 file3 file4 file2 file3 file4

file1 file3 file4 tar cvf SRC.tar SRC SRC.tar ファイル gzip SRC.tar SRC.tar.gzファイル ができる ができる

(119)

取りまとめて圧縮されたファイルの

復元

復元

SRC tar SRC tar gz SRC SRC/ file1 SRC file1 file2 SRC.tar SRC.tar.gz file1 file1 file2 file3 file3 file4 file2 file3 file4

tar xvf SRC.tar gzip ‐d SRC.tar.gz file4 SRCディレクトリ以下が 展開される SRC.tarファイル ができる gzip –dc SRC.tar.gz | tar xvf ‐ 一度に実行 119 gzip –dc ファイル名 解凍結果を標準出力に出力

(120)

ファイルの探索

ファイルの探索

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

(121)

ファイルの探索

find

法 • 利用法 find 探索開始ディレクトリ –name 名前 探索後の処理 – 探索開始ディレクトリは絶対パス,相対パスどちら で指定してもよい find  探索開始ディレクトリ –name 名前 探索後の処理 で指定してもよい. – 主な”探索後の処理”: i t 見つか たフ イルを表示 ‐print 見つかったファイルを表示 ‐exec 見つかったファイルに対して マンドを実行 コマンドを実行

(122)

ファイルの探索

find

• 利用例 – 例1) work ディレクトリ以下から proj1.f90 を 探し 表 探して表示 % find work –name proj1.f90 ‐print – 例2) ホームディレクトリ以下から 末尾が~であるファイルを探して削除 • コマンドには,見つかったファイル名を {} で指定する. % find ~ ‐name '*~' –exec rm –i {} ¥; • コマンドの末尾は”空白を一つ以上置いて” ¥;

(123)

文字列の探索

文字列の探索

• ファイル内から特定の文字列を含む行を探し て表示する. プログラムのデバ グなどに利用 • プログラムのデバッグなどに利用

(124)

文字列の探索

grep

• 利用法 grep オプション 検索文字列 ファイル – 主なオプション ‐i 大文字小文字を区別しない grep  オプション 検索文字列 ファイル ‐n 行番号も表示する ‐l 指定した文字列を含む フ イルの名前だけを表示する ファイルの名前だけを表示する (複数のファイルを指定した場合に利用) ‐vv 指定した文字列を含まない行を表示する.指定した文字列を含まない行を表示する.

(125)

文字列の探索

grep

• 利用例 – 例1) ファイル test.c から total という文字列 を含む行を探索する を含む行を探索する. %  grep –i total test.c – 例2) ファイル名の末尾が .f90 のファイルから, !を含まない行を探索する !を含まない行を探索する. 直前 %  grep –v '¥!' *.f90! のような特殊記号は '¥!' のように直前に¥を付け,  さらにファイル名を' で囲んで指定する.

(126)

シェルスクリプト

シェルスクリプト

連 ドを イ 列挙 括 実行 • 一連のコマンドをファイルに列挙し一括して実行 – 条件分岐,繰り返しなども利用可能 • 用途: – 何度も行う決まった処理 – 複雑な処理 バ チジ ブとして投入する処理 – バッチジョブとして投入する処理

(127)

シェルスクリプト

シェルスクリプト

利用法 • 利用法 カレントデ レクトリにある場合は スクリプトファイルのパス オプション – カレントディレクトリにある場合は ./ を忘れない. – 引数を受け付けるかどうかは, シェルスクリプトの内容による. – コマンドとして実行する前に chmod で実行権限を与えておく.実行権限を %  chmod u+x スクリプトファイル名

(128)

シェルスクリプトの例1

シェルスクリプトの例1

workディレクトリに移動し, test f90 をコンパイルして実行する test.f90 をコンパイルして実行する. – バッチジョブのスクリプト #!/bin/csh cd  work frt  test.f90  ‐o test ./test

(129)

シェルスクリプトの例2

• 引数に指定されたファイルが存在すれば, そのファイルで member という文字列を 探索する. – 引数は $数字 で指示する. 例) $1 : 1番目の引数. – ファイルが存在するか否かの判定 if (‐f ファイル名) – メッセージの出力メッセ ジの出力 echo メッセージ #!/bin/csh if  (‐f  $1) then grep 'member' $1 grep  member   $1 else echo  "$1 doesn't exist." endif endif

(130)

シェルスクリプトの例3

• カレントディレクトリにある, ファイル名の末尾が .c であるファイルに対し, ファイル名の末尾にさらに .old を付ける. ファイル名の末尾にさらに を付ける – 繰り返しは foreach 変数 ( 変数のとる値 ) から d まで から end まで. – ここでは変数のとる値として *.c 、すなわち カレントディレクトリにある、ファイル名の末尾が .c のファイルの名前を指定している. – 条件を満たすファイル名について 順に繰り返しの中を実行する条件を満たすファイル名について,順に繰り返しの中を実行する. – 変数の中身は ${変数}で参照. #!/bin/csh foreach  cfile  ( *.c ) mv  ${cfile}  ${cfile}.old echo  ${cfile}  ${cfile}.old d end

(131)

分割コンパイルの支援

分割コンパイルの支援

分割 パ • 分割コンパイル – 一つのプログラムを複数のファイルに分割グラ を複数 ァイル 分割 → 大規模なプログラムの管理が容易 – 一部のファイルに修正を施した後, 再度全部をコンパイルするのは無駄 再度全部をコンパイルするのは無駄. → 修正を行ったファイルのみコンパイル

(132)

分割コンパイルの支援

make

• ファイルの依存関係を元に 必要なコンパイルだけを行う仕組み. コンパイルのコマンドは計算機によって異なる – コンパイルのコマンドは計算機によって異なる file1.f90 f90 ‐c file1.o cc

file2.f90 f90 ‐c file2.o program

file3.c cc ‐c file3.o

make

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

(133)

Makefileの例

• FortranとC言語の混成プログラムFortranとC言語の混成プログラム. • コンパイル以外のターゲットも作成可能 例) clean: 途中でできた不要ファイルを削除 – clean:  途中でできた不要ファイルを削除 – backup: 必要なファイルをまとめて圧縮 all: program program: file1.o file2.o file3.o

cc o program file1 o file2 o file3 o cc ‐o program file1.o file2.o file3.o file1.o: file1.f90 f90 ‐c file1.f90 file2 o: file2 f90 file2.o: file2.f90 f90 ‐c file2.f90 file3.o: file3.c cc ‐c file3.c cc  c file3.c clean: rm ‐f file1.o file2.o file3.o *~ backup: files.tar.gzp g files.tar.gz: file1.f90 file2.f90 file3.c tar ‐cf ‐ file1.f90 file2.f90 file3.c | gzip > files.tar.gz

(134)

Makefileの書き方

Makefileの書き方

基本形 • 基本形 ターゲット: ターゲット作成に必要なファイル アクシ ン TAB – ターゲット: 目的 • ファイル もしくは単なる名前 アクション TAB • ファイル,もしくは単なる名前 – ターゲット作成に必要なファイル名: • 複数指定可 – アクション: • ターゲットを作成するスクリプト 複数行にまたが ても可 • 複数行にまたがっても可 • 行の先頭は必ず TAB

(135)

分割コンパイルの支援

make

法 • 利用法 make ターゲット – ターゲット: 何を生成するか →Makefileに記述されているものを指定する make タ ゲット →Makefileに記述されているものを指定する. – 何もターゲットが指定されない場合, ll が指定されたものとして実行される all が指定されたものとして実行される.

(136)

ファイルシステムAPIと

ファイルシステムAPIと

(137)

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

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

様 な種類 次 憶装 • 様々な種類の2次記憶装置へ, – 簡便で簡便 – 効率的で 安全で – 安全で – 統一的な(装置によらない) 読み書き手段を提供する

(138)

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

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

電 を も われな 情報 ど • 電源を切っても失われない情報の(ほとんど 唯一の)格納場所) – メモリの内容は電源を切ると失われる • プロセス間で情報を共有する自然な場所 • プロセス間で情報を共有する自然な場所 – プロセス間でメモリは分離されていた メモリ メモリ メモリ

(139)

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

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

例 ドデ • 例: ハードディスク – 固定サイズの「ブロック」の集合固定サイ ック」 集合(典型(典型: 512B, 1KB), ) – ブロックのアドレス: (シリンダ, トラック, セクタ) 読み書きのインタフェ ス – 読み書きのインタフェース • I/Oコマンド発行 終了通知の割り込み • 終了通知の割り込み

(140)

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

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

• ファイル名(パス名) ややこしいアドレスではなく自由な文字列 – ややこしいアドレスではなく自由な文字列 • バイト配列としてファイルの簡便な読み書き – ファイル名, オフセット  記憶場所 – キャッシュを用いた効率的アクセス • ファイルの作成,伸長 空き領域確保 – 空き領域確保 • ファイルの所有者,読み書き権限(来週以降)

(141)

API : 基本概念

API : 基本概念

く • 開く(open) – 権限の検査,以後の読み書き準備権限 検査,以後 読み書き準備 • 逐次的な読み書き(read/write) 位置あわせ 頭出し • 位置あわせ(seek; 頭出し) • メモリマップドファイルメモリマップドファイル(後述)(後述) • 閉じる(close) open r/w seek

(142)

Unix API

Unix API 

int fd = open(path, access);int m = 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);

(143)

Windows API

Windows API

HANDLE h = CreateFile(path, access, …);BOOL ok = ReadFile(h, buf, n, &m, …);BOOL ok = WriteFile(h buf n &mBOOL ok = WriteFile(h, buf, n, &m, …););

DWORD o’ = SetFilePointer(h, o1, &o2, from);BOOL ok = CloseHandle(h);

(144)

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);

(145)

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);

(146)

open/read/write系とfopen/fread/fwrite系

の関係

系 シ ム • open/read/write系: システムコール • fopen/fread/fwrite系: (結局はopen etc.を呼び出す) ライブラリ – 違い1: 書式付入出力(fprintf, fscanf)など高機能なIOのサp ポート – 違い2: バッファリングを行う • 複数回のfwriteをメモリ上に保持して一度のwriteシス テムコールで書き込む • 一度のreadシステムコールで大量に読み込んで以降 の複数回のfreadに答える

(147)

バッファリング

バッファリング

f it f it f it f it f it fwrite fwrite fwrite fwrite fwrite fwrite fwrite

write

write

(148)

お断り

お断り

本授業資料の作成にあたり • 本授業資料の作成にあたり • 慶應大学SFC IPL/ITB 岩井クラス • 戸辺義人先生戸辺義人先生 • 田浦健次朗先生 • 降旗 大介先生 • 松尾啓志先生 • 九州大学情報基盤研究開発センター • Wikipediaなどの資料を参考にさせていただいています。 • ありがとうございます。ありがとうございます。

参照

関連したドキュメント

[今日のタブ]から Fitbit アプリ内で、[プロファイル写真]>[ Inspire HR のタイ ル]をタップします。..

噸狂歌の本質に基く視点としては小それが短歌形式をとる韻文であることが第一であるP三十一文字(原則として音節と対応する)を基本としへ内部が五七・五七七という文字(音節)数を持つ定形詩である。そ

管理画面へのログイン ID について 管理画面のログイン ID について、 希望の ID がある場合は備考欄にご記載下さい。アルファベット小文字、 数字お よび記号 「_ (アンダーライン)

[r]

[r]

名      称 図 記 号 文字記号

従来から iOS(iPhone など)はアプリケーションでの電話 API(Application Program

「CHEMICAL」、「LEATHER」、「FOOD」、「FOOD ITEMS」、「OTHER MACHINES 」、「 PLASTICS 」、「 PLASTICS ARTICLES 」、「 STC 10 PALLETS」、「FAK(FREIGHT