RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
システム・クロックおよびタイマープロセス 実 行 時 間 および 制 限 7ローカル・タイマーはSCHED_OTHERおよびSCHED_RRスケジューリング・ポリシーでスケジュールされたプロセスのクォンタムを 満 了 するために 使 用 されます。これは 同 じスケジューリング・ポリシーのプロセスがラウンドロビン 方 式 でCPUを 共 有 することを 可 能 にします。もしローカル・タイマーがCPU 上 で 無 効 である 場 合 、CPU 上 のプロセスはもはやそれらのクォンタムを 満了 することはありません。これは、このCPU 上 で 実 行 中 のプロセスはブロックするまで、または高 優 先 度 プロセスが 実 行 可 能 となるまで 実 行 されることを 意 味 します。つまり、ローカル・タイマー 割 り 込 みが 無 効 であるCPU 上 では、SCHED_RRスケジューリング・ポリシーにスケジュールされたプロセスはまるでSCHED_FIFOスケジューリング・ポリシーにスケジュールされたように動 作 します。ローカル・タイマーが 有 効 のままであるCPU 上 にスケジュールされたプロセスは 影響 を 受 けないことを 注 意 してください。プロセス・スケジューリング・ポリシーに 関 する 詳 細 な情 報 については4 章 の「プロセス・スケジューリング」を 参 照 してください。setrlimit(2)およびgetrlimit(2)システムコールは、プロセスが 消 費 可 能 なCPU 時 間 に 関 する 制 限 をプロセスが 設 定 および 取 得 することを 可 能 にします。この 時 間 が 満 了 となった 時 、プロセスにSIGXCPUシグナルが 送 信 されます。CPU 時 間 の 蓄 積 はローカル・タイマー 割 り 込 みルーチンの 中で 行 われます。 従 って、もしCPU 上 のローカル・タイマーが 無 効 である 場 合 、CPU 上 のプロセスが 実 行 する 時 間 は 計 上 されません。もしこれがプロセスを 実 行 する 唯 一 のCPUである 場 合 、SIGXCPUシグナルを 受 信 することは 決 してありません。インターバル・タイマーのデクリメント 7システム・プロファイリング 7CPU 負 荷 バランシングング 7setitimer(2)およびgetitimer(2)システムコールはプロセスが 個 々に“ 仮 想 タイマー”のセットアップ、タイマーの 値 の 取 得 を 可 能 にします。 仮 想 タイマーはプロセスが 実 行 中 の 時 だけデクリメントされます。 仮 想 タイマーには、ユーザー・レベルでプロセスが 実 行 している 時 だけデクリメントするものとユーザー・レベルとカーネル・レベルのどちらでもプロセスが 実 行 している 時 にデクリメントするものの2 種 類 が 存 在 します。 仮 想 タイマーが 満 了 する 時 、シグナルがプロセスへ送 信 されます。 仮 想 タイマーのデクリメントはローカル・タイマー・ルーチンで 行 われます。 従って、ローカル・タイマーがCPU 上 で 無 効 である 時 、 使 用 時 間 が 仮 想 タイマーからデクリメントされることはありません。もしこれがプロセスを 実 行 している 唯 一 のCPUである 場 合 、その 仮 想タイマーは 決 して 満 了 となりません。ローカル・タイマーはシステム・プロファイリングを 操 作 します。プロファイラーが 記 録 するサンプルはローカル・タイマー 割 り 込 みの 発 生 により 始 動 します。もしローカル・タイマーが 任 意のCPU 上 で 無 効 である 場 合 、gprof(1)コマンドとprofil(2)システム・サービスはそのCPU 上 で 動 作するプロセスに 対 して 正 しく 機 能 しません。ローカル・タイマー 割 り 込 みルーチンは、このCPU 上 で 実 行 可 能 なプロセスの 数 がシステム 内 の他 のCPU 上 で 実 行 可 能 なプロセスよりも 極 めて 少 なくないことを 確 認 するために 周 期 的 にロード・バランサーを 呼 びます。このような 場 合 、ロード・バランサーは 全 てのCPU 間 の 負 荷 のバランスをとるために 他 のCPUからプロセスを 移 動 します。ローカル・タイマー 割 り 込 みが 無 効 になっているCPUで、 実 行 するプロセスがCPUにない 時 にロード・バランサーは 呼 ばれます。シールドCPU 上 でバックグラウンド・プロセスが 実 行 することは 通 常 望 ましいことではないため、この機 能 の 損 失 はシールドCPUにおいて 通 常 は 問 題 ではありません。7-3