/proc/pid/pagemap - نگاشت
صفحات
مجازی
- /proc/pid/pagemap (از
لینوکس 2.6.25)
- این فایل
نگاشت هر یک
از صفحات
مجازی
فرایند را
به
فریمهای
صفحه
فیزیکی یا
ناحیه
مبادله (swap)
نشان
میدهد. این
فایل حاوی
یک مقدار ۶۴
بیتی برای
هر صفحه
مجازی است،
که بیتهای
آن به شرح
زیر تنظیم
شدهاند:
- 63
- اگر تنظیم
شده باشد،
صفحه در RAM
موجود است.
- 62
- اگر تنظیم
شده باشد،
صفحه در
فضای
مبادله (swap)
است.
- 61 (از لینوکس
3.5)
- صفحه یک
صفحه
نگاشتشده
به فایل یا
یک صفحه
ناشناس
اشتراکی
است.
- 60–58 (از
لینوکس 3.11)
- صفر
- 57 (از لینوکس
5.14)
- اگر تنظیم
شده باشد،
صفحه از
طریق userfaultfd(2) در
برابر
نوشتن
محافظت شده
است.
- 56 (از لینوکس
4.2)
- صفحه
بهطور
انحصاری
نگاشت شده
است.
- 55 (از لینوکس
3.11)
- ورودی جدول
صفحه (PTE) در
وضعیت soft-dirty
است (پرونده
منبع هسته
Documentation/admin-guide/mm/soft-dirty.rst را
ببینید).
- 54–0
- اگر صفحه در
RAM حاضر باشد
(بیت ۶۳)،
این بیتها
شماره فریم
صفحه را
ارائه
میدهند،
که میتوان
از آن برای
شاخصگذاری
در /proc/kpageflags و /proc/kpagecount
استفاده
کرد. اگر
صفحه در
فضای
مبادله
حاضر باشد
(بیت ۶۲)،
بیتهای 4–0
نوع مبادله
را مشخص
میکنند و
بیتهای 54–5
آفست
مبادله را
کدگذاری
مینمایند.
- پیش از
لینوکس 3.11،
بیتهای 60–55
برای
کدگذاری
لگاریتم در
مبنای ۲
اندازه
صفحه
استفاده
میشدند.
- برای
بهکارگیری
کارآمد
/proc/pid/pagemap، از
/proc/pid/maps برای
تعیین
اینکه کدام
نواحی
حافظه
واقعاً
نگاشت
شدهاند
استفاده
کرده و با
پرش (seek) از
نواحی
نگاشتنشده
عبور کنید.
- فایل /proc/pid/pagemap
تنها در
صورتی وجود
دارد که
گزینه
پیکربندی
هسته CONFIG_PROC_PAGE_MONITOR
فعال باشد.
- مجوز
دسترسی به
این فایل
توسط بررسی
حالت
دسترسی ptrace به
نام PTRACE_MODE_READ_FSCREDS
کنترل
میشود؛ ptrace(2)
را ببینید.