بخشی از پاورپوینت

اسلاید 1 :

فصل 8: حافظه اصلی

اسلاید 2 :

مروری بر عناوین مطالب
پیش زمینه
مبادله (Swapping)
اختصاص یکپارچه
صفحه بندی (Paging)
قطعه بندی (Segmentation)
قطعه بندی به همراه صفحه بندی

اسلاید 3 :

برای اجرای یک برنامه باید ابتدا آن را به حافظه منتقل کرد و سپس آن را درون یک پردازه قرار داد تا اجرا شود.

صف ورودی: مجموعه ی پردازه های روی دیسک که در انتظار ورود به حافظه برای اجرا هستند.

برنامه های کاربر قبل از اجرا شدن، مراحل متعددی را طی می کنند.

اسلاید 4 :

نگاشت آدرس دستورالعمل ها و داده ها به آدرس حافظه در سه مرحله امکان پذیر است.
زمان کامپایل: اگر فضای حافظه برنامه از قبل شناخته شده باشد، می توان در زمان کامپایل آدرس ها را مشخص کرد.
در صورتی که آدرس شروع حافظه برنامه تغییر کند، برنامه باید مجددا کامپایل شود.
زمان بارگذاری: در صورتی که در زمان کامپایل آدرس حافظه برنامه مشخص نباشد، باید برای آن کد قابل جابجایی تولید شود.
زمان اجرا: اگر بتوان پردازه را در زمان اجرا از یک قطعه حافظه به قطعه دیگر منتقل کرد می توان اختصاص آدرس حافظه به دستورالعمل ها و داده ها را تا زمان اجرا به تعویق انداخت.
نیاز به حمایت سخت افزاری از نگاشت آدرس دارد، به عنوان مثال ثبات های base و limit.

اسلاید 5 :

پردازش چند مرحله ای برنامه کاربر

اسلاید 6 :

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

آدرس های منطقی و فیزیکی در روش های نگاشت فضای حافظه زمان کامپایل و زمان بارگذاری یکی هستند اما در روش زمان اجرا با یکدیگر متفاوتند.
فضای حافظه منطقی و فیزیکی

اسلاید 7 :

واحد مدیریت حافظه (Memory Management Unit, MMU) یک ابزار سخت افزاری است که آدرس های مجازی را به آدرس فیزیکی نگاشت می کند.
در MMU مقدار ثبات جابجایی (relocation reg.) هنگام ارسال آدرس های تولیدشده توسط پردازه کاربر به حافظه به آدرس اضافه می شود.
برنامه کاربر صرفا با آدرس های منطقی کار می کند و اصولا اطلاعی از آدرس های فیزیکی واقعی ندارد.
واحد مدیریت حافظه

اسلاید 8 :

جابجایی پویا با استفاده از ثبات جابجایی

اسلاید 9 :

در این روش یک روال تا زمانی که فراخوانی نشده است به درون حافظه اصلی منتقل نمی گردد.
بهبود بهره وری فضای حافظه روالی که فراخوانی نمی شود بارگذاری نیز نمی شود.
مناسب برای مواردی که حجم زیادی از کد برای حمایت از اتفاقات نادر مورد نیاز هستند.
نیاز به حمایت خاصی توسط سیستم عامل ندارد و در فرایند طراحی برنامه مد نظر قرار می گیرد.
بارگذاری پویا (Dynamic Loading)

اسلاید 10 :

در این روش اتصال پیمانه ها به یکدیگر تا زمان اجرا به تعویق می افتد.
از قطعه کد کوچکی به نام stub برای جای دهی روتین کتابخانه ای مقیم در حافظه مناسب استفاده می شود.
stub خودش را با آدرس روتین عوض می کند و روتین را اجرا می کند.
سیستم عامل باید بررسی کند که روتین در فضای حافظه پردازه قرار دارد یا خیر؟
این روش بخصوص برای کتابخانه ها بسیار مناسب است.
اتصال پویا (Dynamic Linking)

اسلاید 11 :

می توان یک پردازه را موقتا از حافظه به یک انباره پشتیبان (Backing Store) منتقل کرد و پس از مدتی برای ادامه اجرا مجددا به حافظه فراخواند.
انباره پشتیبان یک دیسک سریع و به اندازه کافی بزرگ است که می تواند تصاویر حافظه تمام کاربران را در خود جای دهد.
ورود، خروج: شاخص مبادله برای الگوریتم های زمان بندی مبنی بر اولویت استفاده می شود. پردازه با اولویت پایین تر خارج می شود تا پردازه با اولویت بالاتر بتواند بارگذاری و اجرا شود.
انباره باید امکان دسترسی مستقیم به تصاویر حافظه را فراهم آورد.
بیشتر زمان مبادله پردازه صرف انتقال حافظه اختصاص یافته به پردازه ها می شود.
زمان کل مبادله پردازه مستقیما به اندازه فضای حافظه ای که باید جابجا شود بستگی دارد.
نسخه های متفاوتی از مبادله پردازه ها روی سیستم عامل های مختلف وجود دارد. (UNIX, Linux, and Windows)
مبادله (Swapping)

اسلاید 12 :

طرح کلی مبادله پردازه ها

اسلاید 13 :

معمولا حافظه اصلی به دو قسمت تقسیم می شود:
حافظه مقیم مربوط به سیستم عامل که معمولا به همراه بردار وقفه در آدرس پایین حافظه قرار می گیرد.
پردازه های کاربر که معمولا در آدرس بالای حافظه قرار می گیرند.
ثبات جابجایی (relocation reg.) برای محافظت از پردازه ها در قبال یکدیگر و همچنین محافظت از کد سیستم عامل در برابر پردازه ها استفاده می شود.
مقدار ثبات پایه کوچکترین آدرس فضای فیزیکی اختصاص یافته به پردازه است.
ثبات حد (limit reg.) دامنه آدرس های فیزیکی را تعیین می کند.
هر آدرس منطقی باید از ثبات حد کوچکتر باشد.
اختصاص همجوار (Contiguous Allocation)

اسلاید 14 :

محافظت از آدرس به صورت سخت افزاری به کمک ثبات های پایه و حد

اسلاید 15 :

یک ثبات پایه و یک ثبات حد یک فضای آدرس منطقی را تعریف می کنند.

اسلاید 16 :

اختصاص چندتکه
به بلاک های آزاد حافظه سوراخ (hole) می گویند. سوراخ ها در سراسر حافظه با اندازه های متفاوت پراکنده شده اند.
وقتی یک پردازه وارد می شود، فضای حافظه مورد نیاز آن از یکی از سوراخ های موجود که به اندازه کافی بزرگ است اختصاص می یابد.
سیستم عامل اطلاعات مربوط به 1) قطعه های اختصاص یافته و 2) قطعه های آزاد (سوراخ ها) را نگهداری می کند.
اختصاص همجوار (ادامه)
process 5
process 8
process 2
process 5
process 2
process 5
process 2
process 5
process 9
process 2
process 9
process 10

اسلاید 17 :

چطور یک درخواست حافظه با اندازه n را از یک لیست از فضاهای آزاد برآورده کنیم؟

اولین گزینه (First Fit): اولین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.

بهترین گزینه (Best Fit): کوچکترین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.
باید همه فضاهای آزاد را جستجو کرد، مگر آنکه اطلاعات مربوط به آنها مرتب شده باشد.
کوچکترین فضای آزاد باقی مانده را تولید می کند.
مساله اختصاص فضای پویا

اسلاید 18 :

بدترین گزینه (Worst Fit): بزرگترین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.
باز هم باید همه فضاهای آزاد را جستجو کرد، مگر آنکه اطلاعات مربوط به آنها مرتب شده باشد.
بزرگترین فضای آزاد باقی مانده را تولید می کند.

روش های اولین گزینه و بهترین گزینه بر اساس معیارهای سرعت و بهره وری فضای حافظه بهتر از بدترین گزینه هستند.
مساله اختصاص فضای پویا (ادامه)

اسلاید 19 :

قطعه قطعه گی خارجی
مجموع فضای حافظه آزاد برای اجابت درخواست کافی است، اما امکان اختصاص فضای یکپارچه وجود ندارد.

قطعه قطعه گی داخلی
فضای اختصاص یافته ممکن است اندکی از فضای درخواستی بیشتر باشد. این فضای اضافه در حافظه موجود است اما از آن استفاده نمی شود.
قطعه قطعه گی (Fragmentation)

اسلاید 20 :

کاهش قطعه قطعه گی خارجی با فشرده سازی (Compaction)
محتویات حافظه را جابجا کن تا تمام فضای آزاد در یک بلاک حافظه بزرگ قرار گیرد.
فشرده سازی تنها در صورتی امکان پذیر است که جابجایی پویا باشد و در زمان اجرا صورت پذیرد.
مشکل ورودی / خروجی: دستورات خواندن و نوشتن روی حافظه ای که در حال جابجایی است.
وقتی حافظه درگیر ورودی/خروجی است آن را جابجا نکن.
ورودی / خروجی را فقط با حافظه های میانگیر سیستم عامل انجام بده.
قطعه قطعه گی (ادامه)

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید