オペレーティングシステム (プロセススケジューリング)

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
オペレーティングシステム 第3回 プロセスの管理とスケジューリング
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
オペレーティングシステム (仮想記憶管理)
オペレーティングシステム (割り込み&仮想記憶管理)
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
コンパイラ 2011年11月14日
過負荷時のWebアプリケーションの性能劣化を改善する Session-level Queue Scheduling
オペレーティングシステム 第9回 実記憶管理 38号館4階N-411 内線5459
オペレーティングシステムJ/K 2004年10月7日
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
オペレーティングシステム (OSの機能と構造)
記 憶 管 理(2) オペレーティングシステム 第10回.
ソフトウェア階層 分類 具体例 応用ソフト 基本ソフト アプリケーションソフト 個別アプリケーション SEやユーザが開発するプログラム
オペレーティングシステムJ/K 2004年11月4日
計算機システム概論・2回目 本日のトピック:プロセスについて プロセスとは プロセスのスケジューリングについて 多重プロセスの問題 排他制御
オペレーティングシステム 第12回 仮想記憶管理(3)
Linux リアルタイム・プリエンプションとULDDへの影響 - 進捗報告 -
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
割 込 み(1) オペレーティングシステム No.5.
割り込み.
CSP記述によるモデル設計と ツールによる検証
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
Occam言語による マルチプリエンプティブシステムの 実装と検証
オペレーティングシステム (仮想記憶管理)
オペレーティングシステム (仮想記憶管理)
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
オペレーティングシステムJ/K (実時間処理システム)
オペレーティングシステム (プロセス管理とスケジューリング)
オペレーティングシステム 第4回 プロセス生成とスレッド
前坂 たけし (北大院・理) 其の壱 はじめての BIOS 前坂 たけし (北大院・理)
オペレーティングシステム (プロセス管理とスケジューリング)
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オペレーティングシステム 第3回 プロセスの管理とスケジューリング
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
オペレーティングシステム 第2回 割り込みとOSの構成
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オペレーティングシステムJ/K 2004年11月15日2時限目
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
組込みシステムとは コンピュータ制御システム?
オペレーティングシステム (OSの機能と構造)
仮想マシンへの CPU 割り当ての変化に応じた最適な並列アプリケーション実行
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
コンピュータアーキテクチャ 第 4 回.
オペレーティングシステムJ/K 2004年10月4日
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
オペレーティングシステムJ/K (管理のためのデータ構造)
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
6.5 セマフォ セマフォ(semaphore): 複数のタスク(もしくはスレッド)が「同期」または「相互排除」の制御のために取得(acquire)・リリース(release)できるカーネルオブジェクトの総称.
コンピュータアーキテクチャ 第 4 回.
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
オペレーティングシステム (プロセススケジューリング)
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
コンパイラ 2012年10月11日
オペレーティングシステム (OSの機能と構造)
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
スケジューリングってなんだ? -やり方ひとつで大きく変わる
Presentation transcript:

オペレーティングシステム (プロセススケジューリング) 2009年10月8日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2009/

CPUプロセススケジューリング マルチプログラミングの概念 スケジューリングの必要性

CPUの数が限られている→切り替えて使う スケジューリングの必要性 CPUの数が限られている→切り替えて使う 割り当てを考えないといけない 実行の流れ(Thread of Execution)が複数存在 切り替えの時期を考えないといけない Non-Preemptive Multitasking プロセスが自主的に実行権を放棄 実行中のタスクは中断されない Preemptive Multitasking タイムスライスを使い切ったら実行権を放棄 自主的にプロセスが実行権を放棄することもできる 実行中のタスクの中断が許される

スケジューリングの基準 CPU動作時間 経過時間 CPU利用率 ロードアベレージ スループット タスクが実行中だった時間の合計 日常の時の進みの中での経過時間 CPU利用率 CPU動作時間÷システム稼働時間 ロードアベレージ 稼働時間ではなく、単位時間あたりのCPU利用率 スループット CPUが単位時間当たりに行う仕事量

スケジューリングの基準 ターンアラウンド時間 待ち時間 応答時間(レスポンスタイム) プロセスの実行要求から完了までの時間 実行可能状態から実行できるまでの時間 応答時間(レスポンスタイム) 実行要求から最初の応答が得られるまでの時間 UIにはこれが重要 イベント駆動による実装

Preemptive Multitasking スケジューリングアルゴリズム Preemptive Multitasking ラウンドロビンスケジューリング(到着型、FIFO型) タイムスライスを使い切ったら順番にCPUを割り当てる 優先度スケジューリング スケジューリング時に最も高い優先度のものへCPUを割当て 飢餓状態を防ぐためにエージングと併用 Non-Preemptive Multitasking FCFS(First Come First Service)スケジューリング 実行権を先に放棄したプロセスからCPUを割当て 長い処理のプロセスが先→平均ターンアラウンド時間が悪化 SJFスケジューリング 最も短いCPU処理時間であるプロセスからCPUを割当て FCFSスケジューリングの欠点を解消

ラウンドロビンスケジューリング タスク1 タスク1 タスク6 タスク6 タスク2 タスク2 実行可 タスク5 タスク5 タスク3 タスク3 タスク4 タスク4 実行中 タスク1 実行可 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 タスク2 実行可 タスク3 実行可 タスク4 実行可 タスク5 実行可 タスク6 実行可

優先度スケジューリング タスク1 タスク1 タスク6 タスク2 タスク2 実行可 タスク5 タスク3 タスク3 タスク4 タスク4 実行中 優先度10 タスク6 タスク2 タスク2 優先度5 優先度10 実行可 タスク5 タスク3 タスク3 優先度5 優先度9 タスク4 タスク4 優先度8 実行中 消滅中 タスク1 実行可 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 消滅中 消滅中 実行中 実行可 消滅中 実行中 実行可 タスク2 実行可 タスク3 実行可 タスク4 実行可 タスク5 実行可 タスク6 実行可

FCFSスケジューリング タスク1 タスク1 実行可 タスク3 タスク3 タスク2 タスク2 実行中 タスク1 実行可 実行可 実行中 5 15 2 3 10 4

SJFスケジューリング タスク1 タスク1 実行可 タスク3 タスク3 タスク2 タスク2 実行中 タスク1 実行可 実行可 実行中 実行可 5 15 2 4 3 10 最も処理時間の短いタスクへ優先的にプロセッサを割り付ける。 処理時間はタスクが実行し終わらないとわからないので、ここでは過去の実行時間を利用

多重レベルスケジューリング

優先順位付きラウンドロビン 各タスクにはタイムスライスが与えられる。 スケジューラは実行可能タスクの優先度を見る 実行時間に制限が加わる タイムスライスを使い尽くしたら実行権が無くなる スケジューラは実行可能タスクの優先度を見る 最高優先度のタスクを実行する 同一優先度のタスクが複数あれば順番に実行 エイジングを導入して実行されないタスクをなくす 低優先度タスクは時間とともに優先度を一時的に上昇 優先度に応じてそれなりに実行されるようになる

優先順位付きラウンドロビン 優先順位ごとにキューを形成 キューごとにラウンドロビンでスケジューリング 低優先順位キューのタスクが実行されるのは、 より高い優先順位の実行可能タスクが無いとき → スタベーション(飢餓)の発生 実行可状態で待っているとき、経過時間に応じて優先度を上げていく。 → エージング

例:優先度スケジューリング タイムスライスごとにプリエンプション発生 タイムスライスごとに優先度が1上がる 実行中状態を経たら、優先度は初期値に戻る 初期優先度 タスク1 10 タスク2 10 タスク3 9 タスク4 8

優先順位つきラウンドロビン タスク1 タスク1 タスク4 タスク4 タスク2 タスク2 実行可 タスク3 タスク3 実行中 タスク2 優先度12 優先度10 優先度13 優先度10 優先度12 優先度11 優先度11 優先度10 優先度10 優先度11 優先度9 優先度13 優先度11 優先度8 優先度10 優先度9 優先度8 優先度11 優先度9 優先度12 タスク1 タスク1 タスク4 タスク4 タスク2 タスク2 実行可 タスク3 タスク3 実行中 タスク2 タスク3 タスク1 タスク4 実行可 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中 実行可 実行中

ディスパッチャとは? 記憶領域は各プロセスに持たせればよい。 演算器(加減算とか条件分岐とか)は共有できる。→これも問題無い。 CPU内部のレジスタ達は1組しかないし、演算データのような途中結果を保持している。実行を中断し、再開するときは、以前の状態にしておいてもらわないといけない。→問題だ。

CPU内部のレジスタ達 レジスタコンテキスト コンテキスト入れ替え コンテキストスイッチ [Intel, ``Software Developer Manual’’]

Intel系CPUでは、プロセス管理ブロックに含まれるデータのうち、レジスタコンテキスト [Intel, ``Software Developer Manual’’] Intel系CPUでは、プロセス管理ブロックに含まれるデータのうち、レジスタコンテキスト に関しては(TSSという名前で管理されている)、プロセッサが入れ替えてくれる。 言い換えれば、レジスタコンテキスト(TSS)のスイッチはプロセッサがサポートしている。 TSSを参照するFARジャンプ命令一発でコンテキストスイッチが起こる。