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

[OSASK 1823] Re: sworld.bin.



  こんにちは、川合です。


Koyanagi Masaaki さんは 2001/07/12 21:51:26 の「[OSASK 1820] Re:
 sworld.bin.」で書きました:

>今現在は、そのメモリのアドレスはスタティックデータ領域にありますが、
>マルチスレッドでプログラムを書きたい場合は、このメモリの場所をどこに
>取ったらいいのでしょうか?

  もちろん、どこでもかまいません。

  まず、マルチスレッドであるかどうかとは無関係に、このパラメータ
ー構造体はメモリの好きな場所に取れます。スタックの中でもいいです
し、mallocした領域の中でもいいですし、スタティック領域でもいいわ
けです。もっといえば、別のモジュール(ファイル)内にあってもかま
いません。モジュールをメモリにマッピングしてしまえば、それはメモ
リと同等に扱えるのですから。

  次に、マルチスレッド特有の問題です。どのようにしてマルチスレッ
ドを実現するかという問題が最初にあります。僕が現在想定しているの
は、自分自身を子プロセスとして起動してしまう方法です(もちろん、
自分以外を子プロセスにする事もできます)。子プロセスのリソースは
、親プロセスが面倒を見ます。どれを共有してどれを独立にするか、き
め細かく指定します。・・・この時、スタティック領域を独立にとれば
、シングルスレッドのときとマルチスレッドの時とでスタティック領域
の扱いに悩む事はなくなります。またスタティック領域も、4KB単位で
区分けして共有・独立を制御できます。全て共有するか、全て独立に持
つかの二択ではないのです。

  そんなわけで、不都合があればスタック上にパラメーターを並べてい
ただいてかまいません。またOSASKでは、マルチスレッドにするからと
いって、必ずしもスタティックデーター領域が競合するとは限らないの
です。


  それでは。

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