مدیریت حافظه اسالیدهای فصل هشتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر - دانشگاه صنعتی شریف

Download Report

Transcript مدیریت حافظه اسالیدهای فصل هشتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر - دانشگاه صنعتی شریف

‫مدیریت حافظه‬
‫اسالیدهای فصل هشتم کتاب سیلبرشاتز‬
‫دانشکده مهندسی کامپیوتر‬
‫دانشگاه شریف‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫مروری بر عناوین مطالب‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫پیش زمینه‬
‫مبادله (‪)Swapping‬‬
‫اختصاص یكپارچه‬
‫صفحه بندي (‪)Paging‬‬
‫قطعه بندي (‪)Segmentation‬‬
‫قطعه بندي به همراه صفحه بندي‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.2‬‬
‫پیش زمینه‬
‫‪‬‬
‫براي اجراي یك برنامه باید ابتدا آن را به حافظه منتقل كرد و‬
‫سپس آن را درون یك پردازه قرار داد تا اجرا شود‪.‬‬
‫‪‬‬
‫صف ورودی‪ :‬مجموعه ی پردازه های روی دیسک که در‬
‫انتظار ورود به حافظه برای اجرا هستند‪.‬‬
‫‪‬‬
‫برنامه های کاربر قبل از اجرا شدن‪ ،‬مراحل متعددی را طی‬
‫می کنند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.3‬‬
‫پیش زمینه‬
‫‪‬‬
‫نگاشت آدرس دستورالعمل ها و داده ها به آدرس حافظه در سه‬
‫مرحله امكان پذیر است‪...‬‬
‫‪‬‬
‫زمان كامپایل‪ :‬اگر فضاي حافظه برنامه از قبل شناخته شده باشد‪ ،‬مي‬
‫توان در زمان كامپایل آدرس ها را مشخص كرد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در صورتي كه آدرس شروع حافظه برنامه تغییر كند‪ ،‬برنامه باید مجددا‬
‫كامپایل شود‪.‬‬
‫زمان بارگذاري‪ :‬در صورتي كه در زمان كامپایل آدرس حافظه‬
‫برنامه مشخص نباشد‪ ،‬باید براي آن كد قابل جابجایي تولید شود‪.‬‬
‫زمان اجرا‪ :‬اگر بتوان پردازه را در زمان اجرا از یك قطعه حافظه‬
‫به قطعه دیگر منتقل كرد مي توان اختصاص آدرس حافظه به‬
‫دستورالعمل ها و داده ها را تا زمان اجرا به تعویق انداخت‪.‬‬
‫‪‬‬
‫نیاز به حمایت سخت افزاري از نگاشت آدرس دارد‪ ،‬به عنوان مثال ثبات‬
‫هاي ‪ base‬و ‪.limit‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.4‬‬
‫پردازش‬
‫چند مرحله اي‬
‫برنامه كاربر‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.5‬‬
‫فضاي حافظه منطقي و فیزیكي‬
‫‪‬‬
‫یكي از مفاهیم اصلي مدیریت حافظه‪ ،‬فضاي آدرس منطقي‬
‫متناسب با فضاي حافظه فیزیكي است‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫آدرس منطقي آدرسي است كه توسط پردازنده تولید مي شود و فضاي‬
‫آدرس مجازي نیز نامیده مي شود‪.‬‬
‫آدرس فیزیكي آدرسي است كه توسط واحد حافظه دیده مي شود‪.‬‬
‫آدرس هاي منطقي و فیزیكي در روش هاي نگاشت فضاي‬
‫حافظه زمان كامپایل و زمان بارگذاري یكي هستند اما در روش‬
‫زمان اجرا با یكدیگر متفاوتند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.6‬‬
‫واحد مدیریت حافظه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫واحد مدیریت حافظه )‪ (Memory Management Unit, MMU‬یك‬
‫ابزار سخت افزاري است كه آدرس هاي مجازي را به آدرس‬
‫فیزیكي نگاشت مي كند‪.‬‬
‫در ‪ MMU‬مقدار ثبات جابجایي )‪ (relocation reg.‬هنگام ارسال‬
‫آدرس هاي تولیدشده توسط پردازه كاربر به حافظه به آدرس‬
‫اضافه مي شود‪.‬‬
‫برنامه كاربر صرفا با آدرس هاي منطقي كار مي كند و اصوال‬
‫اطالعي از آدرس هاي فیزیكي واقعي ندارد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.7‬‬
‫جابجایي پویا با استفاده از ثبات جابجایي‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.8‬‬
‫بارگذاري پویا‬
‫‪‬‬
‫‪‬‬
‫)‪(Dynamic Loading‬‬
‫در این روش یك روال تا زماني كه فراخواني نشده است به‬
‫درون حافظه اصلي منتقل نمي گردد‪.‬‬
‫بهبود بهره وري فضاي حافظه ‪‬روالي كه فراخواني نمي شود‬
‫بارگذاري نیز نمي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫مناسب براي مواردي كه حجم زیادي از كد براي حمایت از اتفاقات‬
‫نادر مورد نیاز هستند‪.‬‬
‫نیاز به حمایت خاصي توسط سیستم عامل ندارد و در فرایند طراحي‬
‫برنامه مد نظر قرار مي گیرد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.9‬‬
‫اتصال پویا‬
‫‪‬‬
‫‪‬‬
‫در این روش اتصال پیمانه ها به یكدیگر تا زمان اجرا به‬
‫تعویق مي افتد‪.‬‬
‫از قطعه كد كوچكي به نام ‪ stub‬براي جاي دهي روتین كتابخانه‬
‫اي مقیم در حافظه مناسب استفاده مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪(Dynamic Linking‬‬
‫‪ stub‬خودش را با آدرس روتین عوض مي كند و روتین را اجرا مي‬
‫كند‪.‬‬
‫سیستم عامل باید بررسي كند كه روتین در فضاي حافظه پردازه قرار‬
‫دارد یا خیر؟‬
‫این روش بخصوص براي كتابخانه ها بسیار مناسب است‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.10‬‬
‫مبادله‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪(Swapping‬‬
‫مي توان یك پردازه را موقتا از حافظه به یك انباره پشتیبان )‪(Backing Store‬‬
‫منتقل كرد و پس از مدتي براي ادامه اجرا مجددا به حافظه فراخواند‪.‬‬
‫انباره پشتیبان یك دیسك سریع و به اندازه كافي بزرگ است كه مي تواند تصاویر‬
‫حافظه تمام كاربران را در خود جاي دهد‪.‬‬
‫ورود‪ ،‬خروج‪ :‬شاخص مبادله برای الگوریتم های زمان بندی مبنی بر اولویت‬
‫استفاده می شود‪ .‬پردازه با اولویت پایین تر خارج می شود تا پردازه با اولویت‬
‫باالتر بتواند بارگذاری و اجرا شود‪.‬‬
‫‪ ‬انباره باید امكان دسترسي مستقیم به تصاویر حافظه را فراهم آورد‪.‬‬
‫بیشتر زمان مبادله پردازه صرف انتقال حافظه اختصاص یافته به پردازه ها مي‬
‫شود‪.‬‬
‫‪ ‬زمان كل مبادله پردازه مستقیما به اندازه فضاي حافظه اي كه باید جابجا شود‬
‫بستگي دارد‪.‬‬
‫نسخه هاي متفاوتي از مبادله پردازه ها روي سیستم عامل هاي مختلف وجود دارد‪.‬‬
‫)‪(UNIX, Linux, and Windows‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.11‬‬
‫طرح كلي مبادله پردازه ها‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.12‬‬
‫اختصاص یكپارچه‬
‫‪‬‬
‫معموال حافظه اصلي به دو قسمت تقسیم مي شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪(Contiguous Allocation‬‬
‫حافظه مقیم مربوط به سیستم عامل كه معموال به همراه بردار وقفه در آدرس پایین‬
‫حافظه قرار مي گیرد‪.‬‬
‫پردازه هاي كاربر كه معموال در آدرس باالي حافظه قرار مي گیرند‪.‬‬
‫ثبات جابجایي )‪ (relocation reg.‬براي محافظت از پردازه ها در قبال‬
‫یكدیگر و همچنین محافظت از كد سیستم عامل در برابر پردازه ها‬
‫استفاده مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مقدار ثبات پایه كوچكترین آدرس فضاي فیزیكي اختصاص یافته به پردازه است‪.‬‬
‫ثبات حد )‪ (limit reg.‬دامنه آدرس هاي فیزیكي را تعیین مي كند‪.‬‬
‫هر آدرس منطقي باید از ثبات حد كوچكتر باشد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.13‬‬
‫محافظت از آدرس به صورت سخت افزاری به‬
‫کمک ثبات هاي پایه و حد‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.14‬‬
‫یک ثبات پایه و یک ثبات حد یک فضای آدرس منطقی را‬
‫تعریف می کنند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.15‬‬
‫اختصاص یكپارچه‬
‫‪‬‬
‫(ادامه)‬
‫اختصاص چندتكه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫به بالك هاي آزاد حافظه سوراخ )‪ (hole‬مي گویند‪ .‬سوراخ ها در سراسر حافظه با‬
‫اندازه هاي متفاوت پراكنده شده اند‪.‬‬
‫وقتي یك پردازه وارد مي شود‪ ،‬فضاي حافظه مورد نیاز آن از یكي از سوراخ‬
‫هاي موجود كه به اندازه كافي بزرگ است اختصاص مي یابد‪.‬‬
‫سیستم عامل اطالعات مربوط به ‪ )1‬قطعه هاي اختصاص یافته و ‪ )2‬قطعه های‬
‫آزاد (سوراخ ها) را نگهداري مي كند‪.‬‬
‫‪OS‬‬
‫‪OS‬‬
‫‪OS‬‬
‫‪OS‬‬
‫‪process 5‬‬
‫‪process 5‬‬
‫‪process 5‬‬
‫‪process 5‬‬
‫‪process 9‬‬
‫‪process 9‬‬
‫‪process 8‬‬
‫‪process 10‬‬
‫‪process 2‬‬
‫‪process 2‬‬
‫‪process 2‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪process 2‬‬
‫‪5.16‬‬
‫مساله اختصاص فضاي پویا‬
‫‪‬‬
‫چطور یك درخواست حافظه با اندازه ‪ n‬را از یك لیست از‬
‫فضاهاي آزاد برآورده كنیم؟‬
‫‪‬‬
‫اولین گزینه )‪ :(First Fit‬اولین فضاي آزاد را كه به اندازه كافي بزرگ‬
‫باشد اختصاص مي دهد‪.‬‬
‫‪‬‬
‫بهترین گزینه )‪ :(Best Fit‬كوچكترین فضاي آزاد را كه به اندازه كافي‬
‫بزرگ باشد اختصاص مي دهد‪.‬‬
‫‪‬‬
‫‪‬‬
‫باید همه فضاهاي آزاد را جستجو كرد‪ ،‬مگر آنكه اطالعات مربوط به آنها‬
‫مرتب شده باشد‪.‬‬
‫كوچكترین فضاي آزاد باقي مانده را تولید مي كند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.17‬‬
‫مساله اختصاص فضاي پویا‬
‫‪‬‬
‫بدترین گزینه )‪ :(Worst Fit‬بزرگترین فضاي آزاد را كه به اندازه‬
‫كافي بزرگ باشد اختصاص مي دهد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫(ادامه)‬
‫باز هم باید همه فضاهاي آزاد را جستجو كرد‪ ،‬مگر آنكه اطالعات مربوط‬
‫به آنها مرتب شده باشد‪.‬‬
‫بزرگترین فضاي آزاد باقي مانده را تولید مي كند‪.‬‬
‫روش هاي اولین گزینه و بهترین گزینه بر اساس معیارهاي سرعت و‬
‫بهره وري فضاي حافظه بهتر از بدترین گزینه هستند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.18‬‬
‫قطعه قطعه گي‬
‫‪‬‬
‫قطعه قطعه گي خارجي‬
‫‪‬‬
‫‪‬‬
‫)‪(Fragmentation‬‬
‫مجموع فضاي حافظه آزاد براي اجابت درخواست كافي است‪ ،‬اما‬
‫امكان اختصاص فضاي یكپارچه وجود ندارد‪.‬‬
‫قطعه قطعه گي داخلي‬
‫‪‬‬
‫فضاي اختصاص یافته ممكن است اندكي از فضاي درخواستي بیشتر‬
‫باشد‪ .‬این فضاي اضافه در حافظه موجود است اما از آن استفاده نمي‬
‫شود‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.19‬‬
‫قطعه قطعه گي‬
‫‪‬‬
‫(ادامه)‬
‫كاهش قطعه قطعه گي خارجي با فشرده سازي‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪(Compaction‬‬
‫محتویات حافظه را جابجا كن تا تمام فضاي آزاد در یك بالك حافظه‬
‫بزرگ قرار گیرد‪.‬‬
‫فشرده سازي تنها در صورتي امكان پذیر است كه جابجایي پویا باشد‬
‫و در زمان اجرا صورت پذیرد‪.‬‬
‫مشكل ورودي ‪ /‬خروجي‪ :‬دستورات خواندن و نوشتن روي حافظه اي‬
‫كه در حال جابجایي است‪...‬‬
‫‪‬‬
‫‪‬‬
‫وقتي حافظه درگیر ورودي‪/‬خروجي است آن را جابجا نكن‪.‬‬
‫ورودي ‪ /‬خروجي را فقط با حافظه هاي میانگیر سیستم عامل انجام بده‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.20‬‬
‫صفحه بندي‬
‫‪‬‬
‫فضاي آدرس منطقی اختصاص یافته به یك پردازه ممكن است یكپارچه‬
‫نباشد‪.‬‬
‫‪‬‬
‫‪‬‬
‫هر وقت فضاي فیزیكي موجود بود به پردازه اختصاص داده مي شود‪.‬‬
‫حافظه فیزیكي به بالك هایي با اندازه ثابت كه قاب )‪ (frame‬نامیده مي‬
‫شوند تقسیم مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫)‪(Paging‬‬
‫اندازه هر قاب تواني از ‪ 2‬بین ‪ 512‬تا ‪ 8192‬بایت است‪.‬‬
‫حافظه منطقي به بالك هایي با همان اندازه كه صفحه )‪ (page‬نامیده مي‬
‫شوند تقسیم مي شود‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.21‬‬
‫صفحه بندي‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪( (Paging‬ادامه)‬
‫مشخصات تمام قاب های آزاد نگه داری می شود‪.‬‬
‫براي اجراي برنامه اي با اندازه ‪ n‬صفحه باید ‪ n‬قاب آزاد پیدا‬
‫كرد و سپس برنامه را بارگذاري كرد‪.‬‬
‫از یك جدول صفحه )‪ (page table‬براي تبدیل آدرس منطقي به‬
‫فیزیكي استفاده مي شود‪.‬‬
‫قطعه قطعه گي داخلي‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.22‬‬
‫رویه ترجمه آدرس‬
‫‪‬‬
‫آدرس تولیدشده توسط پردازنده به دو قسمت شماره صفحه و‬
‫افست صفحه تقسیم مي شود‪.‬‬
‫‪‬‬
‫شماره صفحه به عنوان اندیسي استفاده مي شود كه به خانه اي از‬
‫جدول صفحه اشاره مي كند‪.‬‬
‫‪‬‬
‫‪‬‬
‫جدول صفحه‪ ،‬آدرس شروع هر صفحه در فضاي حافظه فیزیكي را دارد‪.‬‬
‫افست (‪ )offset‬صفحه با آدرس شروع صفحه تركیب مي شود تا‬
‫آدرس فیزیکی را كه به حافظه اصلي ارسال مي شود تشكیل دهد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.23‬‬
‫معماري ترجمه آدرس‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.24‬‬
‫مثالي از صفحه بندي‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.25‬‬
‫مثالي دیگر‬
‫از‬
‫صفحه بندي‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.26‬‬
‫قاب هاي آزاد‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.27‬‬
‫پیاده سازي جدول صفحه‬
‫‪‬‬
‫جدول صفحه در حافظه اصلي نگهداري مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ثبات مبناي جدول صفحه )‪ (PTBR‬به جدول صفحه اشاره مي كند‪.‬‬
‫ثبات اندازه جدول صفحه )‪ (PTLR‬اندازه جدول صفحه را مشخص‬
‫مي كند‪.‬‬
‫در این مدل دسترسي به هر دستورالعمل یا داده متضمن دو‬
‫دسترسي به حافظه است‪ :‬یكي به جدول صفحه و دیگري به‬
‫آدرس فیزیكي‪.‬‬
‫‪‬‬
‫مشكل دسترسي دوتایي را مي توان با استفاده از یك حافظه نهان‬
‫سخت افزاري ویژه كه قابلیت جستجوي سریع داشته باشد‪ ،‬حل كرد‪.‬‬
‫به این سخت افزار حافظه انجمني و یا حافظه میانگیر ترجمه )‪(TLB‬‬
‫مي گویند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.28‬‬
‫حافظه ی انجمنی‬
‫‪‬‬
‫حافظه ی انجمنی‪ -‬جستجوی موازی‬
‫‪Frame #‬‬
‫‪‬‬
‫‪Page #‬‬
‫ترجمه ی آدرس (‪)p,d‬‬
‫‪‬‬
‫‪‬‬
‫اگر ‪ p‬در ثبات انجمنی باشد‪ ،‬شماره ی قاب را از بیرون حافظه‬
‫بارگذاری کن‪.‬‬
‫در غیر این صورت شماره ی قاب را از جدول صفحه از حافظه‬
‫بگیر‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.29‬‬
‫صفحه بندی سخت افزار با ‪TLB‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.30‬‬
‫زمان دستیابی موثر‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫جستجوی انجمنی = ‪ ‬واحد زمان‬
‫فرض کنید دوره ی زمانی حافظه ‪ 1‬میلی ثانیه باشد‪.‬‬
‫نرخ برخورد‪ :‬درصد تعداد دفعاتی که شماره ی صفحه‬
‫در رجیستر های انجمنی وجود دارد‪.‬‬
‫‪ ‬این نرخ با تعداد رجیستر های انجمنی متناسب است‪.‬‬
‫نرخ برخورد = ‪‬‬
‫زمان دستیابی موثر)‪(EAT‬‬
‫)‪EAT = (1 + )  + (2 + )(1 – ‬‬
‫‪=2+–‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.31‬‬
‫محافظت از حافظه‬
‫‪‬‬
‫‪‬‬
‫محافظت از حافظه به وسیله ی یک بیت محافظ‬
‫انجمنی که همراه هر قاب است‪ ،‬پیاده سازی شده‬
‫است‪.‬‬
‫یک بیت اعتبار به هر ورودی در جدول صفحه‬
‫مرتبط شده است‪.‬‬
‫‪ ‬معتبر نشان دهنده ی این است که صفحه ی مرتبط در‬
‫فضای آدرس منطقی پردازه است‪ ،‬پس یک صفحه ی‬
‫معتبر است‪.‬‬
‫‪ ‬نا معتبر نشان دهنده ی این است که صفحه در فضای‬
‫آدرس منطقی پردازه نیست‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.32‬‬
‫بیت معتبر(‪ )V‬و نامعتبر(‪ )i‬در یک صفحه ی‬
‫جدول‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.33‬‬
‫صفحات مشترک‬
‫‪‬‬
‫کد مشترک‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یک کپی از کد مشترم فقط خواندنی در میان پردازه ها (مثل پردازنده‬
‫های متن‪ ،‬کامپایلرها و ‪) ...‬‬
‫کد مشترک باید در فضای آدرس منطقی تمام پردازه ها‪ ،‬در مکان‬
‫یکسان باشد‪.‬‬
‫کد و داده ی خصوصی‬
‫‪‬‬
‫‪‬‬
‫هر پردازه یک کپی مجزا از کد و داده نگه می دارد‪.‬‬
‫صفحه ی کد و داده ی خصوصی می توانند هر جایی از فضای‬
‫آدرس منطقی قرار بگیرند‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.34‬‬
‫مثال از صفحات مشترک‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.35‬‬
‫ساختار جدول صفحه‬
‫‪‬‬
‫صفحه بندی سلسله مراتبی‬
‫‪‬‬
‫جدول صفحه های در هم سازی‬
‫‪‬‬
‫جدول صفحه های معکوس‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.36‬‬
‫صفحه بندی سلسله مراتبی‬
‫‪‬‬
‫فضای آدرس منطقی را به چندین جدول صفحه تقسیم می کند‪.‬‬
‫‪‬‬
‫یک روش ساده‪ ،‬جدول صفحه ی دو‪-‬سطحی است‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.37‬‬
‫طرح یک جدول صفحه ی دو‪-‬سطحی‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.38‬‬
‫مثال صفحه بندی دو‪-‬سطحی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یک آدرس منطقی ( در یک ماشین ‪ 32‬بیتی با اندازه ی صفحه ی ‪ )4K‬تقسیم می شود به‪:‬‬
‫‪ ‬یک شماره ی صفحه شامل ‪ 20‬بیت‬
‫‪ ‬یک افست صفحه شامل ‪ 12‬بیت‬
‫چون صفحه ی جدول صفحه بندی شده است‪ ،‬شماره ی صفحه تقسیم می شود به‪:‬‬
‫‪ 10 ‬بیت شماره ی صفحه‬
‫‪ 10 ‬بیت افست صفحه‬
‫پس‪ ،‬یک آدرس منطقی به صورت زیر است‪:‬‬
‫‪page offset‬‬
‫‪‬‬
‫‪page number‬‬
‫‪d‬‬
‫‪p2‬‬
‫‪12‬‬
‫‪10‬‬
‫‪pi‬‬
‫‪10‬‬
‫‪ P1‬اندیس صفحه ی جدول بیرونی است و ‪ P2‬جابجایی داخل صفحه ی جدول صفحه ی‬
‫بیرونی است‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.39‬‬
‫طرح ترجمه ی آدرس‬
‫‪‬‬
‫طرح ترجمه ی آدرس برای یک معماری صفحه بندی ‪ 32‬بیت‬
‫دو سطحی‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.40‬‬
‫جدول صفحه ی در هم سازی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫به طور معمول فضای آدرس ها > ‪ 32‬بیت‬
‫شماره ی صفحه ی مجازی داخل یک جدول صفحه در هم‬
‫سازی (‪ )hash‬می شوند‪ .‬این جدول صفحه شامل یک زنجیره‬
‫از عناصر است که برای یک مکان در هم سازی (‪)hash‬‬
‫شده اند‪.‬‬
‫شماره ی صفحات مجازی در این زنجیره برای پیدا کردن‬
‫تالقی مقایسه می شوند‪ .‬اگر تالقی وجود داشت‪ ،‬قاب فیزیکی‬
‫مربوطه مورد استفاده قرار می گیرد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.41‬‬
‫جدول صفحه ی در هم سازی‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.42‬‬
‫جدول صفحه ی معکوس‬
‫‪‬‬
‫یک ورودی برای هر صفحه ی واقعی حافظه‬
‫‪‬‬
‫ورودی شامل آدرس مجازی صفحه ای است که در آن مکان‬
‫واقعی حافظه ذخیره شده است‪ ،‬همراه با اطالعات درباره ی‬
‫پردازه ی مالک آن صفحه‬
‫حافظه ی مصرفی برای نگه داری هر صفحه را کم می کند‪ ،‬اما‬
‫زمان الزم برای جستجوی جدول در زمان یک ارجاع به صفحه‬
‫را زیاد می کند‪.‬‬
‫از جدول در هم سازی برای محدود کردن جستجو به یک (ویا‬
‫تعداد محدودی از) ورودی های جدول صفحه استفاده می شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.43‬‬
‫معماری جدول صفحه ی معکوس‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.44‬‬
‫قطعه بندی (‪)Segmentation‬‬
‫‪‬‬
‫‪‬‬
‫طرحی برای مدیریت حافظه که از دید کاربر در مورد حافظه پیروی می کند‪.‬‬
‫یک برنامه مجموعه ای از قطعه ها است‪ .‬یک قطعه یک واحد منطقی است مثل‪:‬‬
‫‪ ‬برنامه ی اصلی‬
‫‪ ‬رویه‬
‫‪ ‬تابع‬
‫‪ ‬متد‬
‫‪ ‬شیء‬
‫‪ ‬متغیرهای محلی‪ ،‬متغیرهای کلی‬
‫‪ ‬بلوک عمومی‬
‫‪ ‬استک‬
‫‪ ‬جدول عالئم‬
‫‪ ‬آرایه ها‬
‫است‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.45‬‬
‫دید کاربر از یک برنامه‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.46‬‬
‫دید منطقی قطعه بندی‬
‫‪1‬‬
‫‪4‬‬
‫‪1‬‬
‫‪2‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪3‬‬
‫‪physical memory space‬‬
‫‪user space‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.47‬‬
‫معماری قطعه بندی‬
‫‪‬‬
‫آدرس منطقی از دو قسمت تشکیل شده است‪:‬‬
‫‪‬‬
‫‪‬‬
‫جدول قطعه ها‪ :‬آدرس های فیزیکی دو بعدی را نگاشت می کند‪ .‬هر‬
‫ورودی جدول دارای دو عنصر پایه و حد است‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫< شماره ی قطعه‪ ،‬افست>‬
‫پایه‪ :‬شامل آدرس فیزیکی شروع است‪(.‬مکانی که قطعه ها در حافظه قرار می‬
‫گیرند‪).‬‬
‫حد‪ :‬طول قطعه ها را مشخص می کند‪.‬‬
‫رجیستر پایه ی جدول قطعه (‪ :)STBR‬به مکان جدول قطعه در حافظه‬
‫اشاره می کند‪.‬‬
‫رجیستر طول جدول قطعه (‪ )STLR‬تعداد قطعه هایی که توسط یک‬
‫برنامه استفاده شده است را مشخص می کند‪.‬‬
‫شماره ی قطعه ی ‪ s‬معتبر است اگر ‪ s < STLR‬باشد‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.48‬‬
‫معماری قطعه بندی (ادامه)‬
‫‪‬‬
‫محافظت‪ :‬هر ورودی در جدول قطعه همراه است با‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫بیت های محافظت همراه با قطعه ها هستند‪.‬‬
‫‪‬‬
‫‪‬‬
‫قطعه غیر مجاز است ‪ ‬بیت اعتبار=‪0‬‬
‫اجازه ی خواندن‪ ،‬نوشتن‪ ،‬اجرا کردن‬
‫اشتراک کد در سطح قطعه اتفاق می افتد‪.‬‬
‫چون قطعات از لحاظ طول متفاوتند‪ ،‬تخصیص حافظه تبدیل به‬
‫مسئله ی تخصیص حافظه ی پویا می شود‪.‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.49‬‬
‫معماری ترجمه ی آدرس‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.50‬‬
‫مثال قطعه بندی‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.51‬‬
‫به اشتراک گذاشتن قطعه ها‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.52‬‬
‫انتهای فصل ‪8‬‬
‫دکتر جلیلی ‪ -‬مفاهیم سیستم عامل دانشکده ی کامپیوتر‪ -‬دانشگاه صنعتی شریف‬
‫‪5.53‬‬