جدول صفحه

از ویکی‌پدیا، دانشنامهٔ آزاد

جدول صفحه (به انگلیسی: Page table)، یک ساختار داده است که مورد استفاده یک سیستم حافظه مجازی در یک سیستم‌عامل رایانه به منظور ذخیره کردن آدرسهای مجازی حافظه، منطبق بر آدرسهای فیزیکی حافظه قرار می‌گیرد. آدرسهای مجازی (Virtual address) آن آدرسهایی هستند که برای هر فرایند یکتا و بی‌نظیر هستند اما آدرسهای فیزیکی (Physical address) آن آدرسهایی هستند که برای سخت‌افزار و حافظه اصلی (RAM) یکتا و بی‌نظیر هستند.[۱]

نقش جدول صفحه[ویرایش]

از دیدگاه سیستم عامل‌هایی که از حافظه مجازی استفاده می‌کنند، هر پردازش دارای حسی است که در حال کار با قسمتی بزرگ و پیویسته و مختص به خود در حافظه فیزیکی است ولی در واقعیت حافظه تخصیص یافته به یک پردازش دارای بخش‌های وفضاهای گسسته از هم در حافظه فیزکی یا به صورت پشتیبان در حافظه ثانویه است که توسط جدول حافظه به صورت واحد به یک پردازش تخصیص میابد. در حالت کلی وظیفه جدول حافظه این است که نقشه‌ای از حافظه مجازی به حافظه فیزیکی پدید آورد تا سیستم عامل بتواند از آن برای یافتن حافظه فیزیکی اصلی برای اجرای دستور عمل پردازش‌های خود استفاده کند.

مراحل ترجمه[ویرایش]

واحد مدیریت حافظه یک پردازشگر دارای مخزنی برای ذخیره آخرین آدرس‌های استفاده شده از جدول صفحه است وقتی یک پردازش درخواست یک آدرس از جدول صفحه می‌کند ابتدا این مخزن جستجو می‌شود اگر موردی یافت شد آدرس مورد نظر از مخزنگاه آن خارج به واحد مدیریت حافظه برگردانده می‌شود در غیر اینصورت جدول صفحه جستجو می‌شود و آدرس مورد نظر بعد از یافته شدن در مخزنگاه آن نوشته می‌شود و دستور عمل‌های مربوط به خطای صفحه از دوباره آغاز می‌شود. حالا آدرس حافظه در مخزنگاه واحد مدیریت حافظه موجود است و دستور عمل‌های مربوطه اجرا خواهد شد.

پیاده‌سازی[ویرایش]

قبل از آنکه سیستم‌عامل، پردازنده را به یک فرایند یا پردازش تحویل دهد، یک جدول حافظه را تنظیم می‌نماید بصورتیکه آن پردازش در سطح دسترسی پایین‌تری به حافظه قرار داده می‌شود و آدرس حافظه‌ای که در کد پردازش مورد نظر قرار می‌گیرد بعداً توسط پردازنده به آدرس اصلی و فیزیکی حافظه RAM که در جدول حافظه تنظیم شده در قبل، دکر شده‌است ترجمه گردد. بنابراین آدرسهای حافظه‌ای که در هر یک از کدهای پردازش توسط سیستم‌عامل قرار می‌گیرند آدرسهای مجازی هستند نه آدرسهای حقیقی.

این تطابق آدرسهای مجازی به آدرسهای حقیقی در قطعاتی که به آن‌ها صفحه یا Page گفته می‌شوند انجام می‌شود. در معماری سیستم‌های x86 امروزی معمولاً اندازه این صفحه ۴کیلوبایت می‌باشد.

زمانی که یک پردازش از آدرسی در یک صفحه که به آن پردازش تطابق داده نشده‌است استفاده نماید، باعث ایجاد یک خطای استثناء سخت‌افزاری می‌گردد که به آن Pagefault گفته می‌شود.

وقتی که یک صفحه مورد استفاده قرار نگیرد، سیستم‌عامل می‌تواند آن را به دیسک سخت انتقال دهد. و وقتی که آن صفحه توسط یک پردازش مورد تقاضا قرار گرفت دوباره به حافظه اصلی RAM بازخواهد گشت.[۲]

بیشتر بدانیم[ویرایش]

منابع[ویرایش]