[OSASK 4283] BOARD: Re: コンソール API

このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3d5c643b_e742

2002/08/16 11:32
川合秀実

[OSASK 4282]へのレスです。

>コンソールAPI(2)が待ちきれなくなったので書き込みしてみます。
>タスク間通信の方法は分かりました。(いやtestかintroは要ります)
>タスクから別のタスクを起動する方法が分からないように思います。

  結論から申しますと、これはすぐには提供しない機能だと思ってほしいです。
必要があればつけますが、その場合はえせになります。より深い研究が必要と思
われるからです。

  OSASKではセキュリティーを重んじているので、たとえば、ユーザがアプリに
対してファイル名を指定して、そしてアプリはそのファイル名でファイルをオー
プンするという行為を原則禁止しています(設定ファイルなど、4つのアプリデ
ィレクトリ内のいずれかにあるものは例外ですが)。コンソールAPI(1)には書き
ませんでしたが、たとえばコマンドラインにファイル名を書いた場合でも、その
ファイル名はコマンドライン上には含まれず、第一ファイルはスロット○○、第
二ファイルはスロット××といった風にスロットに割り振られるという徹底ぶり
です。・・・これはもちろん、アプリがどのファイルがどんな名前でどこにある
かという情報を知る機会を奪い、抽象化するためです。

  一方、アプリがタスクを自由に生成することを許せば、割り当てられたCPU時
間を超えてマシンタイムを利用できるかもしれないことになります。したがって
何らかの方法で制限をかけなければいけないでしょう(もちろん全く禁止すると
いうわけではありませんが)。マルチスレッドに関しても同じ問題があります。

  システム全体でどれだけのタスクがあって、それぞれがどの程度の優先度を有
しているのかということは、基本的にシェルが管理するべきことです。DOSなど
では、シェルは普通のアプリの一環で、つまりアプリはシェルになれるのですが
OSASKではそういうわけにはまいりません。そしてタスク生成・制御行為は、シ
ェルの特権の一つです。それを簡単にアプリに開放するわけにはいかないのです
。もしアプリが他のプログラムを起動できるようになったら、まさにそれはシェ
ルじゃないですか。・・・ちなみに、本当のファイル名やパスを知るというのも
、やはりシェルの特権です。

  したがって研究が進んでタスク起動がサポートされるまでは、makeのようなも
のを作るのは難しいでしょう。シェルがシェルスクリプトをサポートしてそれで
代用するとか、その辺がとりあえずの限界です。

  もしシェル(ファイラーとか)を作りたいということでしたら、それはアプリ
とは別の話です。OSASKのソースをいじるべきだと思います。えせだらけで、い
ばらの道ではありますが。

  ・・・これで終わってしまうと面白くないので、今僕が考えているタスク起動
APIのあり方について少し書いておきます。アプリがタスクを生成した場合、そ
のタスクに対してある程度のコントロールができます。起動時のスロットの状態
とか、利用APIのタイプとか、そういうのは思いのままです。しかし、CPU利用率
や「どのCPUを利用するか」(今の僕の考えでは、OSASKではネットワークごしの
CPUでもDualでも、同じように扱います。そのため起動に際しては、どのCPUを利
用するか指定します)などは、アプリ側からはコントロールできず、シェルがコ
ントロールするでしょう。また生成できるタスクの数も決まっていて、それを超
えるとエラーになるでしょう。・・・細かいことはよく考えていないので何とも
いえませんが。


ML番号でジャンプ
ML単語検索