جدول صفحه
جدول صفحه (به انگلیسی: Page table)، یک ساختار داده است که مورد استفاده یک سیستم حافظه مجازی در یک سیستمعامل رایانه به منظور ذخیره کردن آدرسهای مجازی حافظه، منطبق بر آدرسهای فیزیکی حافظه قرار میگیرد. آدرسهای مجازی (Virtual address) آن آدرسهایی هستند که برای هر فرایند یکتا و بینظیر هستند اما آدرسهای فیزیکی (Physical address) آن آدرسهایی هستند که برای سختافزار و حافظه اصلی (RAM) یکتا و بینظیر هستند.
نقش جدول صفحه
از دیدگاه سیستم عاملهایی که از حافظه مجازی استفاده میکنند، هر پردازش دارای حسی است که در حال کار با قسمتی بزرگ و پیویسته و مختص به خود در حافظه فیزیکی است ولی در واقعیت حافظه تخصیص یافته به یک پردازش دارای بخشهای وفضاهای گسسته از هم در حافظه فیزکی یا به صورت پشتیبان در حافظه ثانویه است که توسط جدول حافظه به صورت واحد به یک پردازش تخصیص میابد. در حالت کلی وظیفه جدول حافظه این است که نقشهای از حافظه مجازی به حافظه فیزیکی پدید آورد تا سیستم عامل بتواند از آن برای یافتن حافظه فیزیکی اصلی برای اجرای دستور عمل پردازشهای خود استفاده کند.
مراحل ترجمه
واحد مدیریت حافظه یک پردازشگر دارای مخزنی برای ذخیره آخرین آدرسهای استفاده شده از جدول صفحه است وقتی یک پردازش درخواست یک آدرس از جدول صفحه میکند ابتدا این مخزن جستجو میشود اگر موردی یافت شد آدرس مورد نظر از مخزنگاه آن خارج به واحد مدیریت حافظه برگردانده میشود در غیر اینصورت جدول صفحه جستجو میشود و آدرس مورد نظر بعد از یافته شدن در مخزنگاه آن نوشته میشود و دستور عملهای مربوط به خطای صفحه از دوباره آغاز میشود. حالا آدرس حافظه در مخزنگاه واحد مدیریت حافظه موجود است و دستور عملهای مربوطه اجرا خواهد شد.
پیادهسازی
قبل از آنکه سیستمعامل، پردازنده را به یک فرایند یا پردازش تحویل دهد، یک جدول حافظه را تنظیم مینماید بصورتیکه آن پردازش در سطح دسترسی پایینتری به حافظه قرار داده میشود و آدرس حافظهای که در کد پردازش مورد نظر قرار میگیرد بعداً توسط پردازنده به آدرس اصلی و فیزیکی حافظه RAM که در جدول حافظه تنظیم شده در قبل، دکر شدهاست ترجمه گردد. بنابراین آدرسهای حافظهای که در هر یک از کدهای پردازش توسط سیستمعامل قرار میگیرند آدرسهای مجازی هستند نه آدرسهای حقیقی.
این تطابق آدرسهای مجازی به آدرسهای حقیقی در قطعاتی که به آنها صفحه یا Page گفته میشوند انجام میشود. در معماری سیستمهای x86 امروزی معمولاً اندازه این صفحه ۴کیلوبایت میباشد.
زمانی که یک پردازش از آدرسی در یک صفحه که به آن پردازش تطابق داده نشدهاست استفاده نماید، باعث ایجاد یک خطای استثناء سختافزاری میگردد که به آن Pagefault گفته میشود.
وقتی که یک صفحه مورد استفاده قرار نگیرد، سیستمعامل میتواند آن را به دیسک سخت انتقال دهد. و وقتی که آن صفحه توسط یک پردازش مورد تقاضا قرار گرفت دوباره به حافظه اصلی RAM بازخواهد گشت.
بیشتر بدانیم
- حافظه
- حافظه تداعیگر (به انگلیسی: Associative memory)
- حافظه فقط خواندنی (به انگلیسی: Read only Memory)
- حافظه خواندنی-نوشتنی (به انگلیسی: Read-write memory)
- حافظه فَرّار (به انگلیسی: Volatile memory)
- حافظه دسترسی تصادفی (به انگلیسی: Random-Access Memory یا RAM)
- حافظه پنهان (به انگلیسی: Cache)
- ثبات (به انگلیسی: Register)
- حافظه مجازی (به انگلیسی: Virtual Memory)
- حافظه فلش (به انگلیسی: Flash Memory)
- تقسیم حافظه (به انگلیسی: Memory Segmentation)
- حفاظت از حافظه (به انگلیسی: Memory Protection)
منابع
- ↑ Wikipedia contributors, "Page table,"، December 20, 2012.
- ↑ hardware and operating system basics بایگانیشده در ۱۲ ژانویه ۲۰۱۳ توسط Wayback Machine، http://codeschool.org بایگانیشده در ۶ ژانویه ۲۰۱۳ توسط Wayback Machine.