مدیریت حافظه ۲
اسلاید 1: Memory Managementفصل هفتم
اسلاید 2: Memory Managementتقسیم بندی حافظه به منظور پذیرش چندین فرآیندباید طوری حافظه را تخصیص دهیم که بیشترین تعداد ممکن از فرآیندها را جا دهیم.
اسلاید 3: Memory Management Requirementsتخصیص مجددبرنامه نویس نمی داند که برنامه در حین اجرا در کجای حافظه قرار می گیرد. ممکن است در حین اجرا برنامه به حافظه جانبی فرستاده شود و در هنگام برگشت به حافظه اصلی در جای متفاوتی قرار گیرد.ارجاعات به حافظه اصلی باید بطریقی به آدرس فیزیکی واقعی تبدیل شوند.
اسلاید 4:
اسلاید 5: Memory Management Requirementsحفاظتفرآیندها نباید بدون مجوز به فضای آدرس دیگر فرآیندها دسترسی داشته باشند.به دلیل امکان تخصیص مجدد، نمی توان در برنامه ها از آدرسهای مطلق استفاده کرد. سیستم عامل نمی تواند تمام ارجاعات یک فرآیند به حافظه را پیش بینی کند.لذا این امر باید در حین اجرا کنترل شود.اشتراکبه فرآیندهای مختلف اجازه می دهد که قسمتی از حافظه را بصورت اشتراکی استفاده کنند.
اسلاید 6: Memory Management Requirementsسازماندهی منطقیبرنامه ها بصورت ماژول نوشته می شوند.مازولها می توانند بصورت جداگانه نوشته و کامپایل شوند.می توان ماژولها را به اشتراک گذاشت.سازماندهی فیزیکیحافظه موجود ممکن است از حد نیاز برنامه و داده های آن کمتر باشد.برنامه نویس نمی داند مقدار حافظه موجود چقدر است.
اسلاید 7: Fixed Partitioningپارتیشن های هم اندازههر فرآیندی که سایز آن کمتر یا مساوی اندازه پارتیشن است ، می تواند درون یک پارتیشن خالی قرار گیرد.اگر همه پارتیشن ها پر باشند، سیستم عامل می تواند یک فرآیند را به حافظه جانبی برگرداند.ممکن است اندازه فرآیندی از اندازه پارتیشن بزرگتر باشد.استفاده ما از حافظه غیر موثر است. هر برنامه ای حتی اگر خیلی کوچک باشد یک پارتیشن کامل را اشغال می کند. این مشکل تکه تکه شدن داخلی نام دارد.
اسلاید 8:
اسلاید 9: Placement Algorithm with Partitionsپارتیشنهای هم اندازهچون سایز پارتیشنها برابر است، مهم نیست که کدام پارتیشن مصرف می شود.پارتیشنهای با سایز متفاوتمی توان هر فرآیند را به کوچکترین پارتیشنی که جا می شود تخصیص داد.فرآیندها را طوری تخصیص می دهیم که اتلاف حافظه مینیمم شود.صف بندی:هر پارتیشن دارای یک صفیک صف برای همه
اسلاید 10:
اسلاید 11: Dynamic Partitioningدر روش دینامیک ، تعداد و اندازه پارتیشنها متغییر است.حافظه ای که به فرآیند تخصیص داده می شود دقیقا به اندازه مورد نیاز آن است.این روش در نهایت منجر به ایجاد حفره های زیادی در حافظه خواهد شد. به این پدیده تکه تکه شدن خارجی گفته می شود.برای حل این مشکل از تکنیک فشرده سازی استفاده می گردد.
اسلاید 12:
اسلاید 13:
اسلاید 14: Dynamic Partitioning Placement Algorithmسیستم عامل باید در مورد نحوه تخصیص فضاهای خالی به فرآیند تصمیم بگیرد.الگوریتم Best-fitبلوکی را انتخاب می کند که اندازه آن به سایز درخواست فرآیند نزدیکتر است. (کوچکترین بلوکی که فرآیند در آن جا می شود).این روش در مقایسه با دو روش دیگر که در ادامه معرفی می شوند عملکرد بدتری دارد.چون بلوکهای کوچکتر انتخاب می شوند، تکه های باقیمانده کوچکتر خواهند بود. این تکه ها معمولا مصرف نمی شوند، لذا نیاز به فشرده سازی بیشتر خواهد بود.
اسلاید 15: Dynamic Partitioning Placement Algorithmالگوریتم First-fit سریعترین است. منجر به تجمع فرآیندها در ابتدای حافظه می شود. هنگام جستجوی برای پیدا کردن فضای خالی باید از این فرآیندها گذر کنیم تا یک بلوک خالی پیدا شود.الگوریتم Next-fitاغلب اوقات قسمتهای انتهایی حافظه را برای تخصیص مورد استفاده قرار می دهد. قسمتهای انتهایی شامل بلوکهای بزرگی از حافظه هستند که شکسته می شوند.فشرده سازی موقعی نیاز است که به یک بلوک بزرگ در انتهای حافظه نیاز داریم.
اسلاید 16:
اسلاید 17: Buddy Systemکل فضای حافظه را به عنوان یک بلوک با سایز 2U در نظر می گیریم.اگر درخواست ما یعنی s طوری بود که 2U-1 < s <= 2U ، کل بلوک را در بر می گیرد.در غیر اینصورت:بلوک را به دو قسمت مساوی تقسیم می کنیم.الگوریتم را آنقدر ادامه می دهیم تا کوچکترین بلوکی که از s بزرگتر هست ، تولید شود.
اسلاید 18:
اسلاید 19:
اسلاید 20: Relocationوقتی که فرآیند به حافظه آورده می شود، محل واقعی (مطلق) آن در حافظه مشخص می گردد.چون فرآیند ممکن است در جاهای مختلفی قرار گیرد (مساله تخصیص مجدد) ، لذا در حین اجرا آدرسهای مطلق متفاوتی خواهیم داشت.فشرده سازی نیز باعث می شود محل برنامه در حافظه عوض شود. لذا آدرسهای مطلق باز هم تغییر می کنند.
اسلاید 21: Addressesمنطقیارجاع به محلی از حافظه مستقل از تخصیص جاری فرآیند در حافظهباید آدرس منطقی را به آدرس فیزیکی ترجمه کنیم.نسبیآدرس محلی از حافظه نسبت به یک نقطه مشخص داده می شود.فیزیکی آدرس مطلق یا محل واقعی داده در حافظه اصلی
اسلاید 22:
اسلاید 23: Registers Used during Executionرجیستر پایهآدرس شروع فرآیند در حافظهرجیستر حد (bounds)آدرس آخرین محل فرآیند در حافظههنگام بارگذاری فرآیند در حافظه یا تعویض آن این رجیسترها تنظیم می گردند.
اسلاید 24: Registers Used during Executionمقدار رجیستر پایه با آدرس نسبی جمع می گردد تا یک آدرس مطلق تولید گردد.آدرس نتیجه با مقدار رجیستر حد مقایسه می شود.اگر در محدوده نباشد، یک وقفه برای سیستم عامل تولید می گردد.
اسلاید 25: Pagingحافظه و فرآیند را به مقادیر مساوی تقسیم می کنیم.به تکه های فرآیند صفحه و به تکه های حافظه قاب می گوییم.سیستم عامل برای هر فرآیند یک جدول صفحه نگهداری می کند.برای هر صفحه محل قابهای آن در حافظه نگهداری می شود.آدرسهای حافظه شامل شماره صفحه و offset نسبت به ابتدای آن صفحه می باشد.
اسلاید 26:
اسلاید 27:
اسلاید 28: Page Tables for Example
اسلاید 29: Segmentationتمام قطعه های برنامه هم اندازه نیستند. البته سایز قطعه ها دارای یک مقدار ماکسیمم است.آدرس دهی شامل دو قسمت است: شماره قطعه و offsetچون قطعه ها هم اندازه نیستند، قطعه بندی مثل پارتیشن کردن دینامیک است.
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.