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