それがスケジューリング

輪講: Modern Operating System
suzuk
第3回 SCHEDULING
 第2章 Process and Threads (SCHEDULING)
 担当範囲
 P149~
Table of Contents
1.
2.
3.
4.
Policy versus mecanism
Thread Scheduling
Research on Processes and Threads
Summary
1. Policy versus Mecanism
 多くの子供がいる鳥
 親は子の世話をする
(制御)
腹減った
親は賢い順番で、
子の要求を叶える
必要がある
それがスケジューリング
腹減った
腹減った
1. Policy versus Mecanism
 うまーく、スケジューリングする方法
 基本方針と実際の仕組みを分けて考える
 Separate
 scheduling mechanism from
 scheduling policy
 より詳しく言うと!
 Control
 スケジューリングアルゴリズム BY
 User Process State
1. Policy versus Mecanism
 つまり、どーいうことなのよ?
 OS自体(kernel)にスケジューリングの仕組みが
ある
 ラウンドロビン(えーっ!)、・・・・・・・など
でも、それだけでなく・・・・
 プロセスごとにpriorityを変えることができる
 OSじゃなくてユーザプロセス側でスケジューリングを
制御できる!
2. Thread Scheduling
 ユーザ実行単位のプログラム構造
 プロセス
 スレッド
2. Thread Scheduling
 user-level スレッド
 OS(kernel)は関知し
ない
 1つのスレッドが好きに
振舞ってよい
 Runtime-Systemが
ある場合は、ラウンドロ
ビンとかされる
 スレッドに対する割り込
みがない
2. Thread Scheduling
 kernel-level スレッド
 ユーザプロセスを気にし
なくてよい(自由)
 カーネルから時間を与
えられ、超過すると強制
的に停止させられる
2. Thread Scheduling
 どっちがいいの?
 効率
 user-level スレッドのほうが良い
 kernel-level スレッド
 full コンテキストスイッチが必要
 メモリマップの切り替え
 キャッシュの無効化
 透過性
 kernel-thread
 全プロセスを通して存在し続ける
 I/Oブロックにアクセスするスレッドなど・・・
2. Thread Scheduling
 さらにuser-levelのいいところ
 調節(カスタマイズ)しやすい
 プロセス独自のスケジューラを使うことができる
 Web serverの例
3. Research on Processes and
Threads
 スレッドの歴史が載ってました・・・
 スレッドはプロセスよりも新しい技術です
 スレッド同期、スレッド排他的制御は70年から80
年代
4. Summary
 OSは並行して仕事を実行できる仕組みを持つ
 プロセスは独自の領域を持つ
 スレッドはプロセスメモリ空間を共有して使ってる
 ユーザプロセス
 カーネルプロセス
 プロセス間通信 (相互排他制御に使える)
 セマフォ、ミューテックス、モニター、メッセージ
 たくさんのスケジューリング アルゴリズムがある