جدول حافظه

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

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

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

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

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

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

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

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

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