640 likes | 940 Views
مديريت حافظه. اسلایدهای فصل هشتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف. مروری بر عناوین مطالب. پیش زمینه مبادله ( Swapping ) اختصاص يكپارچه صفحه بندي ( Paging ) قطعه بندي ( Segmentation ) قطعه بندي به همراه صفحه بندي. پیش زمینه.
E N D
مديريت حافظه اسلایدهای فصل هشتم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مروری بر عناوین مطالب • پیش زمینه • مبادله (Swapping) • اختصاص يكپارچه • صفحه بندي (Paging) • قطعه بندي (Segmentation) • قطعه بندي به همراه صفحه بندي دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیش زمینه • براي اجراي يك برنامه بايد ابتدا آن را به حافظه منتقل كرد و سپس آن را درون يك پردازه قرار داد تا اجرا شود. • صف ورودی: مجموعه ی پردازه های روی دیسک که در انتظار ورود به حافظه برای اجرا هستند. • برنامه های کاربر قبل از اجرا شدن، مراحل متعددی را طی می کنند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیش زمینه • نگاشت آدرس دستورالعمل ها و داده ها به آدرس حافظه در سه مرحله امكان پذير است... • زمان كامپايل: اگر فضاي حافظه برنامه از قبل شناخته شده باشد، مي توان در زمان كامپايل آدرس ها را مشخص كرد. • در صورتي كه آدرس شروع حافظه برنامه تغيير كند، برنامه بايد مجددا كامپايل شود. • زمان بارگذاري: در صورتي كه در زمان كامپايل آدرس حافظه برنامه مشخص نباشد، بايد براي آن كد قابل جابجايي توليد شود. • زمان اجرا: اگر بتوان پردازه را در زمان اجرا از يك قطعه حافظه به قطعه ديگر منتقل كرد مي توان اختصاص آدرس حافظه به دستورالعمل ها و داده ها را تا زمان اجرا به تعويق انداخت. • نياز به حمايت سخت افزاري از نگاشت آدرس دارد، به عنوان مثال ثبات هاي base و limit. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پردازش چند مرحله اي برنامه كاربر دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
فضاي حافظه منطقي و فيزيكي • يكي از مفاهيم اصلي مديريت حافظه، فضاي آدرس منطقي متناسب با فضاي حافظه فيزيكي است. • آدرس منطقيآدرسي است كه توسط پردازنده توليد مي شود و فضاي آدرس مجازي نيز ناميده مي شود. • آدرس فيزيكي آدرسي است كه توسط واحد حافظه ديده مي شود. • آدرس هاي منطقي و فيزيكي در روش هاي نگاشت فضاي حافظه زمان كامپايل و زمان بارگذاري يكي هستند اما در روش زمان اجرا با يكديگر متفاوتند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
واحد مديريت حافظه • واحد مديريت حافظه (Memory Management Unit, MMU) يك ابزار سخت افزاري است كه آدرس هاي مجازي را به آدرس فيزيكي نگاشت مي كند. • در MMU مقدار ثبات جابجايي (relocation reg.) هنگام ارسال آدرس هاي توليدشده توسط پردازه كاربر به حافظه به آدرس اضافه مي شود. • برنامه كاربر صرفا با آدرس هاي منطقي كار مي كند و اصولا اطلاعي از آدرس هاي فيزيكي واقعي ندارد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جابجايي پويا با استفاده از ثبات جابجايي دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
بارگذاري پويا (Dynamic Loading) • در اين روش يك روال تا زماني كه فراخواني نشده است به درون حافظه اصلي منتقل نمي گردد. • بهبود بهره وري فضاي حافظه روالي كه فراخواني نمي شود بارگذاري نيز نمي شود. • مناسب براي مواردي كه حجم زيادي از كد براي حمايت از اتفاقات نادر مورد نياز هستند. • نياز به حمايت خاصي توسط سيستم عامل ندارد و در فرايند طراحي برنامه مد نظر قرار مي گيرد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اتصال پويا (Dynamic Linking) • در اين روش اتصال پيمانه ها به يكديگر تا زمان اجرا به تعويق مي افتد. • از قطعه كد كوچكي به نام stub براي جاي دهي روتين كتابخانه اي مقيم در حافظه مناسب استفاده مي شود. • stub خودش را با آدرس روتين عوض مي كند و روتين را اجرا مي كند. • سيستم عامل بايد بررسي كند كه روتين در فضاي حافظه پردازه قرار دارد يا خير؟ • اين روش بخصوص براي كتابخانه ها بسيار مناسب است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مبادله (Swapping) • مي توان يك پردازه را موقتا از حافظه به يك انباره پشتيبان(Backing Store) منتقل كرد و پس از مدتي براي ادامه اجرا مجددا به حافظه فراخواند. • انباره پشتيبان يك ديسك سريع و به اندازه كافي بزرگ است كه مي تواند تصاوير حافظه تمام كاربران را در خود جاي دهد. • ورود، خروج: شاخص مبادله برای الگوریتم های زمان بندی مبنی بر اولویت استفاده می شود. پردازه با اولویت پایین تر خارج می شود تا پردازه با اولویت بالاتر بتواند بارگذاری و اجرا شود. • انباره بايد امكان دسترسي مستقيم به تصاوير حافظه را فراهم آورد. • بيشتر زمان مبادله پردازه صرف انتقال حافظه اختصاص يافته به پردازه ها مي شود. • زمان كل مبادله پردازه مستقيما به اندازه فضاي حافظه اي كه بايد جابجا شود بستگي دارد. • نسخه هاي متفاوتي از مبادله پردازه ها روي سيستم عامل هاي مختلف وجود دارد. (UNIX, Linux, and Windows) دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
طرح كلي مبادله پردازه ها دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص يكپارچه (Contiguous Allocation) • معمولا حافظه اصلي به دو قسمت تقسيم مي شود: • حافظه مقيم مربوط به سيستم عامل كه معمولا به همراه بردار وقفه در آدرس پايين حافظه قرار مي گيرد. • پردازه هاي كاربر كه معمولا در آدرس بالاي حافظه قرار مي گيرند. • ثبات جابجايي (relocation reg.) براي محافظت از پردازه ها در قبال يكديگر و همچنين محافظت از كد سيستم عامل در برابر پردازه ها استفاده مي شود. • مقدار ثبات پایه كوچكترين آدرس فضاي فيزيكي اختصاص يافته به پردازه است. • ثبات حد (limit reg.) دامنه آدرس هاي فيزيكي را تعيين مي كند. • هر آدرس منطقي بايد از ثبات حد كوچكتر باشد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
محافظت از آدرس به صورت سخت افزاری به کمک ثبات هاي پایه و حد دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
یک ثبات پایه و یک ثبات حد یک فضای آدرس منطقی را تعریف می کنند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص يكپارچه (ادامه) • اختصاص چندتكه • به بلاك هاي آزاد حافظه سوراخ(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 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مساله اختصاص فضاي پويا • چطور يك درخواست حافظه با اندازه n را از يك ليست از فضاهاي آزاد برآورده كنيم؟ • اولين گزينه (First Fit): اولين فضاي آزاد را كه به اندازه كافي بزرگ باشد اختصاص مي دهد. • بهترين گزينه (Best Fit): كوچكترين فضاي آزاد را كه به اندازه كافي بزرگ باشد اختصاص مي دهد. • بايد همه فضاهاي آزاد را جستجو كرد، مگر آنكه اطلاعات مربوط به آنها مرتب شده باشد. • كوچكترين فضاي آزاد باقي مانده را توليد مي كند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مساله اختصاص فضاي پويا (ادامه) • بدترين گزينه (Worst Fit): بزرگترين فضاي آزاد را كه به اندازه كافي بزرگ باشد اختصاص مي دهد. • باز هم بايد همه فضاهاي آزاد را جستجو كرد، مگر آنكه اطلاعات مربوط به آنها مرتب شده باشد. • بزرگترين فضاي آزاد باقي مانده را توليد مي كند. • روش هاي اولين گزينه و بهترين گزينه بر اساس معيارهاي سرعت و بهره وري فضاي حافظه بهتر از بدترين گزينه هستند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
قطعه قطعه گي (Fragmentation) • قطعه قطعه گي خارجي • مجموع فضاي حافظه آزاد براي اجابت درخواست كافي است، اما امكان اختصاص فضاي يكپارچه وجود ندارد. • قطعه قطعه گي داخلي • فضاي اختصاص يافته ممكن است اندكي از فضاي درخواستي بيشتر باشد. اين فضاي اضافه در حافظه موجود است اما از آن استفاده نمي شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
قطعه قطعه گي (ادامه) • كاهش قطعه قطعه گي خارجي با فشرده سازي (Compaction) • محتويات حافظه را جابجا كن تا تمام فضاي آزاد در يك بلاك حافظه بزرگ قرار گيرد. • فشرده سازي تنها در صورتي امكان پذير است كه جابجايي پويا باشد و در زمان اجرا صورت پذيرد. • مشكل ورودي / خروجي: دستورات خواندن و نوشتن روي حافظه اي كه در حال جابجايي است... • وقتي حافظه درگير ورودي/خروجي است آن را جابجا نكن. • ورودي / خروجي را فقط با حافظه هاي ميانگير سيستم عامل انجام بده. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
صفحه بندي (Paging) • فضاي آدرس منطقی اختصاص یافته به يك پردازه ممكن است يكپارچه نباشد. • هر وقت فضاي فيزيكي موجود بود به پردازه اختصاص داده مي شود. • حافظه فيزيكي به بلاك هايي با اندازه ثابت كه قاب (frame) ناميده مي شوند تقسيم مي شود. • اندازه هر قاب تواني از 2 بين 512 تا 8192 بايت است. • حافظه منطقي به بلاك هايي با همان اندازه كه صفحه (page) ناميده مي شوند تقسيم مي شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
صفحه بندي (Paging) (ادامه) • مشخصات تمام قاب های آزاد نگه داری می شود. • براي اجراي برنامه اي با اندازه n صفحه بايد n قاب آزاد پيدا كرد و سپس برنامه را بارگذاري كرد. • از يك جدول صفحه (page table)براي تبديل آدرس منطقي به فيزيكي استفاده مي شود. • قطعه قطعه گي داخلي دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
رويه ترجمه آدرس • آدرس توليدشده توسط پردازنده به دو قسمت شماره صفحه و افست صفحه تقسيم مي شود. • شماره صفحه به عنوان انديسي استفاده مي شود كه به خانه اي از جدول صفحه اشاره مي كند. • جدول صفحه، آدرس شروع هر صفحه در فضاي حافظه فيزيكي را دارد. • افست (offset) صفحه با آدرس شروع صفحه تركيب مي شود تا آدرس فیزیکی را كه به حافظه اصلي ارسال مي شود تشكيل دهد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معماري ترجمه آدرس دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثالي از صفحه بندي دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثالي ديگر از صفحه بندي دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
قاب هاي آزاد دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پياده سازي جدول صفحه • جدول صفحه در حافظه اصلي نگهداري مي شود. • ثبات مبناي جدول صفحه(PTBR)به جدول صفحه اشاره مي كند. • ثبات اندازه جدول صفحه(PTLR)اندازه جدول صفحه را مشخص مي كند. • در اين مدل دسترسي به هر دستورالعمل يا داده متضمن دو دسترسي به حافظه است: يكي به جدول صفحه و ديگري به آدرس فيزيكي. • مشكل دسترسي دوتايي را مي توان با استفاده از يك حافظه نهان سخت افزاري ويژه كه قابليت جستجوي سريع داشته باشد، حل كرد. به اين سخت افزار حافظه انجمني و يا حافظه ميانگير ترجمه (TLB)مي گويند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
حافظه ی انجمنی • حافظه ی انجمنی- جستجوی موازی • ترجمه ی آدرس (p,d) • اگر p در ثبات انجمنی باشد، شماره ی قاب را از بیرون حافظه بارگذاری کن. • در غیر این صورت شماره ی قاب را از جدول صفحه از حافظه بگیر. Page # Frame # دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
صفحه بندی سخت افزار با TLB دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
زمان دستیابی موثر • جستجوی انجمنی = واحد زمان • فرض کنید دوره ی زمانی حافظه 1 میلی ثانیه باشد. • نرخ برخورد: درصد تعداد دفعاتی که شماره ی صفحه در رجیستر های انجمنی وجود دارد. • این نرخ با تعداد رجیستر های انجمنی متناسب است. • نرخ برخورد = • زمان دستیابی موثر(EAT) EAT = (1 + ) + (2 + )(1 – ) = 2 + – دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
محافظت از حافظه • محافظت از حافظه به وسیله ی یک بیت محافظ انجمنی که همراه هر قاب است، پیاده سازی شده است. • یک بیت اعتبار به هر ورودی در جدول صفحه مرتبط شده است. • معتبر نشان دهنده ی این است که صفحه ی مرتبط در فضای آدرس منطقی پردازه است، پس یک صفحه ی معتبر است. • نا معتبر نشان دهنده ی این است که صفحه در فضای آدرس منطقی پردازه نیست. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
بیت معتبر(V) و نامعتبر(i) در یک صفحه ی جدول دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
صفحات مشترک • کد مشترک • یک کپی از کد مشترم فقط خواندنی در میان پردازه ها (مثل پردازنده های متن، کامپایلرها و ... ) • کد مشترک باید در فضای آدرس منطقی تمام پردازه ها، در مکان یکسان باشد. • کد و داده ی خصوصی • هر پردازه یک کپی مجزا از کد و داده نگه می دارد. • صفحه ی کد و داده ی خصوصی می توانند هر جایی از فضای آدرس منطقی قرار بگیرند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثال از صفحات مشترک دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
ساختار جدول صفحه • صفحه بندی سلسله مراتبی • جدول صفحه های در هم سازی • جدول صفحه های معکوس دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
صفحه بندی سلسله مراتبی • فضای آدرس منطقی را به چندین جدول صفحه تقسیم می کند. • یک روش ساده، جدول صفحه ی دو-سطحی است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
طرح یک جدول صفحه ی دو-سطحی دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مثال صفحه بندی دو-سطحی • یک آدرس منطقی ( در یک ماشین 32 بیتی با اندازه ی صفحه ی 4K) تقسیم می شود به: • یک شماره ی صفحه شامل 20 بیت • یک افست صفحه شامل 12 بیت • چون صفحه ی جدول صفحه بندی شده است، شماره ی صفحه تقسیم می شود به: • 10 بیت شماره ی صفحه • 10 بیت افست صفحه • پس، یک آدرس منطقی به صورت زیر است: • P1 اندیس صفحه ی جدول بیرونی است و P2 جابجایی داخل صفحه ی جدول صفحه ی بیرونی است. page number page offset p2 pi d 10 12 10 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
طرح ترجمه ی آدرس • طرح ترجمه ی آدرس برای یک معماری صفحه بندی 32 بیت دو سطحی دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جدول صفحه ی در هم سازی • به طور معمول فضای آدرس ها > 32 بیت • شماره ی صفحه ی مجازی داخل یک جدول صفحه در هم سازی (hash) می شوند. این جدول صفحه شامل یک زنجیره از عناصر است که برای یک مکان در هم سازی (hash) شده اند. • شماره ی صفحات مجازی در این زنجیره برای پیدا کردن تلاقی مقایسه می شوند. اگر تلاقی وجود داشت، قاب فیزیکی مربوطه مورد استفاده قرار می گیرد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جدول صفحه ی در هم سازی دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جدول صفحه ی معکوس • یک ورودی برای هر صفحه ی واقعی حافظه • ورودی شامل آدرس مجازی صفحه ای است که در آن مکان واقعی حافظه ذخیره شده است، همراه با اطلاعات درباره ی پردازه ی مالک آن صفحه • حافظه ی مصرفی برای نگه داری هر صفحه را کم می کند، اما زمان لازم برای جستجوی جدول در زمان یک ارجاع به صفحه را زیاد می کند. • از جدول در هم سازی برای محدود کردن جستجو به یک (ویا تعداد محدودی از) ورودی های جدول صفحه استفاده می شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معماری جدول صفحه ی معکوس دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
قطعه بندی (Segmentation) • طرحی برای مدیریت حافظه که از دید کاربر در مورد حافظه پیروی می کند. • یک برنامه مجموعه ای از قطعه ها است. یک قطعه یک واحد منطقی است مثل: • برنامه ی اصلی • رویه • تابع • متد • شیء • متغیرهای محلی، متغیرهای کلی • بلوک عمومی • استک • جدول علائم • آرایه ها است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
دید کاربر از یک برنامه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
1 4 2 3 دید منطقی قطعه بندی 1 2 3 4 user space physical memory space دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معماری قطعه بندی • آدرس منطقی از دو قسمت تشکیل شده است: • < شماره ی قطعه، افست> • جدول قطعه ها: آدرس های فیزیکی دو بعدی را نگاشت می کند. هر ورودی جدول دارای دو عنصر پایه و حد است. • پایه: شامل آدرس فیزیکی شروع است.(مکانی که قطعه ها در حافظه قرار می گیرند.) • حد: طول قطعه ها را مشخص می کند. • رجیستر پایه ی جدول قطعه (STBR): به مکان جدول قطعه در حافظه اشاره می کند. • رجیستر طول جدول قطعه (STLR) تعداد قطعه هایی که توسط یک برنامه استفاده شده است را مشخص می کند. • شماره ی قطعه ی s معتبر است اگر s < STLR باشد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معماری قطعه بندی (ادامه) • محافظت: هر ورودی در جدول قطعه همراه است با: • قطعه غیر مجاز است بیت اعتبار=0 • اجازه ی خواندن، نوشتن، اجرا کردن • بیت های محافظت همراه با قطعه ها هستند. • اشتراک کد در سطح قطعه اتفاق می افتد. • چون قطعات از لحاظ طول متفاوتند، تخصیص حافظه تبدیل به مسئله ی تخصیص حافظه ی پویا می شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
معماری ترجمه ی آدرس دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف