[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1503] Re: memory management.



  こんばんは、川合です。


Koyanagi Masaaki さんは 2001/02/14 22:18:07 の「[OSASK 1499] Re:
 memory management(Re: web pages).」で書きました:

>以前紹介した「Linux2.2カーネル解析ページ」から空間管理
>http://www03.u-page.so-net.ne.jp/da2/h-takaha/internal/node177.html
>を見ると
>
>-------------------------------------------------------------------------------------
>Linuxはページング機能を持つCPUの空間管理方式を汎用化し, 様々なCPUへの対
>応性を高めてい
>る。  
>
>Intel CPU版Linuxの空間管理も、セグメント機能は利用せずページング 機能の
>みで実現している。 
>(正確には、全てのタスクが、同じ4Gbyte空間のセグメントを共有している) 
>-------------------------------------------------------------------------------------
>
>だそうです。

  的確なフォローをありがとうございます。

>>   はい。TSSは、なんだかんだいっても、かなり高速なタスク切り換え
>> 方法だというのが僕の見解です。現在のバージョンでもふんだんに使っ
>> ています。
>昔のメールで川合さんは、「Intel がOSのために用意した(であろう)機構の
>意図を汲み取ってそのまま使う」というような言い方をされていたと思います。

  はい、そのとおりです。こんな昔の発言を覚えていていただいて、僕
はうれしいです。

  それで、今もその方針に変わりはありません。・・・もちろん、無批
判に全てを利用するわけではなく、気に入らない命令は使いません。つ
いでなのでその話を書きましょう。

  僕が嫌いな命令は、STRとSLDT命令です。この命令はアプリからも実
行できます。僕が嫌いなのは、TRやLDTRの値はシステムが管理して把握
している値なのに、それをアプリが参照できることです。

  IntelがIA32に込めた意図は、「システムレジスタへの代入はシステ
ムの崩壊につながる可能性があるのでシステムにしか許さないが、参照
はシステムの破壊にはつながらないので許可する」ということなんでし
ょう。僕はこの方針が嫌いです。アプリは、自分の外側の様子を知って
はいけません。外側を直接制御することも許しません。それが、OSASK
の方針です。

  今、アプリはキー入力シグナルを比較的自由に設定できます。しかし
これは将来にわたって保証されるものではありません。アプリはwinman
0に、自分の希望を伝えることしかできません。「A」に「36」というシ
グナルを割り振っておいても、「A」の入力を検出できることを保証し
ないのです。OSASKが保証するのは、「36」という番号のシグナルを外
部の都合で送信してあげるというだけのことで、それはキーから来るの
かマウスから来るのか、はたまた他のタスクから来るのか、それは全く
不明です。そして、アプリにはそれを判断する手段は全くありません。

  アプリは任意の時点でタスクセーブされます。しかし、アプリはタス
クセーブを検出できません(検出できるようにシェルに依頼することは
できます。しかし、シェルはタスクセーブをしていないのにしたかのよ
うにシグナルを送ってくるかもしれません。逆に、タスクセーブしたの
にあえて報告しないかもしれません)。

  この徹底した「仮想化」がOSASKアプリケーションの特徴です。この
仕様はOSASKアプリケーションのエミュレーションを容易にします。シ
ェルはユーザーの意図に応じてタスクを自在にコントロールできます。

  そんなわけで、STRとSLDTのような命令は嫌いなのです。OSASKアプリ
ではこの2つの命令が使用禁止です。もし、どうしてもTRやLDTRの値が
知りたければ、シェルに聞いてください。シェルが教えてくれます。た
だし、本当のことを教えるかどうかは別ですが(笑)。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/