私はCでオペレーティングシステムを開発していて、ページングに苦労しています。メモリを割り当て、物理ページと仮想ページの割り当てを処理する低レベルのメモリ割り当て出力を出力することで、カーネルヒープをループでテストしています。
の場合PDE 0
、すべてがページに対して正常に機能します0-1023
が、割り当てがに移動するとすぐにPDE 1
、現在のフラグが設定された状態でページフォールトが発生しrw
、別の物理アドレスから割り当てを開始するとフラグも発生することがあります。
障害のあるアドレスを取得して、それが属するページにcr2
マップし直してから、アドレスを3に設定する必要がありますか?PDE
その後、命令を再開する必要がありますが、どうすればよいですか?助言がありますか?