次のリンクから:ページテーブルの管理 - kernel.org、私はこれらのビットを理解し、PROT_NONE
ページPRESENT
が保護されているがメモリに常駐していることをOSに通知するために使用できます。私はこの2ビットを使用して、プロセスがアクセスしているページを追跡します。これが私がすることです。
- プロセスが追跡しているページにアクセスしようとしたときにページ障害が発生するようにビットをクリアし、追跡するプロセスのページビットを
PRESENT
設定します。PROT_NONE
- ページエラーが発生した場合は、handler_pte_fault(x86)を呼び出す前に__handle_mm_fault内でページを追跡するかどうかを消去して
PROT_NONE
設定します。PRESENT
正常に実行されます。
しかし、同時にオペレーティングシステムでページを交換すると問題が発生します。だから私は知りたいです:
PROT_NONE
ビットが設定されているページを交換できますか?PROT_NONE
このように保護されたページが置き換えられると、このビットはどうなりますか?ページが置き換えられたかどうかを区別する方法は?PRESENT
ビットがクリアされたためです。
理解した内容が間違っている場合はご指摘ください。