12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

デバイス・ドライバカーネル・レベル・ドライバの 開 発 14後 に 続 くセクションで、カーネル・レベル・ドライバの 記 述 とテストに 影 響 する<strong>RedHawk</strong> <strong>Linux</strong>オペレーティング・システムの 詳 細 について 説 明 します。ドライバ・モジュールの 構 築 14既 存 の<strong>RedHawk</strong>カーネルまたはカスタム・カーネルのどちらかで 使 用 するドライバ・モジュールの 構 築 に 関 する 説 明 は、11 章 の「カーネルの 構 成 および 構 築 」で 提 供 されます。カーネルの 仮 想 アドレス 空 間 14リアルタイム 性 能 の 問 題 14割 り 込 みルーチン 14カーネル・サポート・ルーチンvmalloc()とioremap()の 動 的 マッピングが 引 き 当 てたカーネル 仮想 アドレス 空 間 の 量 が、デバイスの 要 求 に 対 応 するには 十 分 ではない 時 にいくつかのケースが 存在 します。32bitカーネルののデフォルト 値 128MBは、ioremapされることになるとても 大 きなオンボード・メモリを 持 つI/Oボードを 除 く 全 てのシステムに 対 しては 十 分 です。 一 例 は、128MBメモリが 搭 載 されるiHawkシステムにインストールされたVMICのリフレクティブ・メモリ・ボードです。128MBの 予 約 カーネル 仮 想 アドレス 空 間 が 十 分 ではない 時 、この 値 はブート 時 に 指 定 されるカーネル・ブート・パラメータ(vmalloc=)を 使 うことにより 増 やすことが 可 能 となります。このオプションに 関 する 詳 細 な 情 報 は、 付 録 -I「ブート・コマンド・ライン・パラメータ」を 参 照 して 下 さい。カーネルレベル・デバイス・ドライバはカーネル・モードで 実 行 され、カーネル 自 身 の 拡 張 です。従 ってデバイス・ドライバは、リアルタイム 性 能 に 影 響 を 与 える 可 能 性 のあるカーネル・コードと 同 様 にシステムのリアルタイム 性 能 に 影 響 を 及 ぼす 能 力 を 持 っています。 後 に 続 くセクションで、デバイス・ドライバとリアルタイムに 関 連連 するいくつかの 問 題 のハイレベルな 概 要 を 提 供 します。<strong>Linux</strong>で 利 用 可 能 な 多 くのオープン・ソース・デバイス・ドライバが 存 在 する 一 方 、それらのドライバは、 特 にリアルタイム・システムに 対 する 適遚 合 性 に 関 しては 広 範 囲 にわたる 品 質 が 存 在 することに 注 意 する 必 要 があります。割 り 込 みルーチンは 高 優 先 度 タスクを 実 行 するためにプリエンプトできないため、 割 り 込 みルーチンの 継 続 時 間 はリアルタイム・システムではとても 重 要 です。 非 常 に 長 い 割 り 込 みルーチンは割 り 込 みが 割 り 当 てられているCPU 上 で 実 行 しているプロセス・ディスパッチ・レイテンシーに直 接 影 響 を 与 えます。 用 語 「プロセス・ディスパッチ・レイテンシー」は、 割 り 込 みにより 示 される 外 部邪 イベントの 発 生 から、 外 部邪 イベントを 待 っているプロセスがユーザー・モードで 最 初 の命 令 を 実 行 するまでの 経 過遃 時 間 を 意 味 します。 割 り 込 みがプロセス・ディスパッチ・レイテンシーに 影 響 を 与 える 方 法 の 詳 細 については、「リアルタイム 性 能 」 章 を 参 照 して 下 さい。14-11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!