صفحهبندی
به منظور برخورد با مشکل قطعه قطعه شدن خارجی حافظه و همچنین دستیابی به فضای آدرسدهی از فضای حافظه فیزیکی، میتوان از صفحهبندی استفاده نمود. در این روش، حافظه در بخشهایی به نام قاب صفحه درنظر گرفته میشود و هر برنامه نیز از نظر منطقی به بخشهایی با همان اندازه موسوم به صفحه تقسیم میشود. در چنین وضعیتی، هر صفحه از یک برنامه میتواند در هر قاب آزاد حافظه قرار گیرد. در نتیجه این تخصیص از نوع همجوار میباشد و بنابراین برای هر برنامه جدولی به نام جدول صفحه وجود دارد که نگاشت صفحات منطقی را به قابهای فیزیکی حافظه انجام دهد.
نکته: صفحهبندی به صورت گفته شده، موجب ایجاد فضای آدرسدهی مجازی بزرگتر از مجموع اندازه برنامهها نمیشود (باید اندازه حافظه به اندازه برنامهها باشد)، از این رو طول آدرس فیزیکی حافظه بزرگتر یا برابر آدرس منطقی برنامهها است.
صفحهبندی مشکل قطعه قطعه شدن خارجی را از بین میبرد، ولی خود موجب قطعه قطعه شدن داخلی میشود، چون اندازه قابها (صفحات) مستقل از اندازه برنامهها تعیین شده و غالباً فضایی به اندازه حداکثر یک قاب در اختیار صفحه آخر هر برنامه بلااستفاده باقی میماند.
نکته: اگر اندازه قابها به منظور کاهش قطعه قطعه شدن داخلی کوچک درنظر گرفته شود، تعداد صفحات زیاد شده و اندازه جداول صفحه و زمان تبدیل آدرس افزایش مییابد.
در صفحهبندی، هر آدرس برنامه به دو بخش شماره صفحه و اختلاف مکان در صفحه تقسیم میشود و در هنگام اجرا، سختافزار سیستم، عمل نگاشت شماره صفحه به شماره قاب را با استفاده از جدول صفحه انجام میدهد.
با توجه به اینکه در مکانیزم تبدیل آدرس، برای اجرای هر دستور یک مراجعه به جدول و یک مراجعه به حافظه لازم است، محل قرار گرفتن جدول صفحه مهم میباشد. جدول صفحه میتواند در ثباتهای خاص و یا در حافظههای سریع و موسوم به حافظه تناظری قرار گیرد. به دلیل محدود بودن بودن اندازه TBL همواره بخشی از جدول صفحه هر برنامه در داخل TLB قرار میگیرد و در هنگام تبدیل آدرس، اگر سطر حاوی شماره صفحه و شماره قاب در TLB موجود باشد، وضعیت برخورد (hit) رخ میدهد و اگر این سطر موجود نباشد، وضعیت عدم برخورد (miss) پیش میآید که نسبت این دو به نام نسبت برخورد از رابطه زیر محاسبه میشود: