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