tarosukeの日記: [wOS] リソースメモ
日記 by
tarosuke
- リソースの抽象クラスから具象クラスを作る
- 具象クラスはそれが示すリソースのインスタンスへの参照カウンタ付き参照をメンバに持つ
- 抽象リソースクラスの実際にリクエストを処理するはずのメソッドは粋仮想関数にしないで「サポートされてない」エラーを返すようにする
- 具象クラスは抽象リソースのポインタのベクタに割り当てる
- ポインタのベクタは深さ(増やす方だけ)可変のディレクトリツリー構造
- リソースが割り当てられるとユーザプロセスに「リソース割り当て通知」メッセージが投入される
- 「リソース割り当て通知」は初期化時にも投入される
- ユーザプロセスからはファイルハンドルみたいに「リソース番号」でアクセスする
- 共有メモリもメッセージ用通信路も共有メモリと通信路が一体になったものもストリームもリソース
- ファイルはストリームで
- 読み込みストリームと書き込みストリームはポインタが別
- シークはできないので最初から最後まで読みながらデータをメモリに構築
- 書くときも一気にシリアライズ
- アクセス制御は排他のみ
- ファイルを共有する代わりにそれを開いているサーバへ繋げ
- ファイルを閉じると書き込まれた内容で置き換えられる
- キャンセルしたり強制終了されたりすると書いた内容は捨てられる
- 何も書かなかったら置き換えられない
- このメカニズムを応用したファイルの完全性を保証した履歴付きファイルシステム(予定)
- テンポラリファイル?メモリスワッパに任せろ(バリバリ
- 実はメモリスワップとデマンドロードのためにファイルのメモリへのマップはあるけど明示的には使えない
...やっと固まってきた。ふぅ。
--
テンポラリファイルなんてナシでメモリスワッパに任せるってのは、メモリスワッパはそれ自体でキャッシュとして機能しているのでよほど注意深くテンポラリファイルファイルへのアクセスを設計しない限りメモリスワッパの方が性能が良さそうだから。
[wOS] リソースメモ More ログイン