Transcript 基本用語・概念
基本用語・概念
オペレーティングシステム
第4回
時 分 割 処 理(復 習)
オペレーティングシステムは,CPUなどの資源を
各利用者にごく短時間ずつ順番に割り当てる(時
分割)
利用者からは自分ひとりで計算機を使っている
かのようにみえる
複数のプログラムが同時処理されているかのよ
うにみえる
一人で複数のプログラムを同時に実行している
かのようにみえる
タイムスライス (1)
タイムスライス(time slice)
TSSで,各利用者に計算機資源を割り当てる時
間
タイムスライス (2)
タイムクオンタム(time quantum)
割当て単位時間
その整数倍がタイムスライス
タイムスライスとタイムクオンタムを区別しない場
合もある
正しくはプロセス
(後述)
タイムスライス (3)
TSSでは,すべてのプログラムに同じ時間を割り
当てているとは限らない
処理を優先するプログラムには長い時間を割り
当てる
プロセススケジューリング
(後述)
プ ロ セ ス(1)
実行中のプログラム
単なる文字の並びであるプログラムとは別
プロセスは動的な概念
プログラムの実行が始まると生成され,終了
すると消滅
生成されてから消滅するまでの間,その状態
はいろいろ変化(遷移)
プ ロ セ ス(2)
プログラムを実行するための計算機資源(CPU
など)が必要
ただし,物理的なものでなくても,論理的(仮想)
のものでもよい
仮想計算機
プロセスを考えているとき,
実行しているコンピュータを
想定している
プ ロ セ ス(3)
本当に実行されているプロ
セスの数は少ない
存在するプロセスの数だけの物理的計算機資源
はない
オペレーティングシステムが,必要な数の論理的
(仮想)計算機資源を用意
その各々に物理的計算機資源を割り当てる
時分割で割り当てれば,TSS
プロセスの状態(1)
実行中(状態)
実行可能状態
待ち状態
プロセスの状態(2)
実行中(running state)
物理的CPUが割り当てられている
実際に処理が進行中
プロセスの状態(3)
実行可能状態(ready state)
物理的CPUの割当て待ち
割り当てられれば,直ちに実行中になる
プロセスの状態(4)
待ち状態(waiting state)
何か(事象)が起きるの待つ
事象の例
データの入力終了
物理的CPUが割り当てられても,実行中にならな
い
データが入力されなければ,
処理を進めることができない!
プロセスの状態(5)
状態遷移図(後で再度取り上げる)
プロセスの切換え(1)
プロセスの切換え(process switch)
コンテクストスイッチ(context switch)ともいう
物理的CPUで処理するプロセスの変更
プロセスの切換え(2)
物理的CPUの割当てが解除されたプロセスに,
再度CPUを割り当て,処理を再開
その際に必要な情報(実行環境)をコンテクスト
各種レジスタの内容など
プロセスの切換え(3)
プロセスAからBへの切換え
プロセスAのコンテクストを保存
保存してあるプロセスBのコンテクストを(物理
的計算機に)設定
プロセスBの実行
ス レ ッ ド(1)
thread
ライトウェイトプロセス
CPUの利用単位
プロセスみたいなものである
同時に複数のスレッドが実行される
ス レ ッ ド(2)
プロセスとは異なり,複数のスレッドは同じメモリ
を使う
スレッド間のデータ共有が簡単
スレッドの切換えが簡単
割 込 み(1)
割込み(interrupt)
もっとも理解してもらいたいこと
今のコンピュータを特徴付けるものかも知れない
(言い過ぎ?)
割 込 み(2)
プログラムの実行中に
それとは関係なく(非同期的)起きることや
実行中のエラーなど
事象(要因event)
場合により,
事象の対応処理を
先に行わなければならない
割 込 み(3)
このプログラムが
割り込まれた
現在の実行中のプログラムを中断
(コンテクストスイッチ)
事象を処理する別のプログラムを実行
(コンテクストスイッチ)
元のプログラムの実行を再開
割り込まれたプログラムが,
何もなかったかのように先に進む
このプログラ
ムが割り込
んだ
割 込 み(4)
CPUと入出力装置の同時実行(効率化)
TSSの実現
障害時の適切な処理
割込みの詳細は次回