34.3. sched_getscheduler() を使用してプロセスの優先度を表示する

リアルタイムプロセスでは、一連の関数を使用してポリシーと優先順位を制御します。sched_getscheduler() 関数を使用して、指定したプロセスのスケジューラーポリシーを表示できます。

手順

  1. get_sched.c ソースファイルを作成し、テキストエディターで開きます。

    $ {EDITOR} get_sched.c
  2. ファイルに以下の行を追加します。

    #include <sched.h>
    #include <unistd.h>
    #include <stdio.h>
    
    int main()
    {
      int policy;
      pid_t pid = getpid();
    
      policy = sched_getscheduler(pid);
      printf("Policy for pid %ld is %i.\n", (long) pid, policy);
      return 0;
    }

    policy 変数は、指定されたプロセスのスケジューラーポリシーを保持します。

  3. プログラムをコンパイルします。

    $ gcc get_sched.c -o get_sched
  4. さまざまなポリシーでプログラムを実行します。

    $ chrt -o 0 ./get_sched
    Policy for pid 27240 is 0.
    $ chrt -r 10 ./get_sched
    Policy for pid 27243 is 2.
    $ chrt -f 10 ./get_sched
    Policy for pid 27245 is 1.

関連情報

  • sched_getscheduler(2) の man ページ