狠狠撸

狠狠撸Share a Scribd company logo
計算機工学のスケジューリングを現実
世界に活かせないだろうか(ネタ)
自己紹介
株式会社 CyberZ
F.O.X事業 ビッグデータ、イ
ンフラ全般、SRE(現場のエン
ジニア)
twitter: @tkmoteki
facebook:
takahiro.moteki.31
茂木 高宏
(もてき たかひろ)
様々な分野で使われる計算機工学のスケジュー
リング(アルゴリズム)
オペレーティングシステム, リアルタイムシステム, ジョブスケ
ジューラ, 分散システム, メッセージングシステム, コレクション
ライブラリ...
いろいろなとこ
ろで登場!
いろいろな職種の
エンジニアが知っ
てるはず
タスク
(プロセス)
タスク
(プロセス)
計算機工学のスケジューリング
タスク
(プロセス)
タスク
(プロセス)
タスク
(プロセス)
タスク
(プロセス)
どうスケジューリングする??
お仕事
(タスク)
お仕事
(タスク)
現実世界のスケジューリング
お仕事
(タスク)
お仕事
(タスク)
お仕事
(タスク)
お仕事
(タスク)
どうスケジューリングする??
前提: CyberZのエンジニアリング現場にしよう
First In First Out
(First come, First
Saved)
First In First Out
(First come, First Saved)
タスク発生順にスケジューリングする
これは何?
シチュレイション -> 社内無職状態
とりあえず、ぽろぽろ仕事きたら、来た順に?????? -
現実世界
実装例
キュー
First In First Out
(First come, First
Saved)
使える!! ちなみに...
最近のボク
静的
Priorityスケジューリング
静的
Priorityスケジューリング
タスクに固定優先度を付けて、優先度の高いタスクから実行する
これは何?
シチュレイション -> 1人ぼっちPJ
とりあえず、タスクを自分で優先度付けて?????? -
現実世界
実装例
配列 + キュー
静的
優先度スケジューリング
使える!! ちなみに...
半年前くらいのボク
いやいや、使えないだろう。。。
动的スケジューリング(一例)
動的スケジューリングの考え方
● Best Effort - 新しいタスク要求をを全て受け入
れ、許容範囲を超えたものはアボートする
● Guarantee - 新しいタスク発生の度にタスクにつ
けた指標をチェックして、守れない場合断る
● Robust - Guranteeと同様。ただし、タスクにつ
けた指標を超えないうちはリトライする
(Priority)
Fairスケジューリング
(Priority)
Fair スケジューリング
タスク総実行時間を均等にし、外的要因 /内的要因発生に対して公平的に、優先度を動的に割り付けて
スケジューリングする
これは何?
シチュレイション -> 差込対応人
障害対応、緊急対応とか、というかこれ人間には無理だ。
現実世界
実装例
tree系(red black tree... )
(Priority)
Fairスケジューリング
使える!! ちなみに...
開発局に移った時のボク
Rate Monotonic
Rate Monotonic
周期タスクセットに対して、起動周期の短いタスクに高い優先度を付けてスケジューリングする
これは何?
シチュレイション -> 運用担当者
複数のPJまたがって運用してて、優先度決めらんないし、周期短いタスクからやるか (テヘペロ)
現実世界
実装例
配列 + キュー
Rate Monotonic
使える!! ちなみに...
インフラ局時代のボク
Earlist Deadline First
Earlist Deadline Firste
周期タスクセットと非周期タスク両方について、デッドラインの早い順に動的に優先度を割り付けるスケ
ジューリグ
これは何?
シチュレイション -> 運用もするし検証とか、いろいろする人
期限に厳しいしな、デッドライン早いものから、やっかー????
現実世界
実装例
tree系(red black tree... )
Earlist Deadline First
使える!! ちなみに...
たまに訪れる時のボク
Least Laxity First
Least Laxity First
周期タスクセットと非周期タスク両方について、余裕時間の早い順に動的に優先度を割り付けるスケ
ジューリグ
これは何?
シチュレイション -> 運用もするし検証とか、開発とかいろいろする人
う?ん、たまには余裕時間で見積もってみるか??
現実世界
実装例
tree系(red black tree... )
Least Laxity First
使える!!
動的スケジューリング、もっといろいろあるけ
ど、、、
複雑な推定をすればするほど -> コンテキストスイッチングが低下しオーバヘッド
計算機工学
複雑な推定をすればするほど -> 調整がかかりオーバヘッドになってない ?
現実世界
計算機工学的には、よく使われる箇所を最適化することが全体としての最も最適な改善と
言われる
あれ、現実世界って、、、
タスクパター
ン
時間制約
タスク依存関
係
外的要因
内的要因
計算機工学のスケジューリングを現実
世界に活かせないだろうか
● 時と場合によるが、現実世界には、そのまま活か
せない
● 考え方によっては参考になるかもしれない
● 他分野の知見を活かして広く物事を見るのは良い
かもしれない
明日もお仕事 頑張りましょう。

More Related Content

摆社内勉强会闭计算机工学のスケシ?ューリンク?を现実世界に活かせないた?ろうか(ネタ)