Wiki内検索
最近更新したページ
2008-12-15
2008-12-09
2008-12-02
2008-11-25
2008-11-21
2008-11-05
2008-11-04
2008-10-23
2008-10-14
2008-10-08
最新コメント
第ゼロ回 by check it out
参加者 by check it out
第一回 by tips about seo
参加者 by check this out
第六回 by check this out
トップページ by tips about seo
第一回 by xwtwrhbow
Menu
ここは自由に編集できるエリアです。
タグ

第一回

第一回活動報告


日時・場所

2008/11/4 13:00〜15:00
@電気系会議室1A

学習内容

プロセススケジューリング


詳解LINUXカーネル第三版 では7章全体が対応
(ただしO(1)スケジューリングについて書かれている)

O(N)スケジューリング

Linuxカーネル2.4のスケジューリング方法。
タイムスライスを割り当てる方式。動くプロセスが無くなったら、それまで溜まっていたタイムスライスを1/nしたうえで新たにタイムスライスを補給する。
runqueueがひとつだけあり、その中から優先度の高いものを探索するので、探索はプロセス数Nに応じた時間O(N)かかるためO(N)スケジューリングと呼ばれる。

O(1)スケジューリング

本に載っているスケジューリング方法。Linuxカーネル2.6。
未実行リスト(active queue)にあるプロセスのうち、優先度の高いプロセスから順番に実行し、実行済みリスト(expired queue)に格納。
未実行プロセスがなくなったら実行済みリスト未実行リストと入れ替え、また'未実行リスト''より実行する。
このとき、未実行リストからプロセスを探索するのにO(1)の時間しか必要としないのでO(1)スケジューリングと呼ばれる。
IBMの記事

CFS (Completely Fair Scheduler)

新しいスケジューリング方式、2.6.23から採用。タイムスライス方式とはだいぶ異なっている。
runqueueは赤黒木によって実装されている。
実行されていないプロセスは待ち時間が平等に増加し、実行されているプロセスは待ち時間が減少する。
単位時間をプロセス数Nで分割し、その時間が来たときに最も待ち時間が溜まっていたプロセスが実行される。
優先度によって、実行中プロセスの待ち時間の減少速度が変化する。

・・・という話だと思った。ちゃんと読まないと分からないのであとでまた編集します。

IBMの記事
Wikipedia
O(1)の弱点とCFSの概要
論文誌?
すら度
ttp://kerneltrap.org/node/8059
ttp://kerneltrap.org/node/8208
ttp://kerneltap.org/node/11773


次回以降の予定

第N回日付内容担当
第二回11/18第八章 メモリ管理b_naka
第三回11/25第三章 プロセス(第一章含む?)tencube
第四回12/2第五章 カーネルの同期処理hayamiz
第五回12/9第十九章 プロセス間通信yuyarin
第六回12/16第十二章 VFS.a.u
第九章 プロセスアドレス空間これは読んどきたいわー
2008年11月05日(水) 01:03:47 Modified by ID:KOeMxnisKA




スマートフォン版で見る