مدیریت حافظه فیزیکی و مجازی
سیستم عامل برای اجرای همزمان چندین برنامه و مدیریت کارآمد حافظه، از تکنیکهای مدیریت حافظه فیزیکی و مجازی استفاده میکند. این تکنیکها به سیستم عامل اجازه میدهند تا حافظه را به صورت بهینه بین فرآیندها تخصیص داده و از خطرات امنیتی جلوگیری کند.
اهداف یادگیری
- آشنایی با مفاهیم حافظه فیزیکی و مجازی
- درک روشهای مدیریت حافظه فیزیکی مانند تخصیص پیوسته، صفحهبندی و قطعهبندی
- یادگیری مفاهیم حافظه مجازی، فضای آدرس مجازی و ترجمه آدرس
- آشنایی با الگوریتمهای جایگزینی صفحه در حافظه مجازی
مدیریت حافظه فیزیکی
مدیریت حافظه فیزیکی به معنای تخصیص و آزادسازی فضای حافظه اصلی (RAM) به فرآیندها است. در ادامه به بررسی سه روش اصلی مدیریت حافظه فیزیکی میپردازیم:
در این روش، به هر فریند یک بلوک پیوسته از حافظه اختصاص داده میشود. این روش ساده است اما میتواند منجر به تکهتکه شدن حافظه و هدر رفتن فضا شود.
- مزایا: سادگی پیادهسازی، سرعت بالا در دسترسی به حافظه
- معایب: تکهتکه شدن خارجی، عدم امکان اجرای برنامههای بزرگتر از فضای خالی پیوسته
در صفحهبندی، حافظه فیزیکی و فضای آدرس منطقی فرآیند به بلوکهایی با اندازه ثابت به نام صفحه تقسیم میشوند. سیستم عامل میتواند صفحات یک فرآیند را در قابهای مختلف حافظه فیزیکی قرار دهد. برای ترجمه آدرسهای منطقی به فیزیکی از یک جدول صفحه استفاده میشود.
- مزایا: کاهش تکهتکه شدن خارجی، امکان اجرای برنامههای بزرگتر از حافظه فیزیکی
- معایب: پیچیدگی پیادهسازی، سربار ترجمه آدرس
قطعهبندی شبیه صفحهبندی است با این تفاوت که در اینجا اندازه بلوکها متغیر است. هر قطعه نمایانگر یک واحد منطقی از برنامه مانند کد، داده یا پشته است.
- مزایا: انعطافپذیری بیشتر نسبت به صفحهبندی، کاهش تکهتکه شدن خارجی
- معایب: پیچیدگی پیادهسازی، مشکل در پیدا کردن فضای خالی برای قطعات بزرگ
مدیریت حافظه مجازی
حافظه مجازی یک تکنیک برای مدیریت حافظه است که به فرآیندها اجازه میدهد تا به حافظهای بزرگتر از حافظه فیزیکی موجود دسترسی داشته باشند. در این روش، سیستم عامل بخشی از حافظه ثانویه (مانند دیسک سخت) را به عنوان حافظه مجازی در نظر میگیرد. هنگامی که یک فرآیند به حافظهای که در RAM موجود نیست، نیاز دارد، سیستم عامل آن را از حافظه ثانویه به RAM منتقل میکند.
فضای آدرس مجازی
هر فرآیند در حافظه مجازی دارای یک فضای آدرس مجازی مستقل است. فضای آدرس مجازی مجموعهای از آدرسهای منطقی است که فرآیند میتواند از آنها استفاده کند. سیستم عامل وظیفه ترجمه آدرسهای مجازی به آدرسهای فیزیکی را بر عهده دارد.
ترجمه آدرس
برای ترجمه آدرسهای مجازی به فیزیکی از یک واحد مدیریت حافظه (MMU) استفاده میشود. MMU از جداول صفحه برای نگاشت صفحات مجازی به قابهای فیزیکی استفاده میکند.
الگوریتمهای جایگزینی صفحه
هنگامی که حافظه RAM پر میشود و یک صفحه جدید باید از حافظه ثانویه به RAM منتقل شود، سیستم عامل باید تصمیم بگیرد که کدام صفحه فعلی در RAM را جایگزین کند. برای این منظور از الگوریتمهای جایگزینی صفحه مانند FIFO، LRU و Optimal استفاده میشود.
فرض کنید یک فرآیند به آدرس مجازی 1000 دسترسی پیدا میکند. MMU با استفاده از جدول صفحه، این آدرس مجازی را به آدرس فیزیکی 2000 ترجمه میکند. اگر صفحه مربوط به آدرس مجازی 1000 در RAM موجود نباشد، یک خطای صفحه رخ میدهد و سیستم عامل صفحه مورد نیاز را از حافظه ثانویه به RAM منتقل میکند.
نکات کلیدی
- مدیریت حافظه فیزیکی و مجازی برای اجرای همزمان برنامهها و حفاظت از حافظه ضروری است.
- هر روش مدیریت حافظه مزایا و معایب خاص خود را دارد.
- حافظه مجازی به فرآیندها اجازه میدهد تا به حافظهای بزرگتر از حافظه فیزیکی دسترسی داشته باشند.
- الگوریتمهای جایگزینی صفحه برای بهبود عملکرد سیستم عامل در مدیریت حافظه مجازی استفاده میشوند.
نکات کاربردی و مشاورهای
- برای درک بهتر مفاهیم مدیریت حافظه، سعی کنید الگوریتمهای مختلف تخصیص حافظه و جایگزینی صفحه را پیادهسازی کنید.
- با مطالعه کتابهای سیستم عامل معتبر، دانش خود را در این زمینه عمیقتر کنید.
- در حل مسائل مربوط به مدیریت حافظه در آزمونهای استخدامی، به دقت صورت مسئله و جزئیات آن توجه کنید. برای مثال، به نوع الگوریتم جایگزینی صفحه و تعداد قابهای حافظه توجه کنید.
منابع
- ویکیپدیا: مدیریت حافظه
- کتاب Operating System Concepts, 10th Edition, Abraham Silberschatz