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

Similar documents
05-scheduling.ppt

CPUスケジューリング

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

Microsoft PowerPoint - OS03.pptx

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

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

cmpsys15w07_os.ppt

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

Operating System 仮想記憶

OS

Microsoft PowerPoint - No3.ppt

OS

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - pc11.ppt

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

10-vm1.ppt

04-process_thread_2.ppt

スレッドとプロセス

計算機アーキテクチャ

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

Microsoft PowerPoint - No6note.ppt

コンピュータのしくみ

Microsoft PowerPoint - OS07.pptx

計算機システム概論

Microsoft PowerPoint - OS04.pptx

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

21 章のお話

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

計算機アーキテクチャ

TFTP serverの実装

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

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

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

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

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

01-introduction.ppt

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

Microsoft PowerPoint - OS12.pptx

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

POSIXプログラミング Pthreads編

スライド 1

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS02.pptx

コンピュータ工学Ⅰ

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

Microsoft PowerPoint - No4.ppt

OS

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

智美塾 ゆもつよメソッドのアーキテクチャ

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

μitron 入門 T-Engine Forum T-Engine フォーラム (C) 2014 T-Engine Forum, All Rights Reserved.

μitron 入門 TRON Forum TRON フォーラム (C) 2016 TRON Forum, All Rights Reserved.

Microsoft Word - 中間試験 その1_解答例.doc

SafeG 高信頼組込みシステム向けデュアル OS モニタ Daniel Sangorrín, 本田晋也, 高田広章 名古屋大学 2010 年 12 月 3 日 この研究の一部は文部科学省のサポート受けて実施しています Daniel Sangorrín ( 名古屋大学 ) ET 横浜 2

コンピュータ工学Ⅰ

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

スライド 1

Microsoft PowerPoint - OS08.pptx

Microsoft PowerPoint - OS02.ppt

Microsoft PowerPoint - WRR-celinux-upload 1.ppt

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

PowerPoint Presentation

User Support Tool 操作ガイド

科学技術振興調整費 中間成果報告書 若手任期付研究員支援 組込みアーキテクチャ協調型実時間 OS 研究期間 : 平成 13 年度 ~ 平成 15 年 6 月 北陸先端科学技術大学院大学田中清史

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

1 Atollic TrueSTUDIO( GR-PEACH TOPPERS/ASP ASP GR-PEACH mbed ( git

Microsoft PowerPoint - chap4_slide a.ppt

スライド 1

今週の進捗

EaseUS Data Recovery Wizard User Guide

<4C696E A B835E A CC8A D20838A B835E B838982CC8EC08CB

第2回

Microsoft PowerPoint - 06.pptx

C5

TOPPERS活用アイデア・アプリケーション開発

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - OS02.pptx

の 2 章である OSDI 2.5 章 2.6 章 2.5 Overview of processes in Minix3 Minix3 におけるプロセスの扱い方や システムとしてのプロセス Layer の分け方など概念を中心にこの章では扱っている 実際の実装については 2.6 章で扱う 2.5.1

Microsoft Word - TestReport_PRIMEPOWER250_ doc

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

Microsoft PowerPoint - 09_2008_0619.pptx

Microsoft PowerPoint ppt

メモリ管理

<4D F736F F F696E74202D EF92C391E581458DD693A190E690B62E707074>

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

地図 SD カードを取り外す 最初に ナビゲーション本体から地図 SD カードを取り外します 本操作は地図 SD カードを初めて ROAD EXPLORER Updater に登録するときや パソコンにダウンロードしたデータを地図 SD カードに保存するときに実行してください 1 ナビゲーション本体

Microsoft PowerPoint - OS11.pptx

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Microsoft PowerPoint ppt

Slide

Choose an operating system Windows Linux

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

TopSE並行システム はじめに

マルチタスクプログラミング.pptx

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

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

Transcription:

Operating System プロセスのスケジューリング 2015-06 1

プロセスとは ( 復習 ) p プロセス (process) とは n 起動して 実行中 のプログラム n コンピュータの中で 動いているもの (CPU を使っているもの ) n タスク (task) ともいう p OS によるプロセスの管理 n プロセスの生成 ( プログラムの開始とメモリ確保 ) n プロセスの消滅 ( プログラムの停止とメモリ開放 ) n プロセスの切り替え, 優先順位の管理, などなど p プロセスの 正体 を, よりハードウェア的に考えると n 動いている or 実行中 = CPU で演算処理をしている n プログラムとデータがある = メモリの領域を占めている 2

マルチタスク ( マルチプロセス ) p マルチタスクとは? n 1 つの CPU で複数のプログラムを ( 見かけ上 ) 同時に 実行させる n 前のプログラムが終わっていなくても, 新しいプログラムを起動できる p マルチタスクの基本アイデア n あるプログラムがディスクの入出力などを待っているあいだは, 別のプログラムが空いているCPUを使えるようにする n プロセスを非常に高速なタイムスライス ( ミリ秒単位 ) で切り替えて, 同時に実行しているように見せかける入出力待ちや時間プロセスA 切れで一時停止 プロセス B プロセス C プロセス D 起動 時間 終了 3

マルチタスクの利点 p 実行効率の向上 n CPU の時間を, 無駄なく有効に活用できる n OS カーネルやデバイスドライバの機能も実現しやすい p マルチユーザ機能 n 複数のユーザがコンピュータを利用するようなサーバが実現できる n 1 人での使用でも, 同時に複数のソフトウェアを使えるようになる p 多様な機能のプロセス n バックグラウンド ( 裏 ) で動作し続けるような処理が実現できる n あるプロセスを実行中に, それより優先度の高いプロセスが発生した場合, 中断して対応できる n 指定時間に自動的に起動するプログラムなどが作りやすい 4

マルチタスクの種類 p ノンプリエンプティブなマルチタスク n 別名 : 協調型マルチタスク, 疑似マルチタスク n OS が CPU の時間管理をしない n 各プロセスは, 適当なタイミングで自主的 明示的に CPU の使用権を次のプロセスに譲らなければならない n OS は実行中のプロセスから CPU を横取り ( プリエンプション ) できない n プロセスは, システムコール (API) で自主的に実行権を手放す n 例 : 16bit 時代の Windows や Macintosh p プリエンプティブなマルチタスク n 本来のマルチタスク n OS がタイマー割り込みを利用して CPU の時間管理をする n OS は, 所定のタイムスライス ( ミリ秒単位 ) ごとに, 実行中のプロセスから CPU を横取り ( プリエンプション ) して, 次のプロセスを切り替える n 例 : 現代のほとんどのコンピュータ 5

プロセスの状態遷移 p マルチタスクにおけるプロセスの一生 n 単純な OS の例 事象の発生 待ち状態 Wait 事象 ( 割り込みなど ) の発生待ち 生成 ( メモリ割り当て ) 実行可能状態 Ready ディスパッチ ( 割り当て ) プリエンプション ( 横取り 交替 ) 実行状態 Run 消滅 ( 終了 ) 6

UNIX/Linux の状態遷移 待ち状態 事象の発生 事象 ( 入出力割り込み等 ) の発生待ち 実行可能状態 (CPUの空き待ち) 生成 ( メモリ割り当て ) ディスパッチ ( 割り当て ) プリエンプション ( 横取り 交替 ) 実行状態 (CPU を占有 ) 終了 ゾンビ状態 ( 結果だけ保持 ) 消滅 停止解除 ( システムコール ) 停止状態 ( 休眠状態 ) ユーザや他のプロセスからの停止 7

実行プロセスの切り替え p Run Ready n OS が現在のプロセスを中断し, 順番を次にまわす ( プリエンプション ) p Run Wait n プロセスがデバイスなどの応答待ちに入って中断する p Ready Run n OSがCPUに新しいプロセスを割り当てる ( ディスパッチ ) n キュー ( 待ち行列 ) で順番を管理 p スケジューリング n CPUでプロセスを実行する時間 ( 順番 ) を管理すること n 優先するプロセスを早く実行させたり, 順番と時間を管理する n 用途に応じた様々なスケジューリングアルゴリズムがある 8

プロセスキュー p プロセスの実行順序をどうやって管理しているか n プロセスキュー = カーネル内にあるプロセスの順番表 n プロセス制御ブロックへのポインタが, 実行順につながれている 優先度高 実行中プロセス プロセス 実行可能キュー プロセスプロセスプロセスプロセス 優先度低 プロセス プロセス 待ちキュー プロセスプロセスプロセスプロセス 9

キュー (Queue) p キュー (Queue) とは n 待ち行列 と訳される ( 代数学の行列 (matrix) とは無関係 ) n 何かを待っている行列を表すデータ構造 n ( スーパーのレジなど ) p FIFO( 先入先出方式 ) n First In First Out n 基本的には, 先着順に処理されるデータ構造 n 反対 : LIFO (Last In First Out) = スタック p 実行可能キュー (OS 用語 ) n 別名 レディキュー ランキュー n CPU の空きを待っている実行可能状態のプロセスの待ち行列 10

マルチタスクの実現方法 p メモリはプロセスごとに分割できる n メモリは番地があって土地みたいなもの n 複数のプログラムを, 主記憶に同時に読み込んでおくことは容易 p しかし,CPU は分割できない n 1 つの CPU コアが実行できる命令は 1 つ n 実行プロセスを, 高速に次々と切り替える機能が必要になる CPU 実行中 OS( カーネル ) プロセス A プロセス B p コンテクストスイッチ ( 文脈切り替え ) n 実行プロセスのコンテクスト ( 途中経過 ) をカーネル内に一時退避し, n 退避してあった別のプロセスのコンテクストを読み出して中断したところから続行する... 空き メモリマップ 11

実行コンテクスト 番地 A コード領域プログラム本体 静的データ領域 ヒープ領域 現在実行中の命令 汎用レジスタ1 値 1 汎用レジスタ2 値 2 汎用レジスタ3 値 3 プログラムカウンタ番地 A スタックポインタ 番地 B フラグレジスタ フラグ状態 実行中の CPU の状態 空き スタックのトップ 番地 B スタック領域 ( 一時変数 ) プロセスの 実行コンテクスト ( 実行文脈 ) という プロセス空間 ( プロセスに割り当てられたメモリ空間 ) 12

プロセススケジューリング p スケジューリングとは n スケジューリング = スケジュールを決める n CPUでプロセスを実行する時間 ( 順番 ) を管理すること n 用途に応じた様々なスケジューリングアルゴリズムがある p スケジューリングの目的 n CPUの利用効率をより高める n 人間等への応答時間をよくする n 仕事の優先度 ( 緊急度 ) を反映させる p プリエンプション ( 横取り ) n OSが実行プロセス (CPU 利用 ) を強制的に切り替えること n 多くのスケジューリングアルゴリズムは, プリエンプションが前提 13

スケジューリングアルゴリズム p 先着順スケジューリング n FCFS: First Come First Service p 最短時間順スケジューリング n SJF: Shortest Job First p 実行期限順スケジューリング n EDF: Earliest Deadline First p 優先度スケジューリング p ラウンドロビンスケジューリング n RR: Round-robin 14

先着順スケジューリング p FCFS スケジューリング n First Come First Service n 最初に来たプロセスから, 最初にサービスを受ける p プリエンプションの有無 n なし 基本的にはシングルタスクのための単純なスケジューリング p 現実にたとえてみると n ゲームセンターで, ゲーム機に早く並んだ人から順にゲームができる n 前の人が終わるまで, 次の人はずっと待っている p 特徴 n 原理が単純で, 実現が容易である n 問題点は? 15

最短時間順スケジューリング p SJF スケジューリング n Shortest Job First n 最も短い時間で終わる仕事から順番にやる p プリエンプションの有無 n 基本的には, なし ( いったん始めたプロセスは中断しない ) n プリエンプション有りに改良 Shortest Remaining Time First p 現実世界にたとえてみると n 量の少ない宿題から早く片付ける p 特徴 n 利点 : プロセスの平均待ち時間が最小になる n 問題点? 所要時間は実行前に見積もれないことが多い 16

実行期限順スケジューリング p EDF スケジューリング n Earliest Deadline First n 締め切り が一番近いプロセスから実行する p プリエンプション n より締め切りの近いプロセスが発生したら, それに切り替わる p 現実社会にたとえてみると n 出発時刻の早い飛行機の人から, 優先的に搭乗手続きをする p 特徴 n ロボットの制御など, リアルタイム ( 実時間 ) で動くシステム向け n 実装が難しく, 全体として最悪のケースが予測しにくい n その他? 17

優先度スケジューリング p 優先度スケジューリング n 設定された優先度が高いプロセスから実行する n 優先度が同じ場合は,FCFSなど他のスケジューリングで割り当てる p プリエンプション n より優先度の高いプロセスが発生したら, それに切り替わる p 現実社会にたとえてみると n 社員食堂に並んでいて, 上司が来たら順番を譲らなければならない p 特徴 n リアルタイムOS 向き (ITRONはFCFS+ 優先度 ) n いつまでも後回しになるかわいそうなプロセスが発生 = 飢餓状態 18

ラウンドロビンスケジューリング p Round-Robin スケジューリング n タイマー割り込みを利用し, 全プロセスを一定時間のタイムスライス ( 数十 ~ 数百ミリ秒 ) で切り替えて少しずつ順に実行していく n 持ち回り のことを英語では Round-robin という p プリエンプション n タイムスライスが経過したプロセスは横取りされ, 次に順番を譲る p 特徴 n 平等 均一で, 人間相手のシステムに向いている p 優先度つきラウンドロビン n UNIX,Linux,Windows 等では RR に優先度を組み合わせている 19

演習課題 ( 後日提出 ) p 課題 6a スケジューリングアルゴリズム n 学校で以下のような宿題が出された n これらを OS の FCFS, SJF, EDF, ラウンドロビン の各方式と同様な考え方でスケジューリングすると, どのような順序に処理してどのような結果になるか説明しなさい 科目出題日締め切りかかる時間 A 6 月 1 日 6 月 11 日 5 日間 B 6 月 2 日 6 月 30 日 7 日間 C 6 月 4 日 6 月 15 日 3 日間 D 6 月 5 日 6 月 8 日 1 日間 n 問題の単純化のため,1 日に取り組める宿題の数は 1 つだけとする n また, 宿題は出題されたその日から取り組めるものとする 20

演習課題 ( 後日提出 ) p 課題 6b HOS における FCFS+ 優先度スケジューリング n この課題の狙いは, 実際のプログラミングによって,FCFS スケジューリングと優先度スケジューリングの仕組みを理解することである n HOS はシンプルな組み込み OS なので, 基本的なスケジューリングは, FCFS( 先着順 ) と優先度によるものである n FCFS はタスクの起動順, 優先度はタスクの設定情報によって決まる p 手順 n sample\win-scheduling を ( そのまま ) 実行する n 実行結果を示し, なぜそのような動作するのか, スケジューリングの観点から考察 ( 理由を説明 ) せよ n 各タスクの優先度や start 関数での実行順序を変更していくつかの組み合わせを試し, それらの効果について考察せよ 21

演習課題 ( 後日提出 ) p 課題 6c HOS におけるノンプリエンプティブなマルチタスク n この課題の狙いは, ノンプリエンプティブな ( 協調的な ) マルチタスクの動作とそのためのプログラミング作法を理解することである n プリエンプティブでない OS では, プロセス ( タスク ) が適当なタイミングで自主的に実行権を手放すことで円滑なマルチタスクを実現する n HOS の場合, レディーキューを回して次のタスクを実行する rot_rdq (rotate ready queue) というサービスコール (API) を利用する p 手順 n 課題 6b で変更した sample\win-scheduling を元に戻す n ソースコードでコメントアウトされている各タスクの rot_rdq 関数を有効にし, タスクが自主的に実行権を次のタスクに譲るようにせよ n 実行結果を示し, なぜそのような動作するのか, スケジューリングの観点から考察 ( 理由を説明 ) せよ 22

演習課題 ( 後日提出 ) p 課題 6d HOS におけるラウンドロビンスケジューリング n この課題の狙いは, ラウンドロビンスケジューリングによるプリエンプティブな ( 真の ) マルチタスクの仕組みを理解することである n ラウンドロビンスケジューリングでは,OS が一定周期で実行プロセスを順番に ( かつ強制的に ) 切り替えていく必要がある n そのためにタイマー割り込みでスケジューラーを駆動し, プロセスの切り替えを行う HOS では割り込み対応版の irot_rdq を使う p 手順 n 課題 6c で変更した sample\win-scheduling を元に戻す n ( 擬似 ) タイマー割り込み処理である ostimer.c の中でコメントアウトされている if 文と irot_rdq の部分を有効にして実行する n 実行結果を示し, なぜそのような動作するのか, スケジューリングの観点から考察 ( 理由を説明 ) せよ 23

次回 : 小テストとプログラミング実習 p 小テスト (45 分?) n 第 1 回 第 6 回に関する知識 用語問題 p プログラミング実習 n 第 1 回 第 6 回の演習課題の解説と実習 n レポート提出はその次の回 24

HOS(μITRON) のタスク管理 サービスコール意味 説明 cre_tsk create task タスクの生成 acre_tsk 同上 (ID 自動割り当て ) act_tsk activate task タスクの起動 iact_tsk 同上 ( 割り込み用 ) can_act cancel activation タスク起動予約の取り消し ext_tsk exit task 自タスクの終了 ter_tsk terminate task タスクの強制終了 chg_pri change priority タスク優先度の変更 get_pri get priority タスク優先度の参照 rot_rdq rotate ready queue 実行可能キューの回転 irot_rdq 同上 ( 割り込み用 ) 25

HOS(μITRON) のタスク管理 サービスコール意味 説明 dly_tsk delay task 自タスクの遅延 slp_tsk sleep task 自タスクの休止 ( 起床要求待ち ) tslp_tsk 同上 ( タイムアウトあり ) wup_tsk wake up task タスク起床要求 iwup_tsk 同上 ( 割り込み用 ) can_wup cancel wakeup タスク起床要求の取り消し rel_wai release wait 待ち状態の強制解除 irel_wai 同上 ( 割り込み用 ) sus_tsk suspend task 強制待ち状態への以降 rsm_tsk resume task 強制待ち状態からの再開 frsm_tsk force resume task 強制待ち状態からの強制再開 26