p20190206b
のバックアップ(No.5)
[
トップ
|
一覧
|
単語検索
|
最終更新
|
バックアップ
|
ヘルプ
]
バックアップ一覧
差分
を表示
現在との差分
を表示
ソース
を表示
p20190206b
へ行く。
1 (2019-02-07 (木) 00:39:56)
2 (2019-02-07 (木) 00:43:23)
3 (2019-02-07 (木) 15:48:21)
4 (2019-02-08 (金) 19:41:09)
5 (2019-02-09 (土) 11:06:59)
アイデアメモ - 疑似マルチタスクのための仕様
(by
K
, 2019.02.06)
↑
(0)
十分な説明をしないので、書いている本人しかわからないと思います。ごめんなさい。
↑
(1) フルC言語版
スレッドごとに、フェーズ構造体のサイズが固定長で決まっている。
エントリポイントから関数呼び出しがかかり、関数は次の関数ポインタを返して終了する。
スレッドは必要に応じて自分の環境を拡大できる。そのためにisも得られる(環境の中に書いてある)。Kmlc0*やKps*もある。next-callは必要に応じて自分でやる。
{ wis, ris, Kps*, Kmlc0* }
wisはworkのisだな。risはなんだ?リザルトを返すためのisなのかな?
関数はenvとphsを引数に持つ。
システムは、2つのphsを交互に与え、もし記録すべき状態になったら、両方のコピーを保存する。
phs2strで文字列化する。
再開の必要がなくなれば、関数は0を返すようになる。
↑
(2) (なんか順番が逆だけど)そもそもの要求仕様
プログラムが複数同時に走る(走っているように見える)。
プログラムは途中で停止して、コードを書き換えて、再開できる。
変数を増やしたり減らしたりしても、途中から再開できる。
変数名を変更しても、途中から再開できる。
マルチコアでの並列実行には興味がない(ここを追及すると難易度が上がる)。
チェックポイント命令以外の場所では、タスクスイッチを一切想定しなくてよい。
↑
こめんと欄
コメント
お名前
NameLink