CPUスケジューリング

Similar documents
Microsoft PowerPoint - OS03.pptx

05-scheduling.ppt

オペレーティングシステム

Microsoft PowerPoint - os ppt [互換モード]

Operating System プロセスのスケジューリング

Microsoft PowerPoint - No4.ppt

cmpsys15w07_os.ppt

計算機のリソースとは 1.CPU 2. 主記憶 3. 補助記憶装置 の抽象化

Microsoft PowerPoint - No3.ppt

Microsoft PowerPoint - OS02.pptx

Microsoft PowerPoint - OS02.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - OS02.pptx

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS1.ppt [互換モード]

計算機システム概論

txt ジョブ管理・タスク管理

Microsoft PowerPoint - chap4_slide a.ppt

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

オペレーティングシステム

Microsoft PowerPoint - pc11.ppt

スレッドとプロセス

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

スライド 1

<4D F736F F F696E74202D EF92C391E581458DD693A190E690B62E707074>

Microsoft PowerPoint - 09_2008_0619.pptx

PowerPoint Presentation

04-process_thread_2.ppt

高速バックボーンネットワークにおける公平性を考慮した階層化パケットスケジューリング方式

Microsoft PowerPoint - OS04.pptx

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

15群(○○○)-8編

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - 11_4-4-5pagerepl.pptx

スライド 1

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

Microsoft PowerPoint - Lec ppt [互換モード]

Microsoft PowerPoint - No6note.ppt

020204.入出力制御割込解説

Microsoft PowerPoint - sp ppt [互換モード]

電源管理機能を活用する 管理機から端末機の電源管理をします 複数の端末機の電源を一斉管理することで 管理者の負担を軽減できます 端末機の電源を入れるためには 次の条件が必要です コンピュータが Wake on LAN または vpro に対応している リモートで電源が入るように設定されている ネット

今週の進捗

Operating System 仮想記憶

PowerPoint プレゼンテーション

コンピュータのしくみ

Microsoft PowerPoint - 06.pptx

OS

出 アーキテクチャ 誰が 出 装置を制御するのか 1

マニュアル訂正連絡票

10-vm1.ppt

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

Microsoft PowerPoint - kougi7.ppt

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

公平なネットワーク利用を実現する スケーラブルな パケットスケジューリング方式

Microsoft PowerPoint - OS08.pptx

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

部内向けスキルアップ研修 「組込みOS自作入門」

Microsoft PowerPoint - os ppt [互換モード]

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No02\201i\224z\225z\227p\201j.pptx)

Information Theory

ServerView with Data ONTAP-v インストール前にお読みください

OS

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

リソース制約下における組込みソフトウェアの性能検証および最適化方法

ソフトウェア基礎技術研修

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - os ppt [互換モード]

POSIXプログラミング Pthreads編

Microsoft PowerPoint - os4.pptx

UNIX 初級講習会 (第一日目)

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

Microsoft PowerPoint - No7note.ppt

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ


まえがき 2011 年 11 月 1 日 ver1.0 [ 初版 ] 本手順書では vcenter サーバが管理する仮想コンピュータを Acronis Backup & Recovery 11 エージェント for ESX(i)( バーチャルアプライアンス ) を用いてバックアップする手順をご紹介し

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

uCosminexus EUR 08-20新機能のご紹介

Microsoft PowerPoint - OS09.pptx

計算機アーキテクチャ

ic3_cf_p1-70_1018.indd

起動時

. 目次 概要 リストア環境の設定... 3 ステップ 1-1 Recovery Environment メディアからの起動... 3 ステップ 1-2 タイムゾーンの選択... 4 ステップ 1-3 必要なドライバの読み込み... 5 ステップ 1-4 ネットワークドライブの割り当

Microsoft PowerPoint - NxLec ppt

第2回

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 2-2- 応. Linux カーネルに関する知識 と IT 知識体系との対応関係は以下の通り 科目名 応. Linuxのカーネルに関する知識 Linux カーネル概

EMC Data Domain Boost for Symantec NetBackup and NetBackup Storage Unit Group Failover

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

SetCPU の使い方メモ

2.5 トランスポート層 147

Microsoft PowerPoint - OS11.pptx

Microsoft PowerPoint os5.pptx

Choose an operating system Windows Linux

提案書

Microsoft Word - ModelAnalys操作マニュアル_

01-introduction.ppt

Transcription:

5-6 プロセス管理と CPU スケジューリング 1

多重プログラミングの概念 CPU を無駄なく使いたい ジョブ A ジョブ B 開始遊休状態 : 入力 開始遊休状態 : 入力 遊休状態 : 入力 遊休状態 : 入力 停止 停止 図 4.1 二つの上部 A,B の実行 2

多重プログラミングの概念 ジョブ A 開始遊休状態 : 入力 遊休状態 : 入力 停止 ジョブ B 待ち 開始遊休状態 : 入力 遊休状態 : 入力 停止 図 4.2 多重プログラミング機構のない場合のジョブ実行 ジョブ A 開始 遊休状態 : 入力 遊休状態 : 入力 停止 ジョブ B 開始遊休状態 : 入力 遊休状態 : 入力 停止 図 4.3 多重プログラミング機構のある場合のジョブ実行 3

プロセスとは? 厳密な概念はない! 定義は困難 あえて言うと, プロセスとは下記の 2 つの定義? あり 1) 実行しているプログラム 2) 疑似プロセッサプログラムを実行するための器 その他, ユーザの代理という概念? もあり. OS が管理するための単位 プロセスのことをタスクとも言う. 4

プロセスの状態 新規 活動中 停止 待機中 図 4.6 プロセス状態遷移図 新規 実行待ち 実行中 停止 待機中 図 4.7 プロセス状態遷移詳細図 5

プロセス制御ブロック (PCB: Process Control Block) プロセスに関する情報を格納しておく器 必要な情報 ( 詳細は OS, ハードウェアによって異なる ) プロセスの状態 新規, 実行待ち, 実行中,... プログラムカウンタ レジスタの内容 レジスタの種類はプロセッサによって異なる. メモリ管理情報 上限 / 下限レジスタ, ページ表 ( ページングシステム ),.. 課金情報 CPU 使用時間, 実使用時間, 課金番号, ジョブ番号,.. 入出力情報 未完了の入出力要求, 割当てられている入出力装置, オープンされているファイル,.. CPU スケジューリング情報 プロセスの優先度, レディキューへのポインタ,... ポインタ プロセス状態 プロセス番号 プログラムカウンタ レジスタ類 記憶範囲 開かれたファイルのリスト 図 4.8 プロセス制御ブロック 6

コンテキスト (context) とは? 準備中 7

コンテキストスイッチ : プログラムの切り替え 利用者プログラム A オペレーティングシステム 割込みまたはスーパバイザコール 利用者プログラム B 実行状態 レジスタ退避 レジスタ復元 遊休状態 遊休状態 実行状態 実行状態 レジスタ退避 レジスタ復元 割込みまたはスーパバイザコール 遊休状態 図 4.9 利用者間での CPU の切り替え 8

スケジューリングのためのキュー (1/2) レディキュー (Ready queue, 実行待ち列 ) 実行可能状態のプロセスをつないでおくキュー デバイスのためのキュー ( デバイスキュー, 装置待ち列 ) 装置が空くのを待っているプロセスのキュー 図 4.10 実行待ち列と種々の入出力装置待ち列 ( 図 : 準備中 ) 9

スケジューリングのためのキュー (2/2) 図 4.11 CPU スケジューリングの待ち列図式表現 ( 図 : 準備中 ) 図 4.12 単純化した待ち列図式 ( 図 : 準備中 ) 10

スケジューラースケジューラの種類ー 長期スケジューラ (Long term scheduler, ジョブスケジューラ ) システムで処理すべきジョブを選択 複数 ( 多重度 ) のジョブを選択 メモリにロード 短期スケジューラ (short term scheduler,cpu スケジューラ ) 実際に CPU に割当てるジョブを選択 選択するのは 1 つのみ 中期スケジューラ (medium term scheduler)( ない OS もある ) 多重度の制御 プロセスをシステムから取り除く. 図 4.13 中期スケジューリングを加えた待ち列図式 ( 図 : 準備中 ) 11

ディスパッチャ (dispatcher) CPU スケジューラで選択されたプロセスに CPU を実際に割当てるプログラムのこと.OS の一部. 仕事 プログラムカウンタの設定, レジスタ内容のロード, ユーザモードへの切り替え,... 12

スケジューリングアルゴリズム 評価基準 : 何を目標にするか? CPU 使用率 スループット (throughput) 単位時間当りに完了したジョブ数 ターンアラウンド時間 (turnaround time) ジョブ投入からジョブ完了までにかかった時間 待ち時間 (waiting time) レディキューにいる時間 応答時間 (response time) 会話型システム : コマンド投入からプロンプトが帰ってくるまでの時間 理想 CPU 使用率, スループット 最大 ターンアラウンド時間, 待ち時間, 応答時間 最小 最小値, 最大値, 平均値か? 13

スケジューリングアルゴリズムの分類 横取りのない (non-preemptive) アルゴリズム 先着順サービス方式 (FCFS, First-Come-First-Served) 最短ジョブ優先方式 優先度方式 横取りのある (preemtive) アルゴリズム ラウンドロビン (Round-Robin, 巡回方式 ) 多重レベル待ち列 (Multi-queue scheduling) 多重レベルフィードバック列 (Multi-level feedback queue) 14

横取りのない (non-preemptive) アルゴリズム 先着順サービス方式 (FCFS, First-Come-First-Served) 最短ジョブ優先方式 優先度方式 15

先着順サービス方式 (FCFS, First-Come-First-Served) 到着した順番に実行する. 例 ジョブ バースト時間 1 24 2 3 3 3 時刻 0 でほとんど同時にジョブ 1,2,3 が到着したが, ジョブ 1, ジョブ 2, ジョブ 3 の順で到着した場合 : ガント図 ジョブ1 ジョブ2 ジョブ3 0 24 27 30 平均ターンアラウンド時間 =(24+27+30)/3 = 27 時刻 0 でほとんど同時にジョブ 1,2,3 が到着したが, ジョブ 2, ジョブ 3, ジョブ 1 の順で到着した場合 : ガント図 ジョブ2 ジョブ3 ジョブ1 0 3 6 30 平均ターンアラウンド時間 =(30+3+6)/3 = 13 16

最短ジョブ優先方式 実行時間の短い順に実行する. 理論的に最小の待ち時間を与える. 仮定 : 横取りがない. 例 ジョブ バースト時間 1 6 2 3 3 8 4 7 時刻 0 でほとんど同時にジョブ 1,2,3,4 が到着した場合. ガント図 ジョブ2 ジョブ1 ジョブ4 ジョブ3 0 3 9 16 24 平均ターンアラウンド時間 =(9+3+24+16)/4 = 13 17

優先度方式 (priority scheduling) プロセスに優先度を付けて, 優先度順に実行する. 18

横取りのある (preemtive) アルゴリズム 横取りのある最短ジョブ優先方式 ラウンドロビン (Round-Robin, 巡回方式 ) 多重レベル待ち列 (Multi-queue scheduling) 多重レベルフィードバック列 (Multi-level feedback queue) 19

ジョブ 1 横取りのある最短ジョブ優先方式 最小残り時間優先方式 (Shortest-Remaining- Time-First) とも言う. 横取り 例 ジョブ到着時刻バースト時間 1 0 8 2 1 4 3 2 9 4 3 5 ガント図ジョブ2 ジョブ4 ジョブ1 ジョブ3 0 1 5 10 17 26 平均ターンアラウンド時間 =((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 横取りのない最短ジョブ優先方式の場合 : 平均ターンアラウンド時間 = 57/4 = 14.25 20

ラウンドロビン (Round-Robin, 巡回スケジューリング )(1/3) 一定時間 CPU を割り当てる. 一定時間 : タイムスライス (time-slice, 量子時間 ) 終了しなければ, 次に回す ( レディキューの最後尾につなぐ ) 下記は, タイムスライス =4 の場合のガント図 仮定 : 時刻 0 で, ジョブ 1,2,3 の順で到着 例ジョブ バースト時間 1 24 2 3 3 3 ガント図 ジョブ 2 ジョブ 1 ジョブ 3 ジョブ 1 ジョブ 1 ジョブ 1 ジョブ 1 ジョブ 1 0 4 7 10 14 18 22 26 30 平均ターンアラウンド時間 =47/3 = 16 タイムスライスについて タイムスライス : FCFS( 先着順サービス ) 0: Processor scharing( プロセッサシェアアリング, プロセッサ共有 ) 21

ラウンドロビン (Round-Robin, 巡回スケジューリング )(2/3) 例の追加 ( 右表 ) 下記は, タイムスライス =4 の場合のガント図 仮定 : 時刻 0 で, ジョブ 1,2,3 の順で到着 例ジョブ バースト時間 1 13 2 6 3 11 ガント図 ジョブ1 ジョブ2 ジョブ3 ジョブ1 2 ジョブ3 ジョブ1 ジョブ3 1 0 4 8 12 16 18 22 26 29 30 平均ターンアラウンド時間 =(30+18+29)/3 = 77/3 22

ラウンドロビン (Round-Robin, 巡回スケジューリング )(3/3) タイムスライスの終了時の処理 プロセスの入れ替え : コンテキストスイッチング (Context switching) コンテキストの入れ替え 古い ( 今実行していた ) プロセスのレジスタ内容を退避 新しいプロセスのレジスタ内容をレジスタにロード オーバヘッドが生じる タイムスライスを短くするとコンテキストのオーバヘッドが大 図 4.16 状態切換えを増加させるより小さな量子時間 ( タイムスライス ) 値 ( 図 : 準備中 ) 23

多重レベル待ち列 タイプの異なるジョブ フォアグランドジョブ (foreground, 会話的ジョブ等 ) バックグランドジョブ (background, バッチ等 ) キュー毎に異なるスケジューリングアルゴリズム CPU の割当方法 : 優先度, 時間配分 最高優先度 システムタスク 会話型 編集 バッチ 最高優先度 学生バッチ 図 4.18 多重待ち列スケジューリング方式 24

多重レベルフィードバック列 キュー間の移動を許す. 自由度の高いスケジューリング パラメータ キューの数 各キューのスケジューリングアルゴリズム 移動の決定方策 最初に入れるキューの決定方法 パラメータの決定が困難 キュー 0 タイムスライス =8 キュー 1 キュー 2 タイムスライス =16 FCFS 図 4.19 多重レベルフィードバック列 25

アルゴリズムの評価手法 解析的評価 決定性モデル ジョブの振る舞いが決定的 確率的モデル ジョブの振る舞いが確率的 待ち行列理論 (Queueing theory) シミュレーション 26