11.3.5. sched_rr_get_interval


この SCHED_RR ポリシーは、SCHED_FIFO ポリシーとは若干異なります。SCHED_RR は、ラウンドロビンローテーションで同じ優先順位を持つ同時プロセスを割り当てます。この方法では、各プロセスに複数回割り当てられます。sched_rr_get_interval() 関数は、各プロセスに割り当てられた回数を報告します。
POSIX では、この関数が SCHED_RR プロセスでのみ機能しなければならない必要がありますが、この sched_rr_get_interval() 関数は Linux 上の プロセスの時系列の長さを取得することができます。
時系列情報は timespec または、ベース時間 1970 年 1 月 1 日 00:00:00:00 GMT以降の秒とナノ秒の数値で返されます。秒数とナノ秒を返します。
struct timespec {
  time_t tv_sec;  /* seconds */
  long tv_nsec; /* nanoseconds */
}
この sched_rr_get_interval 関数には、プロセスの PID と構造の timespec が必要です。
#include <stdio.h>
#include <sched.h>

main()
{
   struct timespec ts;
   int ret;

   /* real apps must check return values */
   ret = sched_rr_get_interval(0, &amp;ts);

   printf("Timeslice: %lu.%lu\n", ts.tv_sec, ts.tv_nsec);
}
以下のコマンドは、さまざまなポリシーおよび優先順位を使用して、テストプログラム sched_03 を実行します。SCHED_FIFO ポリシーのあるプロセスは、0 秒と 0ナノ秒の回数を返します。これは無限であることを示します。
~]$ chrt -o 0 ./sched_03
Timeslice: 0.38994072
~]$ chrt -r 10 ./sched_03
Timeslice: 0.99984800
~]$ chrt -f 10 ./sched_03
Timeslice: 0.0

注記

詳細は、以下の man ページは本セクションに記載の情報に関連しています。
  • nice(2)
  • getpriority(2)
  • setpriority(2)
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.