موضوع مقاله: صفحه (رایانه) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # صفحه (رایانه) | مقدمه: به کمک تکنیک حافظه مجازی می‌توان صفحه‌ای که هم‌اکنون در حافظه وجود ندارد را آدرس‌دهی و استفاده کرد. | ## بخش 1: صفحه (رایانه) | اگر برنامه‌ای سعی کند جایی در یک چنین صفحه‌ای را مورد دسترسی قرار دهد، یک استثنا به نام نقص صفحه رخ خواهد داد. سپس سخت‌افزار یا سیستم‌عامل با خبر شده و سعی می‌کند صفحه مورد نظر را به صورت خود کار از حافظه کمکی به حافظه اصلی بارگذاری کند. برنامه‌ای که حافظه را آدرس‌دهی می‌کند، از جریان نقص صفحه و طریقه واکشی آن با خبر نیست. حافظه مجازی، تصوری در ذهن کاربران ایجاد می‌کند که انگار آن‌ها در حال کار کردن با یک حافظه بزرگ و پیوسته هستند. (شاید بزرگتر از حافظه واقعی سیستم) در حالی که عملاً اکثر اطلاعات آن‌ها در حافظه کمکی (دیسک سخت) قرار دارد. از تکنیک انتقال صفحات بین حافظه اصلی و حافظه کمکی (مانند دیسک سخت) با نام صفحه‌بندی یا مبادله یاد می‌شود. اندازه صفحات معمولاً وابسته به سخت‌افزار است اما سیستم‌عامل هم می‌توان این پارامتر را به صورت نرم‌افزاری مشخص کند. | ## بخش 2: صفحه (رایانه) | برای مثال اگر اندازه هر صفحه به صورت سخت‌افزاری ۵۱۲ بایت باشد، سیستم‌عامل می‌تواند با چیدن دو قاب صفحه در کنار هم صفحات ۱ کیلو بایتی داشته باشد. تعیین اندازه صفحه به پارامترهای مختلفی بستگی دارد که گاهی با هم در تضاد هستند و نمی‌توان به یک اندازه ایده‌آل دست یافت. امروزه در سیستم‌های مدرن، صفحاتی با اندازه ۵۱۲ بایت تا ۱ مگابایت بسیار رایج هستند. اندازه صفحه در مقابل اندازه جدول صفحه هرچه اندازه صفحه کوچکتر در نظر گرفته شود، سیستم از صفحات بیشتری استفاده می‌کند که در این حالت به جدول صفحه‌ای با اندازه بزرگتر نیاز است. به عنوان مثال، اگر یک فضای آدرس‌دهی مجازی با ۲^۳۲ به صفحات ۴ کیلوبایتی (۲^۱۲) نگاشت شود، تعداد صفحات مجازی ۲^۲۰ خواهد بود. (۲^۳۲/۲^۱۲) با این حال اگر اندازه هر صفحه را به ۳۲ کیلوبایت افزایش دهیم، (۲^۱۵) تنها ۲^۱۷ صفحه مورد نیاز است. اندازه صفحه در مقابل استفاده از TLB از آنجا که برای هر دسترسی به حافظه باید آدرس منطقی را به آدرس فیزیکی تبدیل کنیم، خواندن جدول صفحه به ازای هر بار مراجعه به حافظه هزینه‌برخواهد بود. | ## بخش 3: صفحه (رایانه) | اندازه TLB محدود است و نمی‌توان تمام آدرس‌ها را در آن قرار داد؛ بنابراین اگر TLB نتواند درخواستی را برآورده سازد (TLB miss)، باید به‌طور دستی جدول صفحه را جستجو کرد تا عمل تبدیل آدرس صورت پذیرد. (این کار بسته به معماری سیستم، یا به صورت سخت‌افزاری یا به صورت نرم‌افزاری انجام می‌شود) اگر اندازه صفحات را بالا در نظر بگیریم، تعداد صفحات کم می‌شود و بنابراین می‌توان آن‌ها را راحت‌تر در TLB ذخیره کرد و به این ترتیب نرخ TLB miss کاهش خواهد یافت و شانس اینکه درخواست توسط TLB اجابت شود هم بالاتر می‌رود. (TLB hit) پارگی داخلی صفحات فرایندها به ندرت از تعداد دقیقی از صفحات استفاده می‌کنند. اگر اندازه صفحات بزرگ در نظر گرفته شود، این امکان وجود دارد که حافظه بیشتری از این راه به هدر برود. مثلاً اگر فرایندی ۱۳ کیلوبایت باشد و اندازه هر صفحه هم ۴ کیلوبایت باشد، مجبور هستیم فرایند مورد نظر را در چهار صفحه قرار دهیم که تنها ۱ کیلوبایت از آخرین صفحه استفاده شده و ۳ کیلوبایت آن به هدر رفته و قابل استفاده نیست. هر چه اندازه صفحات کمتر باشد، این اطمینان به وجود می‌آید که فضای کمتری از این راه به هدر برود. مثلاً در مثال قبل اگر اندازه صفحات را دو کیلوبایت در نظر بگیریم، به هفت صفحه نیاز خواهد بود که فقط ۱ کیلوبایت در آخرین صفحه به هدر خواهد رفت. | ## جمع‌بندی | تعیین اندازه صفحه در بیشتر سیستم‌عامل‌ها می‌توان اندازه صفحه را در زمان اجرا بدست آورد.