FreeBSDスケジューラとLinuxスケジューラの違いは何ですか?FreeBSDスケジューラとLinuxスケジューラの相違点
答えて
利用可能なスケジューラがいくつかあります。この回答はデフォルトのスケジューラー、CFS(Linux)とULE(FreeBSD)を前提としています。
CFSは、の完全に公平なスケジューラの略です。最も顕著な違いは、CFSはプロセス選択の実行キューに基づいていないことです。代わりに、O(log N)の複雑さを持つ赤黒のツリーを使用します。このツリーは、費やされたCPU時間によって索引付けされます。
CFSは時間アカウンティングにナノ秒を使用しています。 Kernel Trapから:
CFSは、ナノ秒の粒度会計を使用して、任意の jiffy単位または他のHZの詳細に依存しません。したがって、CFSスケジューラには 「タイムスライス」という概念はなく、ヒューリスティックはまったくありません。一つだけ 中央チューナブルがあります:「サーバ」(良いバッチ処理)ワークロードに「デスクトップ」(低レイテンシ )からチューニングするために、スケジューラを使用することができます
/proc/sys/kernel/sched_granularity_ns
。デスクトップワークロードに適したデフォルト設定は です。 SCHED_BATCHは CFSスケジューラモジュールによっても処理されます。
ULEは、従来のBSDスケジューラの後継です。 SMPシステムとユニプロセッサーシステムで大幅に改善されたパフォーマンスを提供します。実行キューとタイムスライスを使用する従来の設計に従います。公平に努めていますが、インタラクティブなプロセスを好むよう指示することができます。
ここでは、CFSのソースを勉強している間に、ULEの著者によるいくつかの所見にはlinkがあります。また、CFSスケジューラのアルゴリズムの複雑さ(議論が深まっている)については、コメントで説明します。
両方のスケジューラは、デスクトップでの使用に適しています。 kern.sched.interact
が設定されていると、ULEは対話型プロセスを優先します。それがなければ、CFSとULEは同等に公正でなければなりません。
ULEはおよそ3000行のコードであり、CFSはその2倍に近くなっています。
- 1. 即時スケジューラとスケジューラをまったく使用しない場合の相違
- 2. Linux I/Oスケジューラの変更
- 3. Linuxスケジューラの性能評価
- 4. スケジューラ、CrudRepositoryとTransactionRequiredException
- 5. Angular4とDevextremeスケジューラ
- 6. Android LMKとLinuxの相違点OOM
- 7. Fullcalendar 2.9.1はFullCalendarスケジューラのスケジューラ1.2.1
- 8. 春のブートバッチとスケジューラ
- 9. dhtmlxスケジューラを追加するdhtmlxスケジューラ
- 10. 剣道スケジューラ:スケジューラ間でイベントを移動
- 11. Syncfusionスケジューラのデータソース
- 12. FullCalendarスケジューラのタイミングカスタマイズ
- 13. dhtmlxスケジューラのカスタムタイムライン
- 14. データベースのスケジューラ
- 15. Quartz.netスケジューラのメモリリーク
- 16. Webアプリケーションのスケジューラ
- 17. Linux変数の相違点$ BASH_SUBSHELL対$ SHLVL
- 18. Linux SCHED_OTHER、SCHED_FIFO、SCHED_RRの相違点
- 19. IE標準、相違点および相違点の相違点
- 20. Linuxのスレッド優先度とスケジューラを変更する
- 21. Quartzスケジューラ、XML ValidationException
- 22. WindowsスケジューラGroovyスクリプト
- 23. HerokuスケジューラResque
- 24. PHP Cronマネージャ/スケジューラ
- 25. OOZIE CRONスケジューラ
- 26. 春更新スケジューラ
- 27. ローカルDASKスケジューラ
- 28. バインディングSyncfusionスケジューラc#
- 29. スプリングブート+ jpa +スケジューラ
- 30. リアルタイムOSスケジューラ
これは、StackOverflowのトピックではありません。おそらくこの質問を[Unix&Linux](http://unix.stackexchange.com)に投稿することがより適切でしょう。 – Graham