パスワードを忘れた? アカウント作成
481111 journal

witchの日記: (ROBO)(作業メモ) sched_setscheduler() について

日記 by witch

カーネルHZ変更の日記を見たBAKさんから「sched_setscheduler使ってみた?」との指摘。

「なんだっけ?それ?」と思って man を見る…
…が英文だったので面倒になってJM Project

SCHED_SETSCHEDULER

sched_setscheduler() は pid によって識別されるプロセスのスケジューリング方針やそれに関連するパラメータを設定する。
(中略)
SCHED_FIFO は 0 より大きな静的優先度でのみ使用でき、 SCHED_FIFO プロセスが実行可能になった場合、すぐに、現在実行している SCHED_OTHER か SCHED_BATCH プロセスと置き換えられる。 SCHED_FIFO は時分割のない単純なスケジューリング・アルゴリズムである。

あ…そいえばそんな機能がありましたね…
しかし

SCHED_FIFO や SCHED_RR でスケジューリングされるプロセスが停止せずに無限ループにおちいると、他の全てのより低い優先度のプロセスを永久に停止 (block) させてしまうので、ソフトウェア開発者はコンソールのシェルの静的優先度をテストするアプリケーションよりも常に高く保つべきである。

きっとこの地雷を踏むに違いない。

カーネルHZの変更はうまくいった気がします。(LinkUpするようになりました)
これでダメだったらスケジュールをいじる方向で。

あれ?でも割り込みが起きなければタスク切替え間隔はTICK単位なんじゃ…
シリアルポートの送信バッファが空になったら割り込み入ってくれるのかな?

---
今月の日記は写真が一枚もない…

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...