[kernel-ml 69] 1995/08/06 meeting memo

藤井 俊典 (TBE01041@niftyserve.or.jp)
Tue, 08 Aug 1995 02:32:00 +0900

Joy こと藤井俊典です。

1995/08/06 のカーネルグループミーティングのメモ。

決定事項
●プロセスマネージャがBTRONユーザプロセスを起動する仕組について。

 プロセスマネージャは以下の手順でBTRONユーザプロセスを起動する。
  1. プロセスマネージャがBTRONプロセス起動メッセージを受取。
  2. プロセスマネージャがITRONのcre_tsk,sta_tskを使用してBTRONプロセ
  スのメインタスクを起動する。
  3.後プロセスマネージャから実行ファイル等の情報をメッセージバッファ
  を使用し起動したタスクへ渡す。
  4.起動直後のタスクの状態は以下のとおり。
  ・共有半空間に存在(カーネル起動時に読み込み済み)
  ・動作レベル = 0
  5.起動されたタスクは以下の処理を行う。
  ・プロセスマネージャよりメッセージ受取(実行ファイル等の情報)
  ・実行ファイルより必要メモリ等を算出
  ・メモリマネージャへ固有半空間にコード、データ、スタック領域の割り
   当てを依頼(特権(リング)レベル > 0)
  ・実行ファイルの読み込みとデータの初期化
  6.最後にユーザプロセスに今テキストを移すために以下の処理を行う。
   動作レベル > 0 で読み込んだ実行ファイルの先頭から動作するために、
   スタックに情報をセットし IRET 命令を実行する。
  7.以上によりBTRONプロセスが起動する。

注: さて、ここでプログラムが起動できた事をプロセスマネージャへ通知する
  必要がある。これは(5.)の後にメッセージを発行する事で実現するとした
  い。

 ずらずら書いたが要点は以下の3個
  1.プロセスマネージャは固有半空間にあるので、他の固有半空間(BTRONプ
  ロセス)の設定をする処理をスターとアップ処理として分離する。
  2.スターとアップ処理は当初lowlibないに作る予定であったが、メンテナ
  ンス等を考慮し分離する。場所は共有半空間に置く。
  3.特権レベルの変更(高→低)IRET命令を使用する。

その他
 上記(3.)の特権レベルの変更方法は周辺核の起動時も使用する。

●C 言語での type 記述方法について
 μITRON 3.0 の表記方法を使用する。(B UH VH 等。μITRON 3.0標準ハンド
ブック 376頁:6.4 データタイプの内容。

未決定

●漢字コードの内部表形式はどうする? TRON? EUC? SJIS?

カーネルの動作確認
●動作した機種
 EPSON-286V に486を増設したもの 9.6Mbyte
 PC-9801FX 7.6Mbyte
 PC-9801NA 10.6Mbyte
●動作しない機種
 PC-9801BX2 9.6Mbyte
 PC-9801NS 16Mbyte

ミーティングの内容のメモです。間違いや質問があればメールリングリスト
へお願いします。