システムソフトウエア工学ohori/texts/systemsoftware...3 3 = 9 である....

200
. . システムソフトウエア工学 大堀 淳 東北大学 電気通信研究所 大堀 淳 (東北大学 電気通信研究所) システムソフトウエア工学 1 / 200

Upload: others

Post on 24-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

.

...... システムソフトウエア工学

大堀淳

東北大学電気通信研究所

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 1 / 200

Page 2: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

本資料を利用される方へ

本スライドは,教科書

「計算機システム概論 –基礎から学ぶコンピュータの原理とOSの構造–」,大堀淳,サイエンス社

に準拠した講義に使用しているスライドです.講義の設計等のご参考に,公開いたします.講義の説明の補助のスライドであり,単独で読む資料を意図したものではありません.教科書と異なり十分に校正等をしておらず,誤植や式の間違い等があるかもしれません.これらの点を留意された上でご参照ください.また,本スライドは,8回(1クオータ)分の講義で使用していますが,15回の講義にも対応できると思います.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 2 / 200

Page 3: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義に関する情報

.講義の目的..

......デジタル計算機を用いた情報処理の構造を理解し,基本ソフトウエア(OS)の構造と緒概念を学ぶ

講師:大堀淳,電気通信研究所,ソフトウエア構成研究分野専門

プログラミング言語(基礎理論,処理系,新しい言語の実現)データベース(言語とデータベースの統合,データモデル理論)

教科書:「計算機システム概論 –基礎から学ぶコンピュータの原理とOSの構造–」,大堀淳,サイエンス社講義資料のページURL(研究室):http://www.pllab.riec.tohoku.ac.jp//education/lectures/systemSoftware.html

「Ohori Lab」「大堀研」等をサーチ =⇒「教育」=⇒「講義関連資料(lecture notes)」=⇒「システムソフトウエア工学」とたどる

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 3 / 200

Page 4: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義の目的 (シラバス)

本講義では,情報処理システムの基盤である基本ソフトウエア(OS)の構造と緒概念を学ぶ.近代的なOSは,ハードウエアの管理からユーザインターフェイスにいたる広範な機能を果たす複雑で大規模なソフトウエアであり,学ぶべき概念も多岐にわたる.本講義の目的は,そのようなOSの構造や緒概念の網羅的な解説ではなく,OSがハードウエアと協調して実現している情報処理システムの構造と原理を理解することである.この目的を念頭に,チューリングに遡るデジタル計算機による情報処理の原理およびデジタル計算機を実現する近代的なハードウエアの構造とソフトウエアの役割を概観した後,主なOSの機能を説明する.計算機システムをはじめて学ぶ学部学生が,論理回路やプログラムに関する基本的な理解以外の特別な予備知識なしに,デジタル計算機がどのような原理と構造によって汎用な情報処理システムを実現しているのかの全体像を理解できるような講義を目指す.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 4 / 200

Page 5: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義予定

内容(予定)1 デジタル計算機による情報処理の原理2 近代的な計算機アーキテクチャと OSの役割および構造3 計算資源の管理 (1)プロセスの管理4 計算資源の管理 (2)非同期処理と排他制御5 メモリー資源の管理6 仮想記憶方式7 入出力制御8 ファイルとプロラムの管理

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 5 / 200

Page 6: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講演内容

...1 講義の目的

...2 計算機システムの動作原理計算の構造シンボルを用いた情報の表現(コード化)コンピュータの構造デジタル計算機の能力とソフトウエアの役割

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 6 / 200

Page 7: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

計算機システムの概要

.計算機システムにおける「計算」........人間が行う知的な問題解決.

.計算機........人間と同様に知的な問題解決を行う能力をもつ機械

.計算機システム........計算機を中核とする汎用の問題解決システム

これらは大げさな比喩ではなく,厳密な分析に基づき理論的な主張.本節では,このような計算機システムによる問題解決の原理と計算機システムの構造を概説する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 7 / 200

Page 8: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

人間の知的活動とコンピュータによる情報処理

人間の知的活動:言語を用いた思考

ある情報を有限なシンボル列(文)で表現し,一時的に種々の文を中間的に生成,利用しながら,別の情報を表現する文を生成する作業.

コンピュータによる情報処理

データや処理手順(情報)をコード化,すなわち通常 {0, 1}のシンボルの列で表現し,そのコードをプログラムによって処理し,別な情報を表すコードを生成する作業.

この「同型構造」が,情報処理システムの基礎.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 8 / 200

Page 9: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デジタル計算機による情報処理

.デジタル計算機........汎用な情報処理を実現する機械

デジタル計算機による「計算」の基本構造:

有限のシンボル集合を用いる

種々の情報や処理手順をシンボル列で表現(コード化)する

シンボル列を格納する記憶装置を使用し,

機械の状態と記憶装置に書かれたシンボルとで決まる規則を適用し,記憶装置の上の特定のシンボルを書き換え,次の状態遷移する.

.デジタル計算機の実現技術..

......

情報のコード化方法

機械とシンボル列を保持する機械

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 9 / 200

Page 10: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講演内容

...1 講義の目的

...2 計算機システムの動作原理計算の構造シンボルを用いた情報の表現(コード化)コンピュータの構造デジタル計算機の能力とソフトウエアの役割

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 10 / 200

Page 11: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

情報のコード化の原理

総ての情報は有限記号集合(アルファベット,Σ)を用いて表現可能

原則

どのようなアルファベットでもよい.

表現方法は一通りではない(無限に存在).

表現の約束を知っている者は,誰でも機械的に情報を取り出せる.

近代的コンピュータ

{0, 1}をアルファベットとする.整数等の基本データの表現を決定.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 11 / 200

Page 12: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

(復習)情報の表現:一体何で何を表現するのか?

よく知っていると思っている例:数3は数である.3 × 3 = 9である.

しかし,では...1 7625597484987は数である....2 7625597484987 × 3 = 22876792454961である.

などで何を理解しているのか.

情報科学的(哲学的)な理解:

数は,我々が既に知っている抽象的(超越的)なもの(実体).

この下で,...1 7625597484987は数を表現する記号列....2 記号列 7625597484987 × 3と 22876792454961は,同じ数を表現.

.情報処理の基本原理:情報の表現........(我々が知っている)情報を,記号列で表現する.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 12 / 200

Page 13: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

(復習)情報の表現:どのように記号列で表現するか?

よく知っていると思っている例:数 3の表現十進数表現:3漢数字表現:三

ローマ数字表現:III

ギリシャ数字表現:γ’

· · ·情報 Bで習った(?),

2進数表現:11 (= 1 × 21 + 1 × 20)2進数があるなら,もちろん,

3進数表現:10 (= 1 × 31 + 0 × 30)さらに,

マイナス 3進数表現:120 (= 1 × (−3)2 + 2 × (−3)1 + 0 × (−3)0)他にも沢山つくることができる....

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 13 / 200

Page 14: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

情報のコード化例

自然数:2進数表現文字:各文字に通し順番を付ける.情報の列 (I1, I2, . . . , In):各情報を表すコードの列.

符合付き整数(−2k−1 ≤ n ≤ 2k−1 − 1):

有理数:浮動小数点表現 r = (−1)S × (1 + M × 2−n) × 2(E−2m−1+1)

符合 S:1ビット仮数部 M:nビット 2進数指数部 E:mビット 2進数

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 14 / 200

Page 15: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

コード化の実例:ASCII文字コード上位 3ビット

下位 4ビット 000 001 010 011 100 101 110 1110000 NUL 空白 0 @ P ‘ p0001 ! 1 A Q a q0010 “ 2 B R b r0011 EXT # 3 C S c s0100 EOT $ 4 D T d t0101 % 5 E U e u0110 & 6 F V f v0111 BEL ’ 7 G W g w1000 BS CAN ( 8 H X h x1001 ESC ) 9 I Y i y1010 LF * : J Z j z1011 + ; K [ k {1100 , < L \ l —1101 CR - = M ] m }1110 . > N ˆ n ˜

1111 / ? O _ o

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 15 / 200

Page 16: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

複雑な情報表現の例(naiveな表現)

表現すべき情報

Σ = {(, ), A, B,C, D, E}を用いた表現の例...1 表現方法の決定:

木をルート左部分木右部分木

とたどって得られるシンボル列で表現.部分木間の表現は括弧で区切る

...2 表現を生成:

A(B()())(C(D()())(E()()))

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 16 / 200

Page 17: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Bit表現への変換

A(B()())(C(D()())(E()()))表現すべき情報

Σ = {0, 1}を用いた表現の例.表現方法の決定

文字 コード( 000) 001A 010B 011C 100D 101E 110

表現を生成.

010 000 011 000 001 000 001 001 000100 000 101 000 001 000 001 001 000110 000 001 000 001 001 001

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 17 / 200

Page 18: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Bitによる情報コード化

表現すべき情報

Σ = {0, 1}を用いた表現の例.表現方法の決定

...1 Σ = {(, ), A, B,C, D, E}で表現

...2 そのコードを Σ = {0, 1}に翻訳表現を生成.

010 000 011 000 001 000 001 001 000100 000 101 000 001 000 001 001 000110 000 001 000 001 001 001

このように,必用なら何段階かのコード化階層を定義し,総ての情報をBit列で表現する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 18 / 200

Page 19: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

現実的なコード化技法:ポインターの利用

複雑な情報を記述最も基本的な道具:情報に「名前」を付ける.

名前と情報の対応を維持

名前を,他の情報の表現の中で使用

情報のコード化でも,これは最も基本的な機能.名前と情報の関係を維持:

通し番号(アドレス)を振ったコード格納領域(メモリー)を使用コードの格納アドレスをコードの名前として使用

名前を,他の情報の表現の中で使用:アドレスを2進数でコード化(ポインタ)コードの中で,他のコードのポインタを参照

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 19 / 200

Page 20: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ポインタを用いたコード化の例(1):コードの設計

名前を使った木の表現:

名前 = 木CA = A(CB)(CC)CB = B()()CC = C(CD)(CE)CD = D()()CE = E()()

ポインタを用いたコード:

アドレス → コードの内容PA → (A, PB, PC)PB → (B, ϕ, ϕ)PC → (C, PD, PE)PD → (D, ϕ, ϕ)PE → (E, ϕ, ϕ)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 20 / 200

Page 21: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ポインタを用いたコード化の例(2):コード化の詳細

仮定:

メモリーの 1ワードを 8ビットメモリーのアドレスを 8ビットの 2進数で表現.メモリーの 0番地は未使用とし,ϕを 00000000で表現文字は ASCIIコードを使用

木構造のコードを 128番地(アドレス 10000000)から格納PA = 128 = 10000000PB = 128 + 3 = 10000011PC = 128 + 6 = 10000110PD = 128 + 9 = 10001001PE = 128 + 12 = 10001010

アドレス PAに格納されるコード (A, PB, PC)は,128番地から始まる

01000001 10000011 10000110

とコード化される.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 21 / 200

Page 22: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ポインタを用いたコード化の例(3):木全体のコード

アドレス データ 注釈10000000 01000001 文字 A10000001 10000011 ポインタ PB10000010 10000110 ポインタ PC10000011 01000010 文字 B10000100 00000000 ϕ10000101 00000000 ϕ10000110 01000011 文字 C10000111 10001001 ポインタ PD10001000 10001100 ポインタ PE10001001 01000100 文字 D10001010 00000000 ϕ10001011 00000000 ϕ10001100 01000101 文字 E10001101 00000000 ϕ10001111 00000000 ϕ

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 22 / 200

Page 23: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講演内容

...1 講義の目的

...2 計算機システムの動作原理計算の構造シンボルを用いた情報の表現(コード化)コンピュータの構造デジタル計算機の能力とソフトウエアの役割

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 23 / 200

Page 24: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デジタル計算機の構成原理

.原始的なデジタル計算機:Turing機械..

......

文字集合 Σ

一字づつ読み書きできる一次元の記憶テープ制御機構

Q 有限の状態集合δ 機械の動作関数:(p, s) 7→ (p′, s′,右 or左)現在の状態 pとテープシンボル sに対して,次の状態 q′,テープに書き出すべきシンボル s′,テープの移動方向(右,左)を決定.

.近代的ハードウエア..

......

以上の原理の電子回路で実現....1 Σ = {0, 1}を電気的状態で表現....2 機械の動作関数をゲートを組み合わせた論理回路で表現....3 さらに,「状態を持つ電子回路」で機械状態と記憶装置を実現.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 24 / 200

Page 25: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

状態を持つ電子回路

フィードバックをもつ論理回路による離散的な状態の実現.

機械が記憶可能な状態集合:フィードバック回路の定常状態集合入力によって定常状態間を遷移:定常状態を機械状態およびその他のメモリと解釈可能.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 25 / 200

Page 26: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

状態を持つ電子回路の例:1ビットメモリ

Next StateテーブルInput RS

PS 00 01 10 110 0 1 0 01 1 1 0 0

(太字:定常状態)

Fを実現する論理回路の例:(「遅延素子」は,非同期順序機械を設計分析するための仮想的なもの.もちろん,実際には存在しない.)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 26 / 200

Page 27: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

状態を持つ逐次機械の構成

同期逐次機械 (Syncronous Sequential Machine)

クロック:機械の状態遷移を制御

論理回路:次の状態の生成(Next state decoder),出力の生成(Output decoder)を行うプログラム

機械状態:機械の制御構造の実現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 27 / 200

Page 28: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デジタルコンピュータの構成原理

逐次同期機械の状態に種々の構造と解釈を与えることによって構成.

CPU:単純な命令の実行内部はさらに複雑な構造を持つ.

メモリー:コード化された情報や知識の格納

デバイス:情報のコード化,コードの保存・変換,

それら構造は,同期逐次機械の状態を表現するビット集合の一部をその様に解釈し,その動作をする論理回路により実現.計算機アーキテクチャ..

......逐次同期機械というごく簡単な構造をもつ機械の上に,種々の構造を論理回路としてプログラムし作り出された,より高機能な仮想的な機械.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 28 / 200

Page 29: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

参考:典型的アーキテクチャ

...1 CPU割り込み制御ロジック,割り込みレジスタプログラムカウンタ命令レジスタ命令デコーダ汎用レジスタ演算ロジックアドレス変換レジスタ,アドレス変換ロジックキャッシュ(メモリキャッシュ,アドレス変換キャッシュ)

...2 メモリーメモリコントローラメモリーバンク

...3 デバイスデバイスコントローラバッファハードウエア

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 29 / 200

Page 30: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理計算の構造シンボルを用いた情報の表現(コード化)コンピュータの構造デジタル計算機の能力とソフトウエアの役割

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 30 / 200

Page 31: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

汎用の情報処理機械

Turingや Churchの一連の研究による情報処理の基本原理:

デジタル計算機は,適当なプログラムを用意すれば,離散的な状態をもつ任意の機械を模倣できる.

デジタル計算機は,およそ計算可能ないかなる計算も実行することができる.

すなわち,

およそ厳密に定義され,人間が機械的な手順で解決しうる問題なら,適当なプログラムを用意することによって,デジタルコンピュータで解決可能.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 31 / 200

Page 32: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デジタル計算機での問題解決

弾道の計算 (ENIAC)

暗号の解読...

その他無数にある解決すべき問題の中でも重要な問題.

高性能,高機能で使いやすい(計算機)情報処理システムの実現より高性能高機能なハードウエア · · ·いつでもつながる通信システム · · ·知的で柔軟なユーザインターフェイス · · ·

この問題を解くシステム:

「システムソフトウエア(OS,通信,ミドルウエア)」

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 32 / 200

Page 33: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

より高機能な情報処理システムの実現手段

基礎となる洞察:

デジタル計算機はそれ自身離散的な状態を持つ機械,従って

デジタル計算機を模倣するプログラムを書くことによって

任意のデジタル計算機を実現 (模倣)できる.

高機能計算機の実現手順...1 計算機を用意する処理速度やメモリー容量が十分であればよい.

...2 望ましいシステム機能の設計実現不可能な機能が含まれていなければ特に制限はない

...3 望ましい機能を実現するプログラムを書く

今日の情報処理システムは,単純なハードウエアを出発点に,この手順を繰り返すことによって,階層的にソフトウエアで実現されている.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 33 / 200

Page 34: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プログラムによる他の計算機の模倣

M上にM′を模倣するプログラムを構築Mの記憶領域上に,M′の制御部の記述と状態を情報として格納入力データに対して,M′の制御部の記述に従って,状態を変更

計算機Mによる計算機M′の模倣を

M ≤ M′

と書く.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 34 / 200

Page 35: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

高性能機械の実現戦略

洞察

模倣の対象は凡そ実現可能な総てのデジタルコンピュータ

これから導かれる高性能計算機の設計の枠組み...1 望ましい機能をもつ仮想的なデジタルコンピュータMを設計実現不可能な機能を含まな無い限り,機能に制約はない.

...2 すでに実現されている,あるいは明らかに実現可能な,デジタルコンピュータM0を用意する.

...3 M0からはじめて,Mに至る模倣の系列

M0 ≤ M1 ≤ · · · ≤ M

を実現.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 35 / 200

Page 36: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)フォン・ノイマンアーキテクチャOSの目的ハードウエアとOSの関係

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 36 / 200

Page 37: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

フォン・ノイマンアーキテクチャ

近代的な計算機アーキテクチャの CPUは,フォン・ノイマン等によって提案された以下のような考え方に基づく.

CPUの動作は,数十個から数百個の命令と呼ばれる単位で記述される.各命令は,「2つの2進数その和を計算する」等の動作を実現する一連の状態遷移をひとまとまりにしたもの.

CPUは,レジスタと呼ばれるデータ格納域を持ち,レジスタ上で四則演算や,メモリーからのデータの読み込みや書出しが行われる.

命令の集合は,前節で学んだ文字のコード化と同様,ビット列にコード化され,メモリーに格納されている.

CPUは,メモリ上の命令の位置を示すプログラムカウンタ(PC)と呼ばれる特別のレジスタを保持する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 37 / 200

Page 38: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

フォン・ノイマンマシン逐次機械の構造と動作

CPUの構造

プログラムカウンタ

命令レジスタ

演算ユニット

以下のサイクルを繰り返し,命令列としてコードされたプログラムを実行...1 プログラムカウンタの指す命令の取り出しとデコード...2 命令の実行...3 プログラムカウンタの更新通常の命令では,プログラムカウンタに命令の長さ分の値が加えられる.命令の中には,プログラムカウンタを書き換えるものがある.この命令を実行すると,指定された命令に分岐(ジャンプ)する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 38 / 200

Page 39: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)フォン・ノイマンアーキテクチャOSの目的ハードウエアとOSの関係

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 39 / 200

Page 40: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

OSの目的:より高機能なより使いやすい計算機の実現

.オペレーティングシステム(基本ソフトウエア)..

......ハードウエア上で実行され,種々のハードウエア資源の管理を行い,より強力でかつ使いやすい情報処理機能を実するプログラム

計算機システムの見方によって整理したOSの役割

計算機システムの見方 OSの役割 OSの目的資源の集合 資源の管理者 資源の最適な利用機能の集合 仮想計算機の提供 便利で高度な機能の実現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 40 / 200

Page 41: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

資源管理システムとしてのOSの役割

OS設計者の技術的な見方:

計算資源の最適な管理

メモリー資源の最適な管理

種々のデバイスの制御(デバイスドライバ)

2次記憶領域の管理(ファイルシステム)

通信機能

機密保護(ファイル,通信)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 41 / 200

Page 42: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

仮想計算機しての具体的な役割OS

情報処理システムのユーザからの見方

高水準デバイス(open, read, write)の提供

ユーザ専用の仮想的なメモリーメモリの提供

ユーザ専用の CPUの提供

階層的なファイルシステムの実現

安全なシステムの実現

広域分散システムの実現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 42 / 200

Page 43: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

OSの構成要素

大まかには,.情報処理能力........計算処理能力(CPU)+記憶容量(メモリー)+各種道具(デバイス)

OSは,これら資源を最適に管理するプログラムである....1 システムカーネル(システム制御の中枢)...2 プロセス管理(CPU資源の分配)...3 メモリー管理(メモリー資源の分配)...4 デバイス,ファイル,通信管理(使いやすいファイルや通信の提供)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 43 / 200

Page 44: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)フォン・ノイマンアーキテクチャOSの目的ハードウエアとOSの関係

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 44 / 200

Page 45: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込み主導の制御

フォン・ノイマン逐次機械の原理:...1 プログラムを命令列でコード化...2 命令列の逐次実行

しかし,この機構のみでは,

システムの管理からユーザの問題解決までのすべて巨大な一つの命令列として構成しなければならない.

システム内の状況や処理要求の緊急性や優先度に応じて,必要なプログラムを選択しすばやく起動するような処理は困難

等の問題がある.この問題を解決するために作り出された機構:

割り込み処理機構

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 45 / 200

Page 46: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みの仕組み

.割り込み..

......現在の実行の流れに “割り込み”,より優先度/緊急度の高い処理を即座に実行する機能.

人間の知的活動における割り込みをモデルとする.例:...1 「計算機システムの基礎」の教科書を読んいるとする.読者は,「OSの役割と構造」の章の終りまで読み続ける予定.集中を要する連続した作業.

...2 この作業中に,緊急を要する事態,例えば,携帯電話に大切な人物からの着信があった場合,以下のような対応をするであろう.

...1 作業再開のため,今読んでるこの行を確認し,必要ならその行に印をつけ,

...2 本を読むことを中断し,携帯電話での会話を行い,

...3 会話が終了したら,先ほど中断した個所を思いだし,そこから文章を読む行為を再開する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 46 / 200

Page 47: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みの性質 I

割り込みべき処理の発生を認識する必要がある.例えば,携帯電話やドアフォンは着信音やチャイムがなるように設定されている.

割り込みの可否の制御が必要な場合がある.例えば、本を読んでいるのではなく,就職のインタビューを受けている場合,電源を切るなどして携帯電話の割り込みを禁止する必要がある.しかしながら,少数の極めて緊急性の高い割り込みは禁止できないように設定されている.例えば日常の割り込みでも,火災警報システムなどの生命に関わる割り込み事象は抑止できない.

処理は優先度に応じて順序付けられている.例えば,読書を中断して電話中に,ドアフォンで速達郵便の配達の知らせるがあったら,電話を一時中断し,ドアを開けて郵便を受け取る.このように,処理は優先度に応じた階層構造をなす.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 47 / 200

Page 48: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みの性質 II

割り込み処理は入れ子構造をなす.割り込み処理中も,割り込みの優先度に応じて新たな割り込みが発生しうる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 48 / 200

Page 49: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みの性質 III

割り込み処理は現在の文脈を記録する.割り込み処理は,割り込まれた処理の再開のために,割り込む前に,現在実行中の処理の状況を記録しておく必要がある.現在実行中の処理の情報を文脈(コンテキスト)とよぶ.割り込み処理は入れ子構造をなすため,処理のコンテキストは,割り込まれた順に保存され,割り込みが終了すると,最後に割り込まれた処理の記録が呼び戻され,処理が再開される.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 49 / 200

Page 50: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みに必要なハードウエア機構 I

割り込み状態の検出ハードウエアは,割り込み種類毎に,割り込み要求の存在を示す状態を持つ.これら要求には優先度に応じて割り込みレベルと呼ばれる番号が割り当てられている.割り込み事象をがおこると,割り込みレベルと割り込み状態が,CPUの割り込み状態レジスタに書き込まれる.

割り込みマスク発生した割り込みが現在の処理に割り込んでよいか否かを決定する割り込みマスクレジスタをもつ.このレジスタの内容は,割り込みレベル毎の割り込みの可否表すビット列である.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 50 / 200

Page 51: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みに必要なハードウエア機構 II

割り込みベクタハードウエアは,割り込みの種類毎に,割り込みを処理するプログラムのアドレスを記憶する割り込みベクタと呼ばれる配列.

コンテキストスイッチ割り込み要求が割り込みレジスタに書き込まれると,CPUは,割り込まれたプログラムのコンテキスト,つまり,現在のプログラムカウンタと割り込み処理が使用する CPUレジスタ群を,あらかじめ用意された領域に保存しする.入れ子状の割り込みを実現するために,このコンテキストを保存する領域はスタックとして管理される.スタックは,以下の操作が定義されたデータ構造:

PUSH(データ) : 引数で与えられたデータをスタックに保存POP() : スタックトップに保存されたデータを返す

の二つの操作が定義されている.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 51 / 200

Page 52: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みに必要なハードウエア機構 III

ハードウエアは,割り込み状態を検出すると,

PUSH(割り込みコンテキストに属する CPUレジスタ);

を実行し,現在のコンテキストを割り込みスタックに保存する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 52 / 200

Page 53: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みに必要なハードウエア機構 IV

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 53 / 200

Page 54: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みに必要なハードウエア機構 V

割り込み処理の終了割り込み処理プログラムがその処理が終了すれば,割り込みからの復帰命令を実行する.この命令は,割り込みスタックに対して

CPUレジスタ群 ← POP();

を実行して,割り込みスタックのトップに保存されているレジスタ郡を回復し,通常の命令実行を再開する.プログラムカウンタも,割り込まれた時点に回復されているため,この再開によって,割り込みによって中断していたプログラムが,その中断時点の状態から実行を再開する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 54 / 200

Page 55: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込み主導アーキテクチャ

.近代的な計算機アーキテクチャ........ 計算機の制御機構 =フォン・ノイマン逐次機械 +割り込み機構

CPUの構造プログラムカウンタ演算レジスタ演算ユニット割り込みベクタ(割り込み処理プログラムリスト)割り込みマスクレジスタ(割り込みの可否の決定)割り込みレジスタ(状態記述,割り込みの可否の設定)

(注)逐次実行機械の上に,現在の処理の流れに “割り込み”,より優先度/緊急度の高い処理を非同期に実行する機能である「割り込み処理」を実現.これら構造は,当然,すべて,逐次状態機械の状態の中に作られた構造.ハードウエアによって実現されたプログラム.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 55 / 200

Page 56: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込み処理の役割と構造

割り込み処理:ハードからOSへのインタフェイス

割り込みの種類

デバイス割り込み

タイマー割り込み

各種異常状態(電源異常,各種ハードエラーなど)の検出等

ソフトウエア割り込み,プログラム例外

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 56 / 200

Page 57: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込み処理の流れとOSの構成要素

...1 割り込み状態の検出

...2 現在のマシン状態(CPUのレジスタ等)の待避

...3 割り込み情報とともに,割り込み処理ルーチンを起動

...4 (割り込み処理ルーチンからディスパッチされたOSの機能の実行)

...5 待避されたマシン状態を復帰

OSの構成構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 57 / 200

Page 58: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

割り込みレベルとOSの処理の階層構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 58 / 200

Page 59: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例外処理機構

.例外の考え方..

......

ユーザプログラムが,手続き呼び出しでは呼び出せない特権モードで行うOSの処理手続きを,割り込みと同様のコンテキストスイッチにより呼び出す機構

例外処理の導入の利点:プログラム固有の処理(例外)とシステム全体の処理の分離

例外処理は割り込み処理に影響を与えない

プログラムに与えられた資源(割り込みスタックではなくプロセススタックの使用等)を使用したプログラムの優先度に応じた処理

割り込み = 現在の処理とは独立のより優先度の高い処理の実行

例外 = 現在実行中のプログラムのために,特別の処理の実行

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 59 / 200

Page 60: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

代表的な例外処理

例外処理の対象となる代表的な事象...1 ハードウエアが命令を正常に実行できない場合

0での除算などの算術演算例外結果がレジスタで表現できる値を越えるオーバーフロー例外存在しない命令コードを実行しようとした時発生する命令コード例外存在しないアドレスや保護されているアドレスをアクセスしようとした時に発生するアクセス例外OSにしか使用が許されていない特権命令を実行しようとしたときに発生する特権命令例外

...2 アドレス変換例外

...3 システムサービスの呼び出し命令の実行

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 60 / 200

Page 61: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例外処理の概要 I

ハードウエアは,割り込みの場合と同様に現在実行中のプログラムのコンテクストを保存し,例外情報を引数としてOSの例外処理機構を起動する.OSの例外処理機構は,例外情報を分析し,以下のような例外処理を行う.

命令が正常に実行できない場合例外に対応して登録されている例外ハンドラーを探し,もしあれば例外ハンドラーを呼び出すことによって,ユーザプログラムの処理を再開する.例外ハンドラーが登録されていなければ,ユーザプログラムの異常終了処理を行う.

アドレス変換例外仮想記憶システムにおいて仮想アドレスにデータが読み込まれていない時に発生する.OSの例外処理機構は,仮想記憶管理システムを呼び出す.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 61 / 200

Page 62: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例外処理の概要 II

システムサービス入出力デバイスの操作や通信チャネルへのデータ送信など,特権で保護された資源のアクセスを伴う処理を行うためのOSの手続きを呼び出す.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 62 / 200

Page 63: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 63 / 200

Page 64: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセス管理の目的

資源の管理者としてのOSCPUの最大限の活用多数のユーザへのサービスIO等の待ち時間の有効利用

仮想計算機としてのOSユーザ(プログラム)専用の CPU他のユーザ(プログラム)と独立な実行

これらを同時に達成するために,各ユーザプログラムの実行をプロセス(タスク)として管理.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 64 / 200

Page 65: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ユーザの視点 VS資源管理

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 65 / 200

Page 66: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プログラムとプロセス

プログラム = コード化された処理の記述

プロセス = 計算機で実行される処理単位

= 実行状態にあるプログラム

= プログラム+状態

プログラム = ワードプロセッサー(処理手順)

プロセス = ワープロによる文書作成のある段階

= ワープロの実行位置+文書の情報+使用ユーザ情報

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 66 / 200

Page 67: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの考え方

プロセス=システム内で実行中の「仕事」

我々の日常的な仕事の例:

計算機システムの基礎の授業をうける

哲学概論の宿題をする.

体力をつけるためにジョギングをする,. . .

これらは,

それぞれ持続した独立の処理単位

それぞれを並行して実行する必要がある

その方法,

各処理を「仕事」と認識し,その状態をノートなどに記録

仕事の性質に応じて資源の割り当て,仕事をスケジュールする

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 67 / 200

Page 68: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセス管理による最適なCPU利用の実現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 68 / 200

Page 69: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの実現方式

考え方:「実行中のプログラム」をデータで表現(コード化)

.プログラムの実行状態の表現..

......

計算機のメモリ内に,プロセスの実行状態を保持する領域を確保し,この領域に名前を付ける.

この領域をプロセス制御ブロック(Process Control Block)と呼ぶ.プロセスの実体は,OSのシステム領域に確保された PCB.PCBに記述されるプロセス状態には,

CPUの状態(PCを含む各種レジスタ)プロセスの属性(仕事の性質,優先度,仕事が使用中の資源等)

.プロセスの実行と中断..

......

実行:プロセス制御ブロック内にセーブされた CPU状態を CUPレジスタにロード

中断:CPU状態をプロセス制御ブロックにセーブ大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 69 / 200

Page 70: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 70 / 200

Page 71: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

CPUによるプログラムの実行(復習)

PC:プログラム実行位置を保持Regi:各種レジスタ,機械の状態を保持

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 71 / 200

Page 72: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

コンテキスト

.コンテキスト........プログラムの実行環境.CPU状態,使用可能メモリ領域,その他の資源

.割り込みコンテキスト..

......

割り込み情報,CPUレジスタの一部,システム内の作業域,

割り込みハードウエアが設定.割り込み毎の固定域にセーブ.

.プロセスコンテキスト..

......

ユーザ情報,CPU状態,ユーザメモリー空間,使用中の資源情報

OSのプロセススケジューラが作成.各プロセスの PCBにセーブ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 72 / 200

Page 73: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

システム内のプロセスの構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 73 / 200

Page 74: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

PCBの情報:プロセスの内部状態(例)

現在実行中のプログラムコードの位置CPUのレジスタ内容

汎用レジスタスタックポインタプログラム状態レジスタ(プログラムの特権モード,条件コード等)

使用しているメモリ情報プロセスページテーブル

システムサービスの情報オープンしているファイル作成した子プロセス生成した通信ポート

OSの管理情報プロセス名プロセス ID優先度タイムスライスの残り

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 74 / 200

Page 75: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

コンテキストスイッチ

.ハードウエアによる割り込みコンテキストスイッチ..

......

CPUの状態を割り込み処理用のセーブ域にセーブ

割り込み情報をレジスタにロード

割り込み処理プログラムのエントリーポイントに PCをセット

.OSによるプロセスコンテキストスイッチ..

......

OSのプロセススケジュラー(割り込み処理ルーチン)が,現在のプロセスの CPU状態をそのプロセスの PCBへセーブ.

起動するプロセスの PCBから CPU状態を復帰し,割り込み処理の終了を通知

ハードウエアがプロセスの CPU状態を復帰

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 75 / 200

Page 76: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 76 / 200

Page 77: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの状態

外から見たプロセスの状態:

New:新たに作られたプロセス

Run:実行中(システムに1つだけ)

Ready:実行待ち

Wait:事象(I/Oの完了やシグナルの受信)

Terminated:終了

仮想記憶システム下では,さらに状態が増える.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 77 / 200

Page 78: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

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

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 78 / 200

Page 79: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの状態遷移 I

1⃝ プロセスの生成...1 事象

ユーザのプログラム起動要求プロセスが子プロセスを生成

...2 システムの処理...1 PCBの作成...2 ユーザ情報の設定...3 起動プログラムの準備...4 メモリーやディスク使用量等のシステム資源の付与

2⃝ 起動可能状態に設定...1 事象

プロセス生成処理の終了...2 システムの処理

...1 PCBを Ready状態にする.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 79 / 200

Page 80: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの状態遷移 II

3⃝ 実行プロセスの選出...1 事象

現実行プロセスが IO要求等で CPUを放棄現実行プロセスのタイムスライスを使いきり実行プロセスが終了

...2 システムの処理...1 Ready状態プロセスから一つ選出...2 CPU状態の切り替え(プロセスコンテキストスイッチを実行)

4⃝ プロセスから CPUを奪取(プリエンプション, preemption)...1 事象

タイムスライスを使いきりタイマーによるプロセススケジュラーによる再スケジュール

...2 システムの処理...1 現プロセスのコンテキストを PCBにセーブ...2 PCBを Ready状態にする.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 80 / 200

Page 81: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの状態遷移 III

5⃝ 待ち事象の発生...1 事象

IO要求他プロセスとの同期waitシステムサービス要求オペレータによるプロセスの一時停止(サスペンド)

...2 システムの処理...1 現プロセスのコンテキストを PCBにセーブ...2 プロセスを事象待ち状態にセット

6⃝ 待ち事象の解消...1 事象

IO完了,サスペンド解除等,待ち状態の解消他プロセスとからのシグナル

...2 システムの処理...1 プロセスを事象待ち状態を解除し Ready状態にする.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 81 / 200

Page 82: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセスの状態遷移 IV

7⃝ プロセスの終了...1 事象

プログラムの終了オペレータによるプロセスの停止

...2 システムの処理...1 種々の IO等の後処理...2 システム資源の解放...3 PCBの解放

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 82 / 200

Page 83: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 83 / 200

Page 84: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセススケジューリング

.プロセススケジュールの中核..

......

OSは,Ready状態(実行可能)のプロセスを待ち行列(Readyキュー)として管理し,CPUが空いたら,Readyキューから最適なものを一つ選出.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 84 / 200

Page 85: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

OSのプロセススケジュラー

プロセスの選出と入れ替えを行うOS割り込み処理プログラム.

起動タイミング

現プロセスが IO要求等により CPUを放棄

タイムスライス使い切りによるタイマー割り込みプロセスが CPUを放棄しない場合でも,ハードウエアタイマーをセットし,タイマー割り込みによって一定時間ごとに起動.この一定時間をタイムスライスと呼ぶ.現プロセスがCPUを放棄すれば,タイムスライスはリセットされる.

管理データ構造

Readyキュー

PCBのプロセス属性,履歴

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 85 / 200

Page 86: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

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

OSプロセススケジュラーは,プロセスの性質に応じて Redayキュー内の順番を維持し,システムを最適化.

システムの指標

CPU使用率

応答時間

スループット(単位時間辺りの完了プロセスの数)

プロセスの属性

優先度

IOの待ちの回数

タイムスライスの使い切り回数

リアルタイムプロセス,バッチ/バックグラウンドプロセス等の属性

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 86 / 200

Page 87: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Readyキュー

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 87 / 200

Page 88: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

スケジューリングポリシー実現例

.フィードバック付マルチレベルキュー..

......

ポリシー

IOバウンド(IOを頻繁に行う)プロセスには高優先度を与える

CPUバウンド(計算主体)プロセスには低優先度を与える

プロセスが IOバウンドか CPUバウンドを動的に推定

実行方法

n回 IO終了時に優先度を上げる

k回タイムスライス使い切り時に優先度を下げるnと kを調節しチューニングする.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 88 / 200

Page 89: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 89 / 200

Page 90: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

並行処理機能のユーザへの提供

目的:プログラム部分を同時並行的に実行可能な単位に分割し,より効率的な処理を可能にする.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 90 / 200

Page 91: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ユーザに提供する仮想計算機

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 91 / 200

Page 92: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

実際の管理対象

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 92 / 200

Page 93: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

並列処理単位の実現方式

.(子)プロセス..

......

プロセスと同一の機能を持つ実行単位.

メモリ等の資源を持つ.

プロセス間でメモリを共有可能.

切り替え(コンテキストスイッチ)コスト大

.スレッド(thread)..

......

プロセス内の並列な実行単位.

固有のプログラム実行状態を持つ

メモリー資源等は共有

切り替え(コンテキストスイッチ)コスト小

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 93 / 200

Page 94: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

スレッドの構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 94 / 200

Page 95: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理プロセスの概念コンテキストとコンテキストスイッチプロセスの振る舞いプロセススケジューリングプロセスとスレッドの利用並行プログラムの排他制御

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 95 / 200

Page 96: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

非同期実行と資源の共有

並行プロセスは,メモリー等の資源を共有し,全体で問題を解決する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 96 / 200

Page 97: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

排他制御の必要性

複数プロセスが同時動作 =⇒資源を競合 =⇒競合の調停が必要例情報生成プロセス

process Produce {

while (TRUE) {

if idex = MAX

{}

else

{

{data作成;}index = index + 1;

BUF[index] = data

}

}

}

情報消費プロセス

process Consumer {

while (TRUE) {

if idex = 0

{}

else

{

data = BUF[index];

index = index - 1;

{dataの処理;}}

}

}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 97 / 200

Page 98: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:Producer-Consumer問題

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 98 / 200

Page 99: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

同時更新による不整合の分析(1)

例 1:indexの更新における不整合.

Producerの動作 index = index + 1

P1 共有変数 indexのローカル変数 (index)への読み込みP2 ローカルに index = index + 1の実行P3 共有変数 indexの書出し

Consumerの動作 index = index - 1

C1 共有変数 indexのローカル変数 (index)への読み込みC2 ローカルに index = index - 1の実行C3 共有変数 indexの書出し

実行ステップ [P1, P2, P3]と [C1,C2,C3]は並行して行われる.例えば,

[C1, P1, P2, P3,C2,C3]

の順に実行されると,P3の結果が失われ意図せぬ結果となる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 99 / 200

Page 100: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

同時更新による不整合の分析(2)

例 2:Buffer[index]と indexの更新における不整合.

Producerが dataをバッファへ格納

P1 index = index + 1P2 Buffer[index] = data

Consumerが dataをバッファから取り出す

C1 data = Buffer[index]C2 index = index - 1

例えば,[P1,C1, P2,C2]

の順の実行では Consumerの dataにに P2の結果が反映されない.

共有資源の同時更新はシステムを破壊する!

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 100 / 200

Page 101: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

排他制御による不整合の解決

.排他制御(Mutual Exclusion)の原則..

......

一連の「更新単位」の変更は,中断されずに排他的に行われることを保証する.

更新単位:一連の互いに依存する共通変数の読み込み・書出し操作

排他的実行:一つのプロセス(スレッド)だけが,変更権を独占

.排他制御の実現戦略..

......

...1 共有資源の変更を行うプログラム部分を危険領域(critical region)として認識.危険領域の範囲は,プログラムの処理に依存する抽象的な概念.

...2 各共有資源について,システム内の唯一のプロセスが危険領域に入ることを許す.

このような仕組みをソフト的に作成する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 101 / 200

Page 102: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

危険領域の例

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 102 / 200

Page 103: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

排他制御機構(1):ロックによる排他制御

...1 各資源 S毎に共有メモリ上に一ビットの錠(Lock)を割り当てる.

...2 Lock == 1なら使用中,Lock == 0なら資源使用可と約束.

...3 Lockを取得する処理,Lockを解放する処理を作成.

Lockを取得する処理 if Lock == 0 then

{ Lock = 1; 鍵取得成功を通知 }else { 鍵取得失敗を通知 }

Lockを解放する処理: Lock = 0

しかし,

Lock自身共有変数 =⇒ Lockを操作する処理は危険領域

前回と同じ問題が発生.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 103 / 200

Page 104: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

test-and-set命令によるLock操作の実現

.test-and-set(Lock)の動作..

......

...1 システムのバスをロックし,他ハードウエアユニットから Lockのあるメモリ領域操作のアクセスを禁止

...2 Lockを読む.

...3 もし Lock = 1なら失敗の条件コードをセット

...4 もし Lock = 0なら Lockに 1を書き込み,成功の条件コードをセット

...5 システムバスのロックを解放

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 104 / 200

Page 105: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Lock操作の実現

各共有資源 Sに対して LockSを割り当て,Sの危険領域に対して以下のようにプログラムする.

{プロセス固有の処理 }while(not(test-and-set(LockS))) /* LockSの取得 */

Sの危険領域LockS = 0; /* LockSの解放 */{プロセス固有の処理 }

注:

このロックの取得処理では,test-and-set(LockS)が成功を返すまで,test-and-set(LockS)呼び出しを繰り返す.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 105 / 200

Page 106: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

コード例

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 106 / 200

Page 107: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Lock使用上の注意点 (1):Busy Wait

別なプロセスがロックを持っている間は,他のプロセスはロックを取得するために test-and-setを実行し続け,CPUの無駄となる.

例:

Producerはロックを取った後,データ作成等の処理を行う.このため,この間は他のデータがあっても,Consumerはデータを取り出すことができない.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 107 / 200

Page 108: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Lock使用上の注意点 (2):デッドロック

二つ以上の資源を使用する場合,ロックの使用に関して取り決めが必要.問題の例:

資源 1の Lock1と資源 2の Lock2の二つを使用.

二つのプロセスが Lock1と Lock2を使い資源 1と資源 2を操作.

この場合,プロセス 1が Lock1を取得した後プロセス 2が Lock2を取得した場合,2つのプロセスは互いに無限に待ち続けることになる.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 108 / 200

Page 109: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

より高級な排他制御機構

Lockを使ったより高水準な同期と排他制御機構を構築..Dijkstraのセマフォー..

......

以下の機能を備えた排他制御と同期のモデル.

資源が利用可能かのチェック

資源要求プロセスの待ち行列

資源返却時の資源待ちプロセスのWakeup

.Brinch Hansen, Hoareのモニタ..

......資源の更新を,唯一の管理者(モニタ)にまかせることによって,同期と排他制御を実現するモデル.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 109 / 200

Page 110: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

セマフォーの機能

セマフォー S 資源 Sの数と,資源待ちのプロセスの待ち行列.

P命令.資源使用要求の処理.以下の動作を atomicに行う.

P(S){

if (S == 0) then

{プロセスを資源 Sの待ち行列に入れる}else

{ S = S - 1;}

}

V命令.資源解放処理.以下の動作を atomicに行う.

V(S){

if (S待ちプロセスが存在){一つのプロセスを選び Wakeup処理}

else

{ S = S + 1; }

}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 110 / 200

Page 111: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

セマフォ(補足)

説明の通り、セマフォーは、使用可能な資源の数 Sと、使用可能な資源が無い (S == 0)の時の待ち行列

を組みにしたデータ構造。

P命令:資源の確保命令の動作資源確保命令であるから、

S > 0なら、Sを 1減らす。S = 0なら、待ち行列にいれる。V命令:資源の返却命令の動作資源返却命令であるから、

Sに 1を加える。ただし、S == 0で待ち行列が空でなければ、S == 0のままとし、プロセスを1つ起こす。

さらなる補足、Lockの数字は空きか否かを表す真理値({0, 1})。0を「空き」とするか「使用中」と約束するかは、任意でどちらでもよい。通常、test-and-set命令にならい、1を「使用中」と約束。

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 111 / 200

Page 112: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

セマフォーを使用したPoducer-Consumerプログラム

以下のセマフォを使用.=の左辺はセマフォの初期値.

semaphore Lock = 1:危険領域へのアクセス以前通りの Buffer[index]をアクセスするためのロック.上限値 1のセマフォはロックと同期機構を組み合わせた機能を果たす.

semaphore FULL = 0:データ設定済バッファ数.Consumerが使用可能な資源の数.Consumerはこの資源に対して P命令を出し資源を要求.もし 0なら待ちとなる.Producerが V命令によって資源を返却.

semaphore EMPTY = MAX:空きバッファ数Producerが使用可能な資源の数.Producerはこの資源に対して P命令を出し資源を要求.もし 0なら待ちとなる.Consumerが V命令によって資源返却.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 112 / 200

Page 113: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

セマフォを使ったProduce-Consumerプログラム

情報生成プロセス

process Produce {

while (TRUE) {

{data作成;}P(EMPTY);

P(Lock)

index = index + 1;

BUF[index] = data

V(Lock):

V(FULL);

}

}

情報消費プロセス

process Consumer {

while (TRUE) {

P(FULL);

P(Lock);

data = BUF[index];

index = index - 1;

V(Lock);

V(EMPTY):

{dataの処理;}}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 113 / 200

Page 114: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

セマフォの実現

セマフォ実現の

カウンタ

待ち行列

等は共有資源.

=⇒ P命令や V命令は危険領域.これらは,ロックを用いて保護.

P命令の実現例:

P(S) {

while(not(test-and-set(LockS));

if (S == 0) then

{プロセスを資源 Sの待ち行列に入れる}else

{ S = S - 1;}

LockS = 0;

}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 114 / 200

Page 115: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

モニターによる排他制御

.モニター........共有資源のアクセス関数を集めたパッケージ

モニターは共有変数等をモニタの管理下に置き,ユーザの直接変更を禁止

資源にアクセスするために十分な機能を持つ関数群を提供.

資源へのアクセスはこれら関数のみを用いて行う.

モニターは,これら関数が排他的に実行されることを保証.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 115 / 200

Page 116: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

モニターによる排他制御の例

monitor Buffer

var index, Buffer[1..MAX];

queue Get, Put;

function put(data) {

if index > MAX

wait(Put);

index = index + 1;

Buffer[index] = data;

if index = 1 then

wakeUp(Get);

}

end monitor

function get() {

if index = 0

wait(Get);

data = Buffer[index];

index = index - 1;

if index = MAX - 1

wakeUp(Put);

return(data);

}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 116 / 200

Page 117: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

モニターの実現戦略

より低レベルの機能(ロック,セマフォ等)を組み合わせて実現する.実現方法は多様.

実現戦略の例:

モニターは,共通資源を内部に持ち,処理要求を順に受け付けるサーバとして実現.

ユーザに提供する各処理関数は,要求を待ち行列に登録するだけの処理を行う.

要求行列はロックで保護.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 117 / 200

Page 118: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

モニターの実現戦略

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 118 / 200

Page 119: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理メモリーの構造とメモリー管理の目的メモリー管理アーキテクチャ仮想記憶方式

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 119 / 200

Page 120: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

システム内のメモリー

メモリー資源は階層構造をなす....1 レジスタ(CPU内)...2 キャッシュ(CPU内)...3 主記憶装置(狭い意味でのメモリー)...4 2次記憶装置(ディスク等)...5 アーカイブ(off line)

この内,

主記憶装置

の管理が,狭い意味でのメモリー管理の対象.さらに,メモリー管理の実現のために,

2次記憶装置

もメモリーとして使用.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 120 / 200

Page 121: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

メモリー管理の目的

資源の管理者としてのOSメモリー資源の最大限の活用多数のユーザへのメモリーの供給

仮想計算機としてのOSユーザ(プログラム)専用の多量なメモリー0番地から始まる使い安いメモリー空間

これらを同時に達成するために,各ユーザプログラムに,システム内のメモリー資源を,各プロセスに動的に割り当てる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 121 / 200

Page 122: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ユーザの視点 VS資源管理

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 122 / 200

Page 123: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

メモリーの用途

...1 システム管理データ割り込みコンテキストプロセス PCBデバイスドライバ領域· · ·

...2 ユーザ(プロセス)のメモリー要求プログラム領域データ領域

システム管理データはあらかじめ割り当てられ,それぞれの管理プログラムによって特別なメモリー管理がなされる.

システムのメモリー管理の対象は,プロセスのメモリー要求の処理.

プロセスのメモリー要求の特徴.大容量かつ無制限.システムへの処理要求に応じていくらでも増える.動的.システムの状態に応じて変化し,あらかじめ計画できない.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 123 / 200

Page 124: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理メモリーの構造とメモリー管理の目的メモリー管理アーキテクチャ仮想記憶方式

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 124 / 200

Page 125: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

主記憶装置と物理アドレス

主記憶装置:一次元配列

メモリー : PM[a1, .., an]a1, . . . , an : メモリーアドレス

load(PM, ai, r) : レジスタ rへのメモリーからの読み込みstore(PM, ai, r) : レジスタ rのメモリーへの書き出し

a1, . . . , anは CPUから,システムに装備されたメモリーへアクセスするためのアドレス

使用者にとっては,具体的な物理アドレスの値はどうでもよい.

メモリー管理の第一歩は,この物理アドレス情報への依存を取り除き,メモリーアドレスを仮想化すること.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 125 / 200

Page 126: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

物理メモリーアドレスの抽象化

論理メモリ:仮想的なアドレス空間を [1, . . . , n]もつメモリー

論理メモリー : LM[1, .., m]アドレス変換機構 : ϕ ∈ {1, .., m} → {a1, . . . , an}

Load(LM, i, r) : レジスタ rへのメモリー LM[i]からの読み込みStore(LM, i, r) : レジスタ rのメモリー LM[i]への書き出し

アドレス変換機構:論理メモリーに物理メモリーを対応させるハードウエアメカニズム

論理アドレス空間 : [1, . . . , n]物理アドレス空間 : [a1, . . . , an]アドレス変換機構 : ϕ ∈ {1, .., m} → {a1, . . . , an}

Load(LM, i, r) : load(PM, ϕ(i), r)Store(LM, i, r) : store(PM, ϕ(i), r)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 126 / 200

Page 127: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

アドレス変換の概要

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 127 / 200

Page 128: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ページテーブル方式

論理アドレス空間をページに分割し,ページ単位に物理メモリーに対応させる方式.

...1 ページ番号と物理アドレスの対応を,物理アドレスに置かれたページテーブルに記録.

...2 論理アドレスを,ページ番号とページ内のディスプレイスメントの組と解釈.

...3 ハードウェアがページテーブルを参照し,論理アドレスを物理アドレスに変換.

ページテーブル (PT) : 物理ページアドレスの表

論理アドレス = ページ番号 (P) +ディスプレイスメント (D)

アドレス変換 ϕ(P, D) = PT[P] + D

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 128 / 200

Page 129: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ページテーブル方式の概要

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 129 / 200

Page 130: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プロセス固有メモリーの実現機構

背景と目的

各プロセスは独立であり,他のプロセスの存在によって,自分が使用可能なメモリーアドレス空間が変わるのは好ましくない.

各プロセスにそのプロセス固有の論理アドレス空間を与える.

OSの実現戦略

アドレス変換レジスタ情報をプロセスコンテキストに加え,CPUレジスタ同様,プロセスのコンテキストスイッチの際に切り替える.

これにより,プロセスは他プロセスとは論理的に完全に独立の固有のメモリー空間がえられる.

さらに,すべてのプロセスの共有資源であるシステム管理情報を保持するシステム空間を別に確保.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 130 / 200

Page 131: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

典型的なメモリーアーキテクチャ

ハードウエアレジスタシステムページテーブルレジスタ(SPT):システムページテーブルアドレスプロセスページテーブルレジスタ(PPT):プロセスページテーブルアドレスアドレス変換キャッシュ(TLB)

システム空間PCBプロセスキュー,デバイスキュープロセスページテーブルプール

プロセス空間プログラム領域プログラム作業域(スタック,ヒープ)

プロセス管理機構は,プロセスのコンテキストスイッチ時に,プロセスページテーブルレジスタを切り替えることによって,プロセス空間の切り替えを行う.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 131 / 200

Page 132: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

アドレスとアドレス空間(実現例)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 132 / 200

Page 133: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

メモリー管理アーキテクチャの概要

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 133 / 200

Page 134: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

メモリー管理によって実現されるメモリー空間

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 134 / 200

Page 135: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

アドレス変換方式

φ (S,P,D) = if TLB[SP] == F thenreturn (F + D)

else if S == 0 then

{

F = SPT[P];

TLB[SP] = F;

return (F + D);

}

else

{

F = PPT[P];

TLD[SP] = F;

freturn (F + D);

}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 135 / 200

Page 136: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理メモリーの構造とメモリー管理の目的メモリー管理アーキテクチャ仮想記憶方式

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 136 / 200

Page 137: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

仮想記憶方式の目的

ページテーブル方式によるメモリーアーキテクチャの利点

論理アドレスの実現

システム空間,プロセス空間の実現,さらに

物理メモリーによる制約からの解放

メモリー要求の性質

プロセスのメモリー空間は,任意の時点で一つしか使われない.

さらに,通常メモリー空間のごく一部しか同時に使用されない..仮想記憶方式..

......

上記性質を利用し,物理メモリを動的にうまく割り当てることにより,

プロセスのメモリー空間の総和 ≫システムの物理メモリ

なる巨大なメモリー空間を実現するソフトウエアメカニズム.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 137 / 200

Page 138: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

仮想記憶空間実現方式の概要

基本的な考え方:...1 プロセスのメモリーは 2次記憶装置上...2 2次記憶上のメモリーを,一時的にページ単位に物理メモリーにコピー必要条件:

使用される前に物理メモリーにコピーする必要がある.

これを,on-demandで実現

仮想記憶実現戦略

アドレス変換時に物理ページのコピーが存在しないことをハードウェアが検出し,アドレス変換例外をOSに通知

仮想記憶管理システムが,OSのアドレス変換例外処理から呼び出され,必要なページを2次記憶装置からコピー

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 138 / 200

Page 139: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ハードウエア機構(1)ページテーブルエントリ

ページテーブルエントリの改良

V : 有効ビットM : 変更ビット

PROT : アクセス保護· · · : その他(参照情報等)

FRAME : 物理ページ番号(上位 32ー Kビット)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 139 / 200

Page 140: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ハードウエア機構(2)アドレス変換例外の通知

アドレス変換処理の変更

ページテーブルから取り出す処理以降の処理

F = PT[P]

TLB[SP] = F;

return(F + D);

を以下の様に修正

PTE = PT[P];

if PTE.V = 1 then

F = PTE.FRAME

TLB[SP] = F;

return (F * 2EK(ページサイズ) + D);else

{アドレス変換例外を通知}

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 140 / 200

Page 141: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ソフトウエア機構(1)記憶管理用データ構造

OSの記憶管理は論理アドレスとページ内容との対応を管理...1 常に,論理アドレスと2次記憶ページの対応を維持....2 さらに,ページが物理メモリにある時,論理アドレスと物理ページおよび2次記憶上のページの双方の対応と維持.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 141 / 200

Page 142: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ソフトウエア機構(2)アドレス変換例外処理

.仮想記憶管理..

......アドレス変換例外発生時にハードウエアから呼び出され,2次記憶上のページの物理メモリーへの動的割り当てを行う.

アドレス変換例外処理の概要...1 ハードウエアがアドレス変換例外(ページフォルト)を検出した時呼び出されるアドレス変換例外処理プログラム.以下の処理を行う.

...1 PT[P]から2次記憶アドレスを取り出す

...2 物理メモリーページ Fを確保

...3 物理メモリーページの2次記憶テーブルに2次記憶アドレスを記録し,PTに FをセットDISK[F] = PT[P].FRAME

PT[P].FRAME = F...4 2次記憶からの読み込み処理...5 I/O完了割り込みが PTの有効ビットをセット

...2 プロセスによりメモリ参照の再実行

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 142 / 200

Page 143: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

物理メモリーの確保

「物理ページ Fの確保」以外は機械的に実行可能.

物理ページ Fの確保...1 物理ページのリストが空でなければ,そこから一ページ使用....2 物理ページのリストが空なら,以下の処理を行う.

...1 何らかの方法でで PT[P].V = 1なるページ Pを選択.

...2 物理ページを解放.F = PT[P].FRAME

if PT[P].M == 1 then

DISK[F]に記録された2次記憶にページを書出すPT[P].FRAME = DISK[F]

PT[P].V = 0...3 解放したページ Fを使用.

さらにこの中で,「何らかの方法でで PT[P].V = 1なるページ Pを選択」が仮想記憶管理の中心課題.他の処理は,機械的に実行可能.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 143 / 200

Page 144: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

解放ページの選択(1)ワーキングセット以前

グローバルな管理

システムで使用されているページを一つのリストとして管理そのリストに何らかの優先順位をつける.例えば,

FIFO:何もしないLRU:最近最も使われなかったページを選択.参照ビット等を使用OPT:仮想的な最適戦略

根本的な未解決問題.スラッシング..

......メモリー要求が一定水準を越えると,システムの資源のほとんどがページフォルト処理に費やされる状態.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 144 / 200

Page 145: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

スラッシング問題 I

前提:

3個のプロセス {A, B,C}が独立に実行.A −→ B −→ Cの順でラウンドロビン方式でスケジュール.

各タイムスライス間にプロセスが使用するページ集合が 2ページずつ変化.

プロセスの参照ページの例:

タイムスライス 1 タイムスライス 2 · · ·A参照ページ集合 A1, A2, A3, A4, A5 A3, A4, A5, A6, A7 · · ·B参照ページ集合 B1, B2, B3, B4, B5 B3, B4, B5, B6, B7 · · ·C参照ページ集合 C1,C2,C3,C4,C5 C3,C4,C5,C6,C7 · · ·

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 145 / 200

Page 146: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

スラッシング問題 II

3回のプロセスコンテキストスイッチが起った直後のページ参照系列:

A1, A2, A3, A4, A5, B1, B2, B3, B4, B5,C1,C2,C3,C4,C5 (現時点)

今後参照されるページ列:

(現時点) A3, A4, A5, A6, A7, B3, B4, B5, B6, B7,C3,C4,C5,C6,C7, · · · ,

9ページの物理メモリを使い,デマンドページングを実行すると,「現時点」での物理ページ集合:

{B2, B3, B4, B5,C1,C2,C3,C4,C5}

プロセス Aのページ参照はすべて,ページフォルトとなる.スラッシング:この状況が,各コンテキストスイッチで繰り返される.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 146 / 200

Page 147: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

解放ページの選択(2)ワーキングセットモデル

P.J. Denning. The Working Set Model for Program Behavior,CACM 11(5), 323–333, 1968.

基本的洞察

ページ参照は,プログラムの処理に由来する局所性を持つ.

ワーキングセットW(t, τ):プロセスが時刻 t − τから時刻 tまでに参照するページ集合.

システムのメモリー要求 = プロセスのW(t, τ)の総和メモリ管理戦略

システムの負荷調整:プロセスのワーキングセット単位で行う.負荷が限度を越えたら,ワーキングセットごとプロセスをスワップアウト

ページ入れ替えは,各プロセスのワーキングセット内で行う.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 147 / 200

Page 148: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ワーキングセットのページングとスワッピング

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 148 / 200

Page 149: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ページファイルとスワップファイル

ワーキングセットモデルでは,以下の 2つの2次記憶ファイルを使用..ページファイル..

......プロセス固有の(変更可能な)仮想記憶ページを保存.プロセス生成時に,プロセスに与えるメモリ空間

.スワップファイル..

......ワーキングセット全体の保存.システム起動時に,最大プロセス数を決定し,それに応じてスワップスロットを確保する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 149 / 200

Page 150: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プログラムコードページの状態遷移

プログラムコード等の読み込み専用データページの状態...1 プログラムファイル上...2 メモリー上

状態遷移

初期状態:1.

1 =⇒2:ページの読み込み2 =⇒1:メモリーのリリース

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 150 / 200

Page 151: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

データページの状態遷移

ヒープデータ等の初期値なし,読み書き可能ページの状態とその遷移...1 メモリー上,ページファイル領域未割り当て,変更あり...2 メモリー上,ページファイル領域割り当て済み,変更なし...3 メモリー上,ページファイル領域割り当て済み,変更あり...4 ページファイル上

初期状態:1.(プロセスのアドレス参照によりメモリーページが割り当てあれる.)

1 =⇒4:ページファイルスロット確保,データの書き込み2 =⇒4:メモリーのリリース,2 =⇒3:データの書き換え3 =⇒4:メモリーのリリース,ページの書き出し4 =⇒2:ページの読み込み

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 151 / 200

Page 152: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理デバイスとファイルの管理の目的デバイスの仮想化階層ファイルシステム

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 152 / 200

Page 153: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスとファイルの管理の目的

資源の管理者としてのOS多種多様なデバイスの制御最適な制御適切なエラー処理

仮想計算機としてのOS一様な IOインタフェイス(open, read, write)名前による抽象的な管理(ディレクトリ,フォルダ,ファイル)

これらを同時に達成するために,デバイスを階層的に抽象化するソフトウエアレイヤーを構築.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 153 / 200

Page 154: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理デバイスとファイルの管理の目的デバイスの仮想化階層ファイルシステム

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 154 / 200

Page 155: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスの仮想化階層

デバイスの機能は階層構造をなす.

デバイス階層 実現するプログラム1 ハードウェア 物理的,電気的な制御機構2 個々のデバイス デバイスコントローラ3 汎用インタフェイスを持つデバイス デバイスドライバ4 ファイル/ディレクトリ ファイルシステム

この階層に中で,3の「デバイスドライバ」と 4の「ファイルシステム」がデバイスとファイルの管理を実現するOSの部分.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 155 / 200

Page 156: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

入出力管理プログラムの構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 156 / 200

Page 157: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスとデバイスコントローラ

.入出力装置(デバイス)..

......物理的な原理によって,情報を外部に出力したり,外界からの情報を入力したりする装置

.デバイスコントローラ..

......

物理的なデバイスの状態を制御し,ビット列でコード化されたコマンド(命令)を受け取り,結果をビット列で表現されたデータとして返す仮想的な装置(コンピュータ)を実現するプログラム(ハードウエア)

CPUに

コマンドの入力

データの入出力

のためのデバイスレジスタを提供.CPUは,コマンドをデバイスレジスタに書きこむことによってデバイスを操作.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 157 / 200

Page 158: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスとデバイスコントローラーの構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 158 / 200

Page 159: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスレジスタへのアクセス

このデバイスコントローラのレジスタを CPUからアクセスする方法...1 特殊な CPU命令の使用各デバイスコントローラに,IOポートと呼ばれる番号を割り当て,この番号を引数としてコントローラの持つレジスタを読み書きする.

...2 メモリーマップ IOシステムのメモリ空間の一部がデバイスレジスタ領域として予約され,デバイスコントローラの接続時に,個々のデバイスコントローラの制御レジスタ群が,予約された領域の一部に対応付けられる.この予約されたシステム空間領域は,通常のアドレス変換機構とは別の処理がなされ,デバイスレジスタにデータが届けられる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 159 / 200

Page 160: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

メモリーマップ IO

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 160 / 200

Page 161: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:DISK

ディスクハードウエア:

シリンダー,トラック,セクター構造の記録媒体

シーク:ディスクヘッドの移動によるトラックの選択

データ転送:ビットストリームによるデータ転送

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 161 / 200

Page 162: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ディスク上のデータ配置

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 162 / 200

Page 163: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

DISKデバイスコントローラ

ディスクコントローラ(+ DMAコントローラ):

論理アドレスを持つセクター集合

内部バッファーによるビット列のバッファリング

エラーチェックレジスタを介した CPUインタフェイス

転送アドレスとバイト数の設定動作の指定割り込みの通知

* DMAコントローラ;Direct Memory Accessコントローラ.デバイスコントローラバッファとメモリー間の転送を制御.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 163 / 200

Page 164: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイスドライバの役割

.デバイスドライバ..

......デバイスコントローラが提供するデバイスの機能を使い,標準な入出力インターフェイスを提供するソフトウエア.

デバイスドライバとシステムのインタフェイス

システムの IO要求処理から呼び出され,標準の IO要求をデバイスコントローラのコマンド(プログラム)に翻訳し,デバイスコントローラを起動

システムの IO割り込み処理ルーチンから呼び出され,IO完了処理を行う.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 164 / 200

Page 165: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

デバイス独立の入出力処理

.OSの入出力処理........デバイスタイプ毎の標準的な入出力処理の提供.

デバイスタイプ

キャラクタデバイス

ブロックデバイス

入出力処理Program主導 IO処理

ポーリング文字転送

割り込み主導 IO処理割り込みとプロセスの状態遷移

バッファリング

エラー処理

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 165 / 200

Page 166: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

OSの入出力管理の構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 166 / 200

Page 167: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理デバイスとファイルの管理の目的デバイスの仮想化階層ファイルシステム

...7 情報処理システムの実現

...8 課題と復習

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 167 / 200

Page 168: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ファイルシステムの目的と構造

.ファイルシステムの目的..

......

外部記憶装置上(通常ディスク)に

階層的な名前空間(ディレクトリ,フォルダ)

アクセス制御機構

標準的な操作

等の構造をもつデータ管理システムを提供.

.ファイルシステムの構造..

......

OSの入出力管理を利用し,フラットな記憶領域に,

使用可能領域の管理情報

名前と領域の対応

所有者情報

等の制御データを維持することにより実現.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 168 / 200

Page 169: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ディスクの領域管理情報

ディスク上の管理情報の例(Unix系OS)

MBR(Master Boot Record):ディスクの 0セクタに置かれ,システムのブート情報とパーティションテーブルを格納.

パーティションテーブル:デスク内にある各パーティションの先頭と終了位置の記述.パーティション:デスクにファイルシステムを格納する単位.各パーティションは以下のような制御情報を格納

ブートブロック:システムを起動するためのプログラム領域スーパーブロック:ファイルシステムの種類,ブロックサイズ,ブロック数等のファイルシステムの属性情報を格納.フリーブロック情報:未使用領域の情報Iノード (I-node, Index Node)領域:ファイルシステム内に存在する各ファイルの属性情報ルートディレクトリファイルとディレクトリ領域

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 169 / 200

Page 170: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ディスク領域の構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 170 / 200

Page 171: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ファイルのデータ領域の表現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 171 / 200

Page 172: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ディレクトリ階層

.ディレクトリ..

......

名前空間を実現するための

名前 =⇒ ファイル(の Iノード番号)

対応関係を保持したデータファイル.

ルートディレクトリを起点とし,ディレクトリが指すファイルにディレクトリを許すことによって,ファイル集合は木構造の階層関係をなす.UNIXシステムの例

/ ⇒ {bin, etc, home, dev, . . .}etc ⇒ {fstab, fonts, rc, hosts, . . .}bin ⇒ {awk, bsh, cat, cp, . . .}

...

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 172 / 200

Page 173: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ディレクトリ構造

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 173 / 200

Page 174: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

Iノードの構造例(Linux ext2ファイルシステム)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 174 / 200

Page 175: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ファイルシステムの提供する機能の例:ファイルの操作

OSのファイルシステムは,以上の構造の上に,以下のようなファイル操作をユーザに提供する.

Create:新しいファイルを作成する.(openと統合されている場合も多い)

Open:ファイルパスを指定し,ファイルを使用可能にする.

Renname:名前の変更

Close:ファイルの使用終了.

Read:ファイルの読み込み.

Write:ファイルへの読み込み.

Append:ファイルへの追加下記だし

Get Attributes:ファイル情報の取得

Set Attributes:ファイル情報の設定

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 175 / 200

Page 176: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

ファイルシステムの提供する機能の例:ディレクトリの操作

ディレクトリに対しては以下のようなファイル操作が提供される.

Create:新しいディレクトリの作成する.

Delete:ディレクトリの削除

Opendir:ディレクトリをアクセス可能にする.

Closedir:ディレクトリの使用終了.

Readdir:ディレクトリの読み込み.

Rename:ディレクトリの名前変更.

Link:ファイルのリンク

Unlink:ファイルの削除

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 176 / 200

Page 177: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 177 / 200

Page 178: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

情報処理システムの実現

情報処理システムは,

情報をコード化し,

コードを変換・解釈し,新たな情報を生成する

ことを繰り返すことにより,問題解決を行うシステム.

この原理により,任意に強力なシステム(機械)を実現できる.例えば,

任意のデータを送受信できる仮想的なネットワーク

ネットワーク上の任意のユーザに任意のサービスを提供するプログラム

...

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 178 / 200

Page 179: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:ネットワークの実現(1)ビット列の転送

2システム間のビット列の送受信

ハードウェア:ケーブルや無線などの物理的な伝送路

物理量の時間変化をビット列として読み出すデバイスコントローラ

CPUからビット列を読み書きするデバイスドライバ

で実現できる.さらに,ビット列は任意の情報をエンコードかのであるから,

エラーのない強力で柔軟なネットワーク

ワーク上の特定のユーザ(プログラム)へのユーザへ提供

など,あらゆることが実現できる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 179 / 200

Page 180: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:ネットワークの実現(2)ネットワークシステム

柔軟なネットワーク

ビット列を,「宛先」のが含まれたメッセージと解釈.

受けっ取ったメッセージが自分宛でなければ,宛先のより近い計算機に転送

自分あてのメッセージは,その中身を,ユーザに渡す.

確実につながるネットワーク

メッセージを受け取ったら短い確認メッセージを送信すると約束

送信者は,確認メッセージを受け取るまで,同一メッセージを送り続ける

エラーのないネットワーク

エラーチェック符合を導入.

受信者は,エラーチェック符合によりエラーの有無をチェックし,エラーなら再送を要求

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 180 / 200

Page 181: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:ネットワークの実現(3)サービスの提供

ネットワークの任意ユーザに任意のサービスを提供可能.サービスを実行するプログラムをネットワーク上に用意する.

装置の操作がしたければ,そのデバイスコントローラを書く.データを処理したければ,データを格納するデータベース(高度なファイルシステム)を構築する....

宛先情報に,ユーザ名(プログラム番号)を追加サービス機能を実現するデバイスドライバを実現

要求を解釈し,メッセージを作成メッセージをサービスプログラムに対する送信

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 181 / 200

Page 182: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プログラミングシステム

計算機システムは,より高度な機能をもつシステムを模倣するステップを何段階も組み合わせて実現されている.仮想的なコンピュータの実現:

M1 ≤ M2

.プログラミング言語..

......コードを操作し新しい計算機システムの機能を模倣するプログラムの構築を実現するシステム.

新しいプログラミング言語の実現:

L1 ≤ L2

L1が M1で動くプログラミング言語,L2が M2で動くプログラミング言語であれば,M1 ≤ M2なら L1 ≤ L2である.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 182 / 200

Page 183: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

プログラミング言語実現の原理

デジタルコンピュータによる情報処理の原理の別な見方...1 プログラミング言語の表現能力はすべて同じである....2 厳密に定義された計算可能ないかなる手続き(関数)も,プログラミング言語で記述可能である.

...3 プログラミング言語で適当なプログラムを組みさえすれば,他の任意のプログラミング言語を実現できる.

仮想的な機械の模倣の系列

M1 ≤ M2 ≤ · · · ≤ Mi · · ·

を段階的に構築することによって高度な計算機システムを実現することができると同様,種々の高度な機能を持つプログラミング言語を,

L1 ≤ L2 ≤ · · · ≤ Li · · ·

のような言語の実装系列として実現することができる.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 183 / 200

Page 184: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

高水準言語の例

MLコード

fun sum 0 = 0

| sum n = n + (sum (n - 1))

≤LoadI(r1,1)Store(r1,101)LoadI(r1,0)Store(r1,102)Load(r1,102)Add(r1,100)Store(r1, 102)

Load(r1, 100)

Sub(r1, 101)

Store(r1, 100)

JNZ(r1,10)

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 184 / 200

Page 185: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

高水準プログラミング言語の実現

仮想計算機の実現方式(復習):

L:Mを「コンピュータ Mが言語 Lを実行すること」とし

L1 : M1 (1)

L1 : M1 (2)

とする.大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 185 / 200

Page 186: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

インタープリタによる言語の実現

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 186 / 200

Page 187: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

例:JAVAバイトコードインタープリタ

JAVAバイトコードは,以下のような 2段階の機械の模倣(言語系列の実現)によって実現されている.

ハードウェア機械語

≤ ハードウェア+OSの機能アセンブリ言語

≤ JAVA抽象機械JAVAバイトコード

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 187 / 200

Page 188: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

コンパイラによる言語の実現

インタプリタ:他の言語を解釈し直接理解する.コンパイラ:専門家に依頼し,他言語で書かれた文書を翻訳し,翻訳された文書を理解する.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 188 / 200

Page 189: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

講義内容

...1 講義の目的

...2 計算機システムの動作原理

...3 計算機アーキテクチャと基本ソフトウエア(OS)

...4 計算資源(CPU)の管理

...5 メモリー管理

...6 デバイスとファイルの管理

...7 情報処理システムの実現

...8 課題と復習大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 189 / 200

Page 190: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題:情報の表現

...1 2本のフィードバックを持つ非同期逐次機械を適当に定義し,その定常状態を調べよ.

...2 現在のデジタル計算機はほとんどすべて Σ = {0, 1}をコード化のシンボルとして用い,数の表現には 2進数を用いている.もちろん他の選択も可能である.そこで,ここでは,マイナス 3進数表現を考えてみよう.マイナス 3進数は 3進数と同様3つのシンボルを使用する.ここでは {0, 1, 2}と呼ぶ.これらをシンボルを用い −3を位取りの基数とするのがマイナス 3進数である.例えば,

21−3 = (2 × (−3)1 + 1 × (−3)0)10 = −510

のようになる.マイナス 3進数での加算の手続きを与えよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 190 / 200

Page 191: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題:CPUの管理

Producer-Consumer問題に関して,以下の特別な状況を考える.indexおよび Bufferの配列要素はすべて 0に初期化されているものとし,MAXは十分に大きい(例えば 100)ものとする.Producerの「data生成」では,自然数を 1から順に生成するものとする.Consumerの「dataの処理」は値をプリントするのみ.この問題では,Producerは2回ループを実行し,1,2を生成し停止するものとする.

意図するシステムの動作は,Producerが作成した二つの値をプリントすることである.

...1 意図する動作をする場合でも,値がプリントされる順はシステムのタイミングに依存する.2,1の順にプリントされる場合のシステムの動作を記述せよ.

...2 意図する動作以外の可能な動作結果を一つ上げ,その時の indexとBufferの状態の変化を記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 191 / 200

Page 192: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題:記憶管理 1

通常プロセスページテーブルはシステム空間に置かれる.

...1 その利点を考察せよ.

...2 この場合のアドレス変換関数の動作を記述せよ,

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 192 / 200

Page 193: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題:記憶 2

プロセス管理は,仮想記憶管理よってなされるプロセスの状態も考慮にいれる必要がある.

...1 ページフォルトを起こしたプロセスは,一時的に,ページ読み込み完了待ちの状態となる.このページの読み込みも I/Oの一種であり,ページの読み込み中のプロセスは I/Oの完了待ちのプロセスと同様の管理が必要である.ページ待ち状態も考慮したプロセスの状態集合を考え,状態遷移の概要を記述せよ.

...2 プロセスが仮想記憶管理によってスワップアウトされると,その前の状態に応じて,新たな状態に以降する.スワップアウト状態も考慮したプロセスの状態集合を考え,状態遷移の概要を記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 193 / 200

Page 194: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題:記憶 2

データには,初期値がありかつ読み書き可能なものがある.これらデータを仮想記憶がサポートする一つの方法は,これらデータを含むページを,最初の参照時にプログラムファイルからページファイルにコピーことである.これらページを,「参照時コピーページ(Copy on ReferencePage)」と呼ぶことにする.

参照時のコピーと言っても,実際に2次間でのコピー操作は必要ないことに留意して,以下の問いに答えよ.

...1 参照時コピーページの取りうる状態を列挙せよ.

...2 参照時コピーページの状態変化を記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 194 / 200

Page 195: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題;デバイスとファイルの管理 1

プロセスの IO要求は,ファイシステム,OSの割り込み処理,ディスクデバイスドライバによって処理される.ユーザのディスクへの read要求が処理される流れを,処理するOSのコンポーネントとその時のユーザプロセスの状態を考慮して記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 195 / 200

Page 196: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

課題;デバイスとファイルの管理 1

1ブロックが 1024バイトであるファイルシステムにおいて,サイズが3333バイトであるファイル/syllabus/systemsoft/kadai.txtの領域を記述するのためのファイルシステムが管理する Iノードとディレクトリファイルの構造を記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 196 / 200

Page 197: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

復習 I

...1 デジタル計算機の構造と動作原理の概要を記述せよ.

...2 OSの役割を,資源管理者としての視点,ユーザへの仮想計算機の提供の視点から述べよ.

...3 割り込み処理の役割と処理の流れを記述せよ.

...4 OSが管理の対象とするシステム資源の主なものを 3つ挙げ,それらを管理するOSのコンポーネントを指摘せよ.

...5 仮想計算機の視点からプロセス管理の目的を述べよ.

...6 プロセスの概念とその実現方法を述べよ.

...7 プロセスの取りうる状態と起りうる状態間遷移を示す状態遷移を引き起こす原因事象について説明せよ.(仮想記憶管理による状態は考慮しなくてよい.)

...8 Run状態のプロセスが Ready状態へ以降する事象の例を挙げよ.

...9 Run状態のプロセスがWait状態へ以降する事象の例を挙げよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 197 / 200

Page 198: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

復習 II...10 フィードバック付マルチレベルキューを用いたプロセススケジューリングの概要を説明せよ.

...11 プロセス間の排他制御の必要性を「危険領域(きわどい領域,Critical Region)」の概念を用いて説明せよ.

...12 ロックによる排他制御の概要を説明せよ.

...13 ロックを実現するためのハードウエアサポートを記述せよ.

...14 test-and-set命令を用いたロック取得手続きを記述せよ.

...15 ロック解放手続きを記述せよ.

...16 セマフォーを実現するための P命令,V命令の機能の記述せよ.

...17 ロックを用いた P命令の実現方法を記述せよ.

...18 ロックを用いた v命令の実現方法を記述せよ.

...19 デッドロックを引き起こす例を記述せよ.

...20 モニターによる排他制御の概要を説明せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 198 / 200

Page 199: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

復習 III...21 メモリー管理の目的を記述せよ....22 システム全体が一つのメモリー空間であり,TLBを持たない単純な場合を仮定し,ページテーブル方式によるアドレス変換の概要を記述せよ.

...23 TLBとは何か?

...24 プロセス固有のメモリー空間を実現するハードウエア機構とソフトウエア機構を記述せよ.

...25 仮想記憶管理下でのアドレス変換例外処理の流れを説明せよ.

...26 ページング方式の仮想記憶管理システムは,論理アドレスと物理アドレスおよび2次記憶上のページの対応を管理する.このためのデータ構造を記述せよ.

...27 仮想記憶管理下での,読み込み専用ページの状態変化を記述せよ.

...28 仮想記憶管理下での,読み書き可能ページの状態変化を記述せよ.

...29 スラッシングとはなにか?

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 199 / 200

Page 200: システムソフトウエア工学ohori/texts/SystemSoftware...3 3 = 9 である. しかし,では 1. 7625597484987は数である. 2. 7625597484987 3 = 22876792454961 である.

復習 IV...30 プロセスのワーキングセットとは何か?...31 ワーキングセットモデルにおけるアドレス変換例外処理の概要を記述せよ.

...32 ワーキングセットモデルにおけるシステム全体の負荷調節メカニズムの概要を記述せよ.

...33 デバイスの仮想化の階層とそれを実現するプログラムを記述せよ.

...34 デバイスコントローラの役割はなにか?

...35 デバイスドライバの役割はなにか?

...36 Iノードを用いたファイルの領域方式の概要を記述せよ.

...37 ディスクのブロックサイズを 1024バイト,ブロックのアドレスが4バイトとし,12個の直接アドレス以外に,第 1間接アドレス,第2間接アドレス,第 2間接アドレスをもつ Iノードが記述できる最大のファイルサイズを求めよ.

...38 ディレクトリの構造を記述せよ.

大堀淳 (東北大学電気通信研究所) システムソフトウエア工学 200 / 200