tarosukeの日記: 俺OS iii
日記 by
tarosuke
調子ぶっこいてまたもや進めてみる。
仮想メモリの実装
ページ、仮想メモリ空間を定義してみる。ポインタが出現する度に
「こいつは実空間?仮想空間?」と混乱しそうになる。実空間ポイ
ンタみたいな命名規則とか記述方法とかを考えないといけないかも。
仮想メモリもプールで管理するので仮想メモリ管理ブロックにはキ
ューのためのメンバが付く。それから仮想空間の先頭を指すポイン
タを追加。
仮想メモリ管理ブロックの初期化時に仮想空間アドレスを設定した
ら二度と変更しないのでセグメントへの参照はメンバに入れない。
ix86ならGDTと一緒に設定してあとはそのまま。というわけ。
というわけで仮想空間割り当ての関数を書いてみる。空きプールか
ら取り出して使用中プールに放り込んで先頭アドレスを返すだけ。
7行。プールメカニズムのおかげだ。
***** 実際のソースコードがもりもり書き変わっているので消したよ。
何にせよこのあたりは経験がないのでソース上にいろいろ要素を並
べてアタリを取っている段階。しんどくて楽しいところだ。
さて、仕事行って来るかな。今日は帰れないかも。
# やっぱり帰ることにした。トラブルの原因は他のところにありそうだし。
俺OS iii More ログイン