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

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

Upload: others

Post on 29-Dec-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

  • .

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

    大堀淳

    東北大学電気通信研究所

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

  • 本資料を利用される方へ

    本スライドは,教科書

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

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

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

  • 講義に関する情報

    .講義の目的..

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

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

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

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

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

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

  • 講義の目的 (シラバス)

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

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

  • 講義予定

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

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

  • 講演内容

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

  • 計算機システムの概要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ......

    情報のコード化方法

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

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

  • 講演内容

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

  • 情報のコード化の原理

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

    原則

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

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

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

    近代的コンピュータ

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

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

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

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

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

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

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

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

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

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

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

    よく知っていると思っている例:数 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 / 1

  • 情報のコード化例

    自然数: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 / 1

  • コード化の実例: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 / 1

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

    表現すべき情報

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

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

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

    ...2 表現を生成:

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

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

  • 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 / 1

  • 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 / 1

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

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

    名前と情報の対応を維持

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

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

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

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

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

  • ポインタを用いたコード化の例(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 / 1

  • ポインタを用いたコード化の例(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 / 1

  • ポインタを用いたコード化の例(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 / 1

  • 講演内容

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

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

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

    ......

    文字集合 Σ

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

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

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

    ......

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

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

  • 状態を持つ電子回路

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

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

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

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

    Next StateテーブルInput RS

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

    (太字:定常状態)

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

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

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

    同期逐次機械 (Syncronous Sequential Machine)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 講義内容

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

  • 汎用の情報処理機械

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

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

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

    すなわち,

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

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

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

    弾道の計算 (ENIAC)

    暗号の解読...

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

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

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

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

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

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

    基礎となる洞察:

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

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

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

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

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

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

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

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

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

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

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

    M ≤ M′

    と書く.

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

  • 高性能機械の実現戦略

    洞察

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

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

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

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

    M0 ≤ M1 ≤ · · · ≤ M

    を実現.

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

  • 講義内容

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

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

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

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

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

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

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

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

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

    CPUの構造

    プログラムカウンタ

    命令レジスタ

    演算ユニット

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

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

  • 講義内容

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

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

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

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

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

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

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

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

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

    計算資源の最適な管理

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

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

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

    通信機能

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

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

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

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

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

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

    ユーザ専用の CPUの提供

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

    安全なシステムの実現

    広域分散システムの実現

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

  • OSの構成要素

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

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

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

  • 講義内容

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

  • 割り込み主導の制御

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

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

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

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

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

    割り込み処理機構

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

  • 割り込みの仕組み

    .割り込み..

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

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

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

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

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

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

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

  • 割り込みの性質 I

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

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

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

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

  • 割り込みの性質 II

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

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

  • 割り込みの性質 III

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    CPUレジスタ群 ← POP();

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

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

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

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

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

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

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

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

    割り込みの種類

    デバイス割り込み

    タイマー割り込み

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

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

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

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

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

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

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

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

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

    OSの構成構造

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

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

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

  • 例外処理機構

    .例外の考え方..

    ......

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

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

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

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

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

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

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

  • 代表的な例外処理

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

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

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

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

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

  • 例外処理の概要 I

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

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

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

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

  • 例外処理の概要 II

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

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

  • 講義内容

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

  • プロセス管理の目的

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

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

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

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

  • ユーザの視点 VS資源管理

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

  • プログラムとプロセス

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

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

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

    = プログラム+状態

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

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

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

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

  • プロセスの考え方

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

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

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

    哲学概論の宿題をする.

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

    これらは,

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

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

    その方法,

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

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

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

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

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

  • プロセスの実現方式

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

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

    ......

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

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

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

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

    ......

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

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

  • 講義内容

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

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

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

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

  • コンテキスト

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

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

    ......

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

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

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

    ......

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

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

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

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

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

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

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

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

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

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

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

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

  • コンテキストスイッチ

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

    ......

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

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

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

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

    ......

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

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

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

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

  • 講義内容

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

  • プロセスの状態

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

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

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

    Ready:実行待ち

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

    Terminated:終了

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

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

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

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

  • プロセスの状態遷移 I

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

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

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

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

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

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

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

  • プロセスの状態遷移 II

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

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

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

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

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

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

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

  • プロセスの状態遷移 III

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

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

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

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

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

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

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

  • プロセスの状態遷移 IV

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

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

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

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

  • 講義内容

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

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

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

    ......

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

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

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

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

    起動タイミング

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

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

    管理データ構造

    Readyキュー

    PCBのプロセス属性,履歴

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

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

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

    システムの指標

    CPU使用率

    応答時間

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

    プロセスの属性

    優先度

    IOの待ちの回数

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

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

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

  • Readyキュー

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

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

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

    ......

    ポリシー

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

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

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

    実行方法

    n回 IO終了時に優先度を上げるk回タイムスライス使い切り時に優先度を下げる

    nと kを調節しチューニングする.

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

  • 講義内容

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

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

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

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

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

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

  • 実際の管理対象

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

  • 並列処理単位の実現方式

    .(子)プロセス..

    ......

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

    メモリ等の資源を持つ.

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

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

    .スレッド(thread)..

    ......

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

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

    メモリー資源等は共有

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

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

  • スレッドの構造

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

  • 講義内容

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

  • 非同期実行と資源の共有

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

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

  • 排他制御の必要性

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

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

  • 例:Producer-Consumer問題

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

  • 同時更新による不整合の分析(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 / 1

  • 同時更新による不整合の分析(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 / 1

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

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

    ......

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

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

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

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

    ......

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

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

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

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

  • 危険領域の例

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

  • 排他制御機構(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 / 1

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

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

    ......

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

    ...2 Lockを読む.

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

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

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

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

  • Lock操作の実現

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

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

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

    注:

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

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

  • コード例

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

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

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

    例:

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

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

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

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

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

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

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

  • より高級な排他制御機構

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

    ......

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

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

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

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

    .Brinch Hansen, Hoareのモニタ..

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

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

  • セマフォーの機能

    セマフォー 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 / 1

  • セマフォーを使用した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命令によって資源返却.

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

  • セマフォを使った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の処理;}}

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

  • セマフォの実現

    セマフォ実現の

    カウンタ

    待ち行列

    等は共有資源.

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

    P命令の実現例:

    P(S) {

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

    if (S == 0) then

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

    { S = S - 1;}

    LockS = 0;

    }

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

  • モニターによる排他制御

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

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

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

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

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

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

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

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

    }

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

  • モニターの実現戦略

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

    実現戦略の例:

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

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

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

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

  • モニターの実現戦略

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

  • 講義内容

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

  • システム内のメモリー

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

    この内,

    主記憶装置

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

    2次記憶装置

    もメモリーとして使用.

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

  • メモリー管理の目的

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

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

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

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

  • ユーザの視点 VS資源管理

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

  • メモリーの用途

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

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

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

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

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

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

  • 講義内容

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

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

    主記憶装置:一次元配列

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

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

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

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

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

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

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

    論理メモリ:仮想的なアドレス空間を [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)

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

  • アドレス変換の概要

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

  • ページテーブル方式

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

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

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

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

    ページテーブル (PT) : 物理ページアドレスの表論理アドレス = ページ番号 (P) +ディスプレイスメント (D)

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

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

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

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

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

    背景と目的

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

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

    OSの実現戦略

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

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

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

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

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

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

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

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

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

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

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

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

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

  • メモリー管理によって実現されるメモリー空間

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

  • アドレス変換方式

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

    }

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

  • 講義内容

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

  • 仮想記憶方式の目的

    ページテーブル方式によるメモリーアーキテクチャの利点

    論理アドレスの実現

    システム空間,プロセス空間の実現,さらに

    物理メモリーによる制約からの解放

    メモリー要求の性質

    プロセスのメモリー空間は,任意の時点で一つしか使われない.

    さらに,通常メモリー空間のごく一部しか同時に使用されない..仮想記憶方式..

    ......

    上記性質を利用し,物理メモリを動的にうまく割り当てることにより,

    プロセスのメモリー空間の総和 ≫システムの物理メモリ

    なる巨大なメモリー空間を実現するソフトウエアメカニズム.

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

  • 仮想記憶空間実現方式の概要

    基本的な考え方:...1 プロセスのメモリーは 2次記憶装置上...2 2次記憶上のメモリーを,一時的にページ単位に物理メモリーにコピー必要条件:

    使用される前に物理メモリーにコピーする必要がある.

    これを,on-demandで実現

    仮想記憶実現戦略

    アドレス変換時に物理ページのコピーが存在しないことをハードウェアが検出し,アドレス変換例外をOSに通知

    仮想記憶管理システムが,OSのアドレス変換例外処理から呼び出され,必要なページを2次記憶装置からコピー

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

  • ハードウエア機構(1)ページテーブルエントリ

    ページテーブルエントリの改良

    V : 有効ビットM : 変更ビット

    PROT : アクセス保護· · · : その他(参照情報等)

    FRAME : 物理ページ番号(上位 32ー Kビット)

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

  • ハードウエア機構(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

    {アドレス変換例外を通知}

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

  • ソフトウエア機構(1)記憶管理用データ構造

    OSの記憶管理は論理アドレスとページ内容との対応を管理...1 常に,論理アドレスと2次記憶ページの対応を維持....2 さらに,ページが物理メモリにある時,論理アドレスと物理ページおよび2次記憶上のページの双方の対応と維持.

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

  • ソフトウエア機構(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 プロセスによりメモリ参照の再実行

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

  • 物理メモリーの確保

    「物理ページ 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を選択」が仮想記憶管理の中心課題.他の処理は,機械的に実行可能.

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

  • 解放ページの選択(1)ワーキングセット以前

    グローバルな管理

    システムで使用されているページを一つのリストとして管理そのリストに何らかの優先順位をつける.例えば,

    FIFO:何もしないLRU:最近最も使われなかったページを選択.参照ビット等を使用OPT:仮想的な最適戦略

    根本的な未解決問題.スラッシング..

    ......メモリー要求が一定水準を越えると,システムの資源のほとんどがページフォルト処理に費やされる状態.

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

  • スラッシング問題 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 · · ·

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

  • スラッシング問題 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のページ参照はすべて,ページフォルトとなる.スラッシング:この状況が,各コンテキストスイッチで繰り返される.

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

  • 解放ページの選択(2)ワーキングセットモデル

    P.J. Denning. The Working Set Model for Program Behavior,CACM 11(5), 323–333, 1968.

    基本的洞察

    ページ参照は,プログラムの処理に由来する局所性を持つ.

    ワーキングセットW(t, τ):プロセスが時刻 t − τから時刻 tまでに参照するページ集合.

    システムのメモリー要求 = プロセスのW(t, τ)の総和メモリ管理戦略

    システムの負荷調整:プロセスのワーキングセット単位で行う.負荷が限度を越えたら,ワーキングセットごとプロセスをスワップアウト

    ページ入れ替えは,各プロセスのワーキングセット内で行う.

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

  • ワーキングセットのページングとスワッピング

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

  • ページファイルとスワップファイル

    ワーキングセットモデルでは,以下の 2つの2次記憶ファイルを使用..ページファイル..

    ......プロセス固有の(変更可能な)仮想記憶ページを保存.プロセス生成時に,プロセスに与えるメモリ空間

    .スワップファイル..

    ......ワーキングセット全体の保存.システム起動時に,最大プロセス数を決定し,それに応じてスワップスロットを確保する.

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

  • プログラムコードページの状態遷移

    プログラムコード等の読み込み専用データページの状態...1 プログラムファイル上...2 メモリー上

    状態遷移

    初期状態:1.

    1 =⇒2:ページの読み込み2 =⇒1:メモリーのリリース

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

  • データページの状態遷移

    ヒープデータ等の初期値なし,読み書き可能ページの状態とその遷移...1 メモリー上,ページファイル領域未割り当て,変更あり...2 メモリー上,ページファイル領域割り当て済み,変更なし...3 メモリー上,ページファイル領域割り当て済み,変更あり...4 ページファイル上

    初期状態:1.(プロセスのアドレス参照によりメモリーページが割り当てあれる.)

    1 =⇒4:ページファイルスロット確保,データの書き込み2 =⇒4:メモリーのリリース,2 =⇒3:データの書き換え3 =⇒4:メモリーのリリース,ページの書き出し4 =⇒2:ページの読み込み

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

  • 講義内容

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

  • デバイスとファイルの管理の目的

    資源の管理者としてのOS多種多様なデバイスの制御最適な制御適切なエラー処理

    仮想計算機としてのOS一様な IOインタフェイス(open, read, write)名前による抽象的な管理(ディレクトリ,フォルダ,ファイル)

    これらを同時に達成するために,デバイスを階層的に抽象化するソフトウエアレイヤーを構築.

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

  • 講義内容

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

  • デバイスの仮想化階層

    デバイスの機能は階層構造をなす.

    デバイス階層 実現するプログラム1 ハードウェア 物理的,電気的な制御機構2 個々のデバイス デバイスコントローラ3 汎用インタフェイスを持つデバイス デバイスドライバ4 ファイル/ディレクトリ ファイルシステム

    この階層に中で,3の「デバイスドライバ」と 4の「ファイルシステム」がデバイスとファイルの管理を実現するOSの部分.

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

  • 入出力管理プログラムの構造

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

  • デバイスとデバイスコントローラ

    .入出力装置(デバイス)..

    ......物理的な原理によって,情報を外部に出力したり,外界からの情報を入力したりする装置

    .デバイスコントローラ..

    ......

    物理的なデバイスの状態を制御し,ビット列でコード化されたコマンド(命令)を受け取り,結果をビット列で表現されたデータとして返す仮想的な装置(コンピュータ)を実現するプログラム(ハードウエア)

    CPUに

    コマンドの入力

    データの入出力

    のためのデバイスレジスタを提供.CPUは,コマンドをデバイスレジスタに書きこむことによってデバイスを操作.

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

  • デバイスとデバイスコントローラーの構造

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

  • デバイスレジスタへのアクセス

    このデバイスコントローラのレジスタを CPUからアクセスする方法...1 特殊な CPU命令の使用各デバイスコントローラに,IOポートと呼ばれる番号を割り当て,この番号を引数としてコントローラの持つレジスタを読み書きする.

    ...2 メモリーマップ IOシステムのメモリ空間の一部がデバイスレジスタ領域として予約され,デバイスコントローラの接続時に,個々のデバイスコントローラの制御レジスタ群が,予約された領域の一部に対応付けられる.この予約されたシステム空間領域は,通常のアドレス変換機構とは別の処理がなされ,デバイスレジスタにデータが届けられる.

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

  • メモリーマップ IO

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

  • 例:DISK

    ディスクハードウエア:

    シリンダー,トラック,セクター構造の記録媒体

    シーク:ディスクヘッドの移動によるトラックの選択

    データ転送:ビットストリームによるデータ転送

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

  • ディスク上のデータ配置

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

  • DISKデバイスコントローラ

    ディスクコントローラ(+ DMAコントローラ):

    論理アドレスを持つセクター集合

    内部バッファーによるビット列のバッファリング

    エラーチェックレジスタを介した CPUインタフェイス

    転送アドレスとバイト数の設定動作の指定割り込みの通知

    * DMAコントローラ;Direct Memory Accessコントローラ.デバイスコントローラバッファとメモリー間の転送を制御.

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

  • デバイスドライバの役割

    .デバイスドライバ..

    ......デバイスコントローラが提供するデバイスの機能を使い,標準な入出力インターフェイスを提供するソフトウエア.

    デバイスドライバとシステムのインタフェイス

    システムの IO要求処理から呼び出され,標準の IO要求をデバイスコントローラのコマンド(プログラム)に翻訳し,デバイスコントローラを起動

    システムの IO割り込み処理ルーチンから呼び出され,IO完了処理を行う.

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

  • デバイス独立の入出力処理

    .OSの入出力処理........デバイスタイプ毎の標準的な入出力処理の提供.

    デバイスタイプ

    キャラクタデバイス

    ブロックデバイス

    入出力処理Program主導 IO処理

    ポーリング文