基本用語・概念

基本用語・概念
オペレーティングシステム
第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の実現

障害時の適切な処理

割込みの詳細は次回