B-Free メイリングリストの皆さん、こんにちは。
>> On Fri, 10 Feb 1995 21:57:00 +0900, JBA03350@niftyserve.or.jp said:
> In-Reply-To: Your message of "Fri, 10 Feb 1995 01:51:00 +0900"
> 真鍋 裕一 さま
> | 私が気にしているのはこの点です。ページインを待つタスクはready/wait/sus
> |upendのいずれの状態でも構わないと思います。要はスケジューラがこのタスク
> |をrunとするようなディスパッチを行わなければ良いのです。
> ITRON のタスクが持つ状態を、どのようにマネージャの状態に対応させるか
> という議論は必要だと思います。これを決めれば、各マネージャの大体の動作
> が記述できそうです。
> JBA03350 3.14 こと 木元峰之
ページフォールトが発生したときのタスクの状態を、新しく定めてもいいよう
な気がします (おぉ、また仕様拡張だ!)。ユーザプロセスがページフォール
ト割り込みを発生させた時点で、ITRON カーネルが、ユーザプロセスをページ
フォールト状態にします。
このように考えたのは、物理メモリは確かにタスクにとっては資源ですが、ペー
ジフォールトが発生したというのは、タスクがメモリを明示的に要求したとい
うわけではないからです。また、ページフォールトの発生の原因として不当な
アドレスをアクセスした可能性もあるわけで、これをメモリ取得要求としてと
らえるのはちょっと違うような気がします。
# それと、ページフォールトの処理は単なる割り込み処理としてはかなり重い
# 処理のように思えます。
ページインの処理ですが、各プロセスごとにページインタスクが動いていると
考えると、LOWLIB だけで処理できそうです。
つまり、あるプロセスがページフォールトを起すと、そのプロセスに張りつい
ているページフォールト処理タスクが RUN 状態になり、ページフォールトを
起した領域についてページインの処理を行います。
このとき、ページフォールトが発生したという通知は、ITRON カーネルあるい
は LOWLIB の割り込みハンドラからのメッセージ送信によって行います。
-- 内藤隆一 (ggc00661@niftyserve.or.jp)