Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
اسلایدهای فصل نهم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف
حافظه مجازی اسلایدهای فصل نهم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
2
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پیش زمینه حافظه مجازی: جداسازی حافظه منطقی کاربر از حافظه فیزیکی برای اجرای برنامه تنها قسمتی از آن باید در حافظه قرار گیرد. بنابراین می توان فضای حافظه منطقی را بسیار بزرگتر از فضای حافظه فیزیکی در نظر گرفت. اجازه می دهد فضاهای آدرس توسط چندین پردازه به اشتراک گذارده شوند. اجازه می دهد پردازه ها به صورت بهینه تری ایجاد شوند. می توان حافظه مجازی را به دو طریق ایجاد کرد: روش تقاضای صفحه روش تقاضای قطعه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
3
حافظه مجازی بزرگ تر از حافظه فیزیکی
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
4
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
فضای آدرس مجازی دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
5
کتابخانه ی مشترک با استفاده از حافظه ی مجازی
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
6
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
روش تقاضای صفحه زمانی یک صفحه به حافظه منتقل می شود که مورد نیاز باشد. نیاز به عملیات ورودی/خروجی کمتر نیاز به حافظه کمتر پاسخ سریعتر کاربران بیشتر وقتی صفحه ای مورد نیاز باشد به آن ارجاع می شود. ارجاع به آدرس نادرست توقف فقدان صفحه در حافظه آوردن صفحه به حافظه جا به جا کننده ی کند- تنها در صورتی صفحه را داخل حافظه بارگذاری می کند که به آن صفحه نیاز باشد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
7
انتقال یک حافظه صفحه ای به فضای یکپارچه روی دیسک
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
8
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
بیت اعتبار به هر مدخل جدول صفحه یک بیت اعتبار اختصاص داده می شود. 1 در حافظه، 0 بیرون از حافظه مقداردهی اولیه برای همه مدخل ها: صفر نمایی از یک جدول صفحه اگر در زمان ترجمه آدرس بیت اعتبار صفحه صفر باشد، خطای صفحه (Page Fault) رخ می دهد. Frame # valid-invalid bit 1 1 1 1 page table دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
9
جدول صفحه وقتی برخی صفحات در حافظه اصلی نیستند
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
10
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
خطای صفحه اگر به صفحه ای ارجاع شود، اولین ارجاع به آن صفحه به سیستم عامل ارسال می شود. سیستم عامل به جدول دیگری مراجعه می کند... ارجاع نادرست توقف. عدم حضور صفحه در حافظه سیستم عامل یک قاب حافظه خالی می گیرد. صفحه مورد نظر را به قاب منتقل می کند. جداول را reset کرده بیت اعتبار را مساوی یک قرار می دهد. دستورالعمل را از ابتدا اجرا می کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
11
مراحل رسیدگی به خطای صفحه
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
12
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
کارایی روش تقاضای صفحه نرخ خطای صفحه عددی بین صفر و یک است. اگر p = 0 خطای صفحه نداریم. اگر p = 1 تمام ارجاع ها خطا هستند. زمان دسترسی کارا: EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart overhead) دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
13
مثالی از روش تقاضای صفحه
زمان دسترسی به حافظه: 200 نانوثانیه متوسط زمان سرویس خطای صفحه EAT = (1 – p) x p (8 milliseconds) = (1 – p x p x 8,000,000 = p x 7,999,800 اگر در هر 1000 بار دسترسی به حافظه، یک خطای صفحه رخ دهد، EAT= 8.2 microseconds 40 برابر کند شده است! دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
14
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
ایجاد پردازه برخی دیگر از مزایای حافظه مجازی به زمان ایجاد پردازه مربوط می شوند: کپی هنگام نوشتن فایل های در حافظه نگاشت شده دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
15
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
کپی هنگام نوشتن کپی هنگام نوشتن به پردازه های پدر و فرزند اجازه می دهد در ابتدای اجرا از صفحه های حافظه مشترک استفاده کنند. هرگاه یک پردازه خواست رو ی صفحه تغییری بدهد، یک نسخه از آن کپی می کند. کپی هنگام نوشتن کارایی ایجاد پردازه را بالا می برد زیرا فقط صفحات تغییرکرده کپی می شوند. معمولا صفحات مورد نیاز از یک استخر (pool) از صفحاتی که با صفر مقداردهی شده اند اختصاص می یابد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
16
قبل از آنکه پردازه 1 صفحه C را تغییر دهد.
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
17
بعد از آنکه پردازه 1 صفحه C را تغییر داد.
Copy of Page C دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
18
چه اتفاقی می افتد اگر قاب خالی وجود نداشته باشد؟
جابجایی صفحه: صفحه ای را که در حافظه اصلی قرار دارد اما از آن استفاده نمی شود یافته و آن را با صفحه مورد نظر جابجا کن. نیاز به الگوریتمی است که به کمترین تعداد خطای صفحه منجر شود. ممکن است یک صفحه چندین بار به درون حافظه منتقل شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
19
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جابجایی صفحه برای جلوگیری از اختصاص فضای حافظه بیش از فضای موجود، روال سرویس خطای حافظه باید به گونه ای تغییر کند که جابجایی صفحه را نیز در بر بگیرد. از بیت تغییر (یا کثیف) استفاده می کند تا سربار انتقال صفحه را کاهش دهد. تنها صفحاتی که تغییر کرده اند روی دیسک نوشته می شوند. جابجایی صفحه جداسازی حافظه منطقی و حافظه فیزیکی را تکمیل می کند. یک حافظه مجازی بزرگ روی یک حافظه فیزیکی کوچک. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
20
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
نیاز به جابجایی صفحه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
21
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جابجایی صفحه ابتدایی مکان صفحه مورد نظر را روی دیسک پیدا کن. یک قاب صفحه خالی پیدا کن. اگر قاب خالی پیدا شد از آن استفاده کن. اگر قاب خالی پیدا نشد، از یک الگوریتم جابجایی صفحه استفاده کن تا یک قاب به عنوان قربانی انتخاب شود. صفحه مورد نظر را به قاب خالی منتقل کن و جداول قاب و صفحه را به روز کن. پردازه را از ابتدا آغاز کن. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
22
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
جابجایی صفحه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
23
الگوریتم های جابجایی صفحه
پایین ترین نرخ خطای صفحه مورد نظر است. ارزیابی با اجرای الگوریتم روی یک رشته ارجاع به حافظه و شمارش خطاهای صفحه رخ داده. در مثال های این بخش رشته ارجاع به صورت زیر است: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
24
رابطه بین خطای صفحه و تعداد قاب ها
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
25
الگوریتم اولین ورودی، اولین خروجی
رشته ارجاع: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 سه قاب: چهار قاب: 9 خطای صفحه خطای صفحه این روش (FIFO replacement) دارای بی نظمی Belady است. قاب های بیشتر خطاهای صفحه بیشتر 1 1 1 1 4 5 5 4 2 2 2 2 1 3 1 5 3 3 3 3 2 4 2 4 4 3 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
26
جابجایی صفحه الگوریتم اولین ورودی، اولین خروجی
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
27
الگوریتم اولین ورودی، اولین خروجی و بی نظمی Belady
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
28
الگوریتم جابجایی بهینه
صفحه ای را جابجا کن که تا طولانی ترین زمان ممکن مورد ارجاع قرار نمی گیرد. مثال با چهار قاب: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 6 خطای صفحه برای سنجش کارایی سایر الگوریتم ها به کار می رود. 1 4 2 3 4 5 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
29
الگوریتم جابجایی بهینه
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
30
الگوریتم کمترين اخيرترین مورد استفاده (LRU)
رشته ارجاع: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 پیاده سازی با استفاده از شمارنده: هر مدخل صفحه یک شمارنده دارد که در هر بار ارجاع مساوی ساعت پردازنده قرار می گیرد. برای جابجایی صفحات، صفحه قربانی بر اساس این شمارنده انتخاب می شود. 1 1 1 1 5 2 2 2 2 2 3 5 5 4 4 4 4 3 3 3 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
31
جابجایی صفحات در الگوریتم کمترين اخيرترین مورد استفاده (LRU)
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
32
الگوریتم کمترين اخيرترین مورد استفاده (LRU) (ادامه)
پیاده سازی با استفاده از پشته: یک پشته از شماره صفحات را نگهداری کن. ارجاع به صفحه: انتقال صفحه به بالای پشته نیاز به جستجو برای جابجایی نیست. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
33
استفاده از پشته برای نگه داری اخیرترین ارجاع به صفحه ها
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
34
الگوریتم های LRU تقریبی
روش بیت ارجاع به هر صفحه یک بیت با مقدار اولیه صفر اختصاص بده. ارجاع به صفحه بیت ارجاع = یک. یکی از صفحه هایی که بیت ارجاع آنها صفر است را برای جابجایی انتخاب کن. ترتیب را نمی دانیم. روش فرصت دوم (Second Chance) نیاز به بیت ارجاع و برچسب ساعت دارد. اگر بیت ارجاع صفحه ای که کوچکترین برچسب ساعت را دارد یک است... بیت ارجاع را صفر کن و صفحه را جابجا نکن. بر اساس همین قوانین به سراغ صفحه بعدی برو. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
35
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم فرصت دوم دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
36
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
الگوریتم های شمارشی در یک شمارنده تعداد ارجاعات به هرصفحه را نگهدار. الگوریتم LFU (Least Frequently Used) : صفحه ای را که کمترین شماره ارجاع را دارد جابجا می کند. الگوریتم MFU (Most Frequently Used) : با این استدلال که صفحه ای که کوچکترین شماره ارجاع را دارد احتمالا به تازگی به حافظه منتقل شده است و هنوز استفاده خواهد شد، صفحه ای را که بیشترین شماره ارجاع را دارد جابجا می کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
37
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص قاب هر پردازه به تعداد حداقلی از صفحات نیاز دارد. مثلا IBM370 برای هر دستور SS MOVE نیاز به 6 صفحه دارد. دستورات 6 بایتی، 2 صفحه دو صفحه برای مبدا دو صفحه برای مقصد دو روش عمده: اختصاص ثابت و اختصاص اولویت دار. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
38
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص قاب ثابت اختصاص برابر 5 پردازه و 100 قاب هر پردازه 20 قاب. اگر برای پردازه ای یک خطای صفحه رخ داد... یکی از قاب های همان پردازه را برای جابجایی انتخاب کن. یکی از قاب های پردازه با اولویت کمتر را برای جابجایی انتخاب کن. اختصاص به نسبت اندازه پردازه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
39
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص قاب اولویت دار به جای استفاده از اندازه پردازه از یک معیار اولویت برای اختصاص قاب به پردازه ها استفاده کن. اگر برای پردازه ای یک خطای صفحه رخ داد... یکی از قاب های همان پردازه را برای جابجایی انتخاب کن. یکی از قاب های پردازه با اولویت کمتر را برای جابجایی انتخاب کن. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
40
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص سراسری و محلی در اختصاص سراسری هر پردازه می تواند یک قاب را از میان تمام قاب های موجود در سیستم انتخاب کند. یک پردازه می تواند از قاب یک پردازه دیگر استفاده کند. در اختصاص محلی هر پردازه تنها می تواند از قاب های اختصاص داده شده به خود استفاده کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
41
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
دور ریختن (Thrashing) اگر یک پردازه به تعداد کافی صفحه در اختیار نداشته باشد، نرخ خطای صفحه به شدت بالا می رود. بهره وری پایین پردازنده سیستم عامل تصور می کند لازم است درجه چندبرنامگی را بالا ببرد. پردازه دیگری به سیستم استفاده می شود. به حالتی که یک پردازه مدام مشغول جابجایی صفحات خود باشد Thrashing می گویند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
42
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
دور ریختن (trashing) دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
43
تقاضای صفحه و دور ریختن (Thrashing)
چرا صفحه بندی موثر است؟ مدل موضعی (Locality Model) : یک پردازه از یک موضع به یک موضع دیگر مهاجرت می کند. ممکن است چند موضع با یکدیگر همپوشانی داشته باشند. چرا Thrashing رخ می دهد؟ مجموع اندازه موضع ها کل اندازه حافظه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
44
Locality در یک الگوی ارجاع به حافظه
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
45
مدل مجموعه کاری (Working Set)
یا مجموعه کاری به صورت تعداد ثابتی ارجاع به حافظه مشخص می شود، مثلا دستور. WSSi (مجموعه کاریردازه i) را به صورت تعداد صفحاتی که در آخرین مجموعه کاری مورد ارجاع قرار گرفته اند تعریف می کنیم. اگر خیلی کوچک باشد، تمام یک موضع (Locality) را شامل نمی شود. اگر خیلی بزرگ باشد، چندین موضع را شامل می شود. اگر بی نهایت باشد، تمام برنامه را شامل می شود. D = WSSi مجموع قاب های مورد نیاز می باشد. اگر D بزرگتر از اندازه حافظه باشد، دور ریختن (trashing) رخ می دهد. راه حل: معلق کردن یکی از پردازه ها دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
46
نگهداری سوابق مجموعه کاری
تخمین با استفاده از زمان سنج وقفه ای و یک بیت ارجاع مثال: = 10000 زمان سنج پس از هر 5000 واحد زمانی یک وقفه می زند. برای هر صفحه دو بیت در حافظه در نظر بگیر. با هر وقفه مقدار بیت های ارجاع را کپی و سپس همه بیت های ارجاع را صفر کن. اگر هر یک از این بیت ها در حافظه یک بود، صفحه در مجموعه کاری پردازه است. این مدل دقیق نیست، برای بهبود 10 بیت در نظر بگیر و هر 1000 واحد زمانی وقفه ایجاد شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
47
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مدل بسامد خطای صفحه نرخ خطای صفحه قابل قبول را مشخص کن. اگر نرخ واقعی خیلی پایین قاب های آن پردازه را کم کن. اگر نرخ واقعی خیلی بالا قاب های آن پردازه را زیاد کن. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
48
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
مدل مجموعه کاری دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
49
فایل های در حافظه نگاشت شده
در این مکانیزم یک بلوک روی دیسک به یک صفحه در حافظه نگاشت می شود. فایل های در حافظه نگاشت شده اجازه می دهد عملیات ورودی/خروجی روی فایل به صورت عملیات دستیابی به حافظه انجام شود. این فایل ها با روش تقاضای صفحه خوانده می شوند. قسمتی از فایل که به اندازه ی صفحه است، از سیستم فایل به یک صفحه ی فیزیکی خوانده می شود و به حافظه اصلی منتقل می شود. دستیابی های بعدی به صورت دستیابی معمولی به حافظه انجام می شوند. این روش دستیابی به پرونده را با جایگزینی دستورات دستیابی به حافظه به جای فراخوانی های سیستمی read () و write () تسهیل می کند. همچنین اجازه می دهد چندین پردازه یک فایل را به اشتراک بگذارند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
50
فایل های در حافظه نگاشت شده
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
51
حافظه ی مشترک نگاشت شده در windows
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
52
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص حافظه ی kernel متفاوت با حافظه ی کاربر با آن برخورد می شود. معمولا از یک استخر حافظه ی آزاد اختصاص می یابد. کرنل درخواست حافظه برای ساختارهای با اندازه های متفاوت می کند. بعضی حافظه های کرنل، باید پیوسته باشند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
53
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
سیستم buddy حافظه را از بخش هایی با اندازه ی ثابت که شامل صفحات به طور فیزیکی پیوسته اند، اختصاص می دهد. حافظه ی اختصاص داده شده از اختصاص دهنده ی توان 2 استفاده می کند. در خواست ها را در واحد هایی به اندازه ی توانی از 2 بر آورده می کند. در خواست تا نزدیک ترین توان 2 بزرگتر گرد می شود. وقتی اختصاص کوچکتری از آنچه در دسترس است نیاز است، بخش فعلی به دو قسمت به اندازه ی نزدیکترین توان کوچکتر 2 تقسیم می شوند. این روش ادامه می یابد تا بخش هایی با اندازه ی مناسب ایجاد شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
54
اختصاص دهنده ی سیستم buddy
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
55
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص دهنده ی slab روش جایگزین Slab یک یا چند صفحه ی فیزیکی پیوسته است. Cache شامل یک یا چند slab است. یک cache برای هر ساختمان داده ی یکتای کرنل هر cache با شیء ها پر شده است- نم.نه های ساختمان داده وقتی cache ساخته می شود، چر از اشیائی است که آزاد شناخته می شوند. وقتی ساختار ذخیره می شود، اشیا به عنوان مصرف شده شناخته می شوند. اگر slab پر از اشیاء مصرف شده باشد، شیء بعد از slab خالی اختصاص می یابد. اگر slab خالی نبود، slab جدید اختصاص می یابد. مزایا : بدون فضای قطعه قطعه، اختصاص سریع حافظه دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
56
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
اختصاص به روش slab دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
57
سایر موارد - پیش صفحه بندی
پیش صفحه بندی (Prepaging) بزای جلوگیری از تعداد زیاد خطای صفحه که در زمان شروع اجرای یک پردازه ایجاد می شود.. راه حل: تمام یا تعدادی از صفحات مورد نیاز پردازه را قبل از آنکه مورد ارجاع قرار بگیرند. اما اگر این صفحات از قبل آماده شده مورد استفاده قرار نگیرند، ورودی/خروجی و حافظه اتلاف شده است. فرض کنید s صفحه پیش صفحه بندی شده و a صفحه مورد استفاده قرار گرفته است هزینه ی s * α برای جلوگیری از خطای صفحه بیشتر است یا s * (1- α) هزینه ی صفحات غیر لازم؟ اگر a نزدیک 0 باشد، پیش صفحه بندی شکست خورده است. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
58
سایر موارد - اندازه ی صفحه
انتخاب اندازه صفحه موثر بر قطعه قطعه گی اندازه جدول صفحه سربار ورودی/خروجی locality دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
59
سایر موارد - حافظه قابل دسترسی توسط TLB
حافظه قابل دسترسی توسط TLB (TLB Reach) TLB Reach = (TLB Size) X (Page Size) ایده آل آن است که مجموعه کاری هر پردازه در TLB ذخیره شود، در غیر این صورت نرخ خطای صفحه بالا می رود. می توان حافظه قابل دسترسی توسط TLB را با افزایش اندازه صفحه افزایش داد. افزایش قطعه قطعه گی در پردازه های نیازمند به صفحات کوچک راه حل: استفاده از اندازه صفحات در اندازه های مختلف به برنامه هایی که اندازه ی صفحه بیشتری نیاز دارند، شانس استفاده از صفحات بزرگتر بدون افزایش قطعه قطعه گی می دهد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
60
سایر موارد - ساختار برنامه
ساختار برنامه: Int[128,128] data; هر سطر در یک صفحه ذخیره شده است. برنامه یک: for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0; تعداد خطای صفحه: 128 x 128 = 16,384 برنامه دو: for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0; تعداد خطای صفحه: 128 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
61
سایر موارد – قفل داخلی ورودی/خروجی
برخی اوقات باید یک صفحه در حافظه اصلی قفل شود و جابجا نشود. برای مثال یک صفحه حافظه که برای کپی یک فایل از یک ابزار استفاده می شود نباید توسط الگوریتم های جابجایی صفحه برای خروج از حافظه اصلی انتخاب شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
62
صفحاتی که اعمال ورودی/خروجی انجام می دهند نباید از حافظه خارج شوند.
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
63
بررسی یک سیستم عامل: Windows XP
از روش تقاضای صفحه به همراه گروه بندی (clustering) استفاده می کند. گروه بندی باعث می شود صفحات پیرامونی صفحه ای که خطای صفحه ایجاد کرده است نیز به درون حافظه آورده شوند. هر پردازه یک مجموعه کاری مینیمم و یک مجموعه کاری ماکزیمم دارد. مجموعه کاری مینیمم حداقل تعداد صفحاتی است که یک پردازه به صورت تضمینی در حافظه دارد. یک پردازه می تواند حداکثر به اندازه مجموعه کاری ماکزیمم صفحه داشته باشد. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
64
بررسی یک سیستم عامل: Windows XP (ادامه)
وقتی مقدار حافظه آزاد سیستم از یک مقدار آستانه خاص کمتر می شود، روال ساماندهی خودکار مجموعه کاری فراخوانی می شود تا مقداری حافظه آزاد کند. روال ساماندهی خودکار صفحاتی از مجموعه کاری صفحات پردازه هایی را که بیش از مجموعه کاری مینیمم خود صفحه دارند حذف می کند. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
65
بررسی یک سیستم عامل : سولاریس
لیستی از صفحات آزاد برای اختصاص به صفحات خطاخورده نگهداری می کند. Lotsfree پارامتر آستانه (میزان حافظه ی آزاد) برای آغاز صفحه بندی است. Desfree پارامتر آستانه برای افزایش میزان صفحه بندی است. Minfree پارامتر آستانه برای شروع جابجایی صفحات است. صفحه بندی با استفاده از پردازه pageout انجام می شود. pageout صفحات را با استفاده از الگوریتم ساعت تغییریافته پویش می کند. scanrate نرخ پویش صفحه هاست. این نرخ بین پویش کند و پویش تند تغییر می کند. Pageout بسته به میزان حافظه ی آزاد در دسترس فراخوانی می شود. دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
66
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
پویشگر صفحه سولاریس 2 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
67
دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
انتهای فصل 9 دکتر جلیلی - مفاهیم سیستم عامل دانشکده ی کامپیوتر- دانشگاه صنعتی شریف
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.