差分

移動先: 案内検索

プロセス管理

110 バイト追加, 2018年9月19日 (水) 14:59
/* 基本的なスケジュリング方式 */
スケジューリングの方式にはポリシーと呼ばれる、いくつかの方式があります。
 
* 独自優先順位 ( SCHED_OTHER ) : 実行に使用した時間の違いなどにより優先順位をつけるなどし、その優先順位に従って割り当てる方式。(Linuxデフォルト)
優先順位方式は、何らかの評価方式でCPUに割り当てる優先度や割り当てる時間を決めて順番を決める方式です。何らかという通り、色々な方法があって、オペレーティングシステムの違いによって異なりますし、あるいは同じカーネルであってもバージョンの違いによっても異なります。
 
FIFOの場合、そのプロセスがCPUを専有するのでCPUが空かない限り他のプロセスはCPUは割り当てられません。プロセスがSLEEP状態から復帰した場合、次にCPUを割り当てられるのはFIFOプロセスです。
その後 Linux 3.14 (2014/3/20リリース) から SCHED_DEADLINE がスケジュラに加わっています。これはリアルタイム処理に対して効果的に働くスケジューラです。Linux がスケジュラ <ref> デフォルトで使えるかどうかはディストリビューションによります。</ref> に加わっています。これはリアルタイム処理に対して効果的に働くスケジューラです。Linux 3.14ではデットライン・スケジュラーのアルゴリズムはEarliest Deadline First (EDF)を採用していましたが、Linux 4.13 (2017/9/5リリース)からはアルゴリズムがEDFを改良した Constant Bandwidth Server ( CBS ) を採用しています。 
カーネルにどのスケジューラを入れるかはディストリビューションによって異なりますし、またカーネルのバージョンによっても違ってきます。どのようなスケジューリングが可能かを簡単に調べるのにはコマンド chrt が便利です。