Document

マルチタスクシステム
1台のコンピュータ内で多数のタスクが動作
CPUの実行権、メモリを分け合って
マルチタスク処理
プログレスバーを随時更新しながら、
本来の「コピー処理」を実行
タスクの分類
1つのシステム内に多数のアプリケーションが混在
ユーザ対話型プログラム
e.g. Office、ブラウザ、
リアルタイムプログラム
e.g. 動画再生、各種監視プログラム
バックグラウンド処理型タスク
e.g. コピー処理、ウィルスチェック
システムアイドルタスク
各々の要求を充足し、システム全体の性能を最適化が理想
通常のPCでは最適化しているとは言い難い
タスクスケジューリング
プロセス、タスク
 同時に複数のプログラムをメモリに置く
 スケジューラが選択実行
OSカーネルの一部
カーネル
- オペレーティングシステムの中核部
- メモリに常駐(プロセスとは異なる)
- 割込み(システムコール)により起動
タスクの構成




命令領域
データ領域
スタック領域
割り付け資源(ファイル etc.)
自身の領域外にアクセスしようとすると
セグメンテーションフォールト
非割り付け資源に直接アクセスしようとすると
IOフォールト
タスク制御ブロック








プロセス識別子
プロセスの状態
プロセスの優先度
命令領域へのポインタ
データ領域へのポインタ
スタック領域へのポインタ
レジスタ(含むPC)の退避領域
資源割り付け情報
プロセス(タスク)の状態遷移
プロセスの
生成
待ち要因
の解除
最も優先度
の高いタスク
実行可能状態
横取り
より優先度の高いタスクの
待ち要因解除
待ち状態
スケジューラ
による選択
実行状態
待ち要因
の発生
入力待ち
資源待ち
システムコールと割込み
 システムコール
ユーザプロセスがカーネルサービス利用時に発行
トラップ命令(内部割込みを発生)
 外部割込み
入出力完了、タイムアウト通知など外部信号
プロセッサは1命令実行ごとに有無を検査
割込み処理
 カーネルモードへ移行
 割込みハンドラ
原因の解析と処理ルーチンへの分岐
 割込みの禁止とマスク
 割込み処理 タスクの待ち要因を解消
 スケジューラがタスクを選択
 ディスパッチャが選択したタスクを実行
システムコール
 待ち状態への移行
入出力完了待ち
タイムアウト待ち
 カーネルサービスの利用
資源の割付け要求
 カーネルオブジェクトへのアクセス
プロセス間の同期・通信機構の利用
要求が即時充足できない場合待ち状態へ
他のタスクの待ち要因を解消
プロセス(タスク)の状態遷移
プロセスの
生成
待ち要因
の解除
実行可能状態
横取り
待ち状態
スケジューラ
による選択
実行状態
待ち要因
の発生
入力待ち
資源待ち
リアルタイムシステムのスケジューリング
・外部イベントとそれを処理するタスクを対応付け
機能要求の充足
・複数のタスクが動作しているとき、どのタスクを実行
するかはスケジューラが判断し、必要に応じて
プロセススイッチ
時間要求の充足
・タスクのモデル化
・スケジューリングアルゴリズム
が必要