Presentation is loading. Please wait.

Presentation is loading. Please wait.

Virtual Memory فصل هشتم.

Similar presentations


Presentation on theme: "Virtual Memory فصل هشتم."— Presentation transcript:

1 Virtual Memory فصل هشتم

2 Hardware and Control Structures
در زمان اجرا ارجاعات به حافظه بصورت دینامیک ترجمه می شوند. بدلیل وجود مسئله جابجایی، فرآیند ممکن است در جاهای مختلفی از حافظه قرار گیرد. ممکن است یک برنامه را به تکه های مختلف شکسته باشیم و نیازی نباشد که این تکه ها در حافظه در کنار هم قرار بگیرند. نیازی نیست که تمام تکه های برنامه در حال اجرا، وارد حافظه شوند.

3 Execution of a Program سیستم عامل چند تکه از برنامه را برای اجرا به حافظه اصلی می آورد. مجموعه مقیم: قسمتی از برنامه که داخل حافظه اصلی است. وقتی که به آدرسی نیاز داشته باشیم که در حافظه اصلی نباشد یک وقفه تولید می گردد. سپس، سیستم عامل فرآیند را مسدود می کند. قسمت مورد نیاز که حاوی آدرس منطقی تولید شده است وارد حافظه می گردد. سیستم عامل یک درخواست I/O خواندن دیسک را صادر می کند. مادامی که درخواست I/O تکمیل نشده است، برنامه دیگری برای اجرا فرستاده می شود. وقتی درخواست آماده شد، یک وقفه صادر می شود که باعث می شود سیستم عامل فرآیند مسدود شده را به حالت آماده برگرداند.

4 Advantages of Breaking up a Process
فرآیندهای بیشتری وارد حافظه اصلی می شوند. چون فقط تکه هایی از هر فرآیند به حافظه آورده شده است. لذا احتمال اینکه همیشه یک فرآیند در وضعیت آماده اجرا باشد بیشتر است. ممکن است فرآیند از حافظه اصلی بزرگتر باشد.

5 Types of Memory حافظه واقعی حافظه مجازی حافظه اصلی حافظه روی دیسک
امکان چند برنامگی را فرآهم می کند و کاربر را از محدودیت های حافظه اصلی نجات میدهد.

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

7 Principle of Locality ارجاعات به کد برنامه و داده در فرآیند بصورت خوشه ای است. در یک دوره کوتاه زمانی، تعداد کمی از تکه های فرآیند مورد استفاده قرار می گیرند. لذا، می توان فهمید که در آینده نزدیک به کدام تکه ها نیاز خواهیم داشت و از کوبیدگی اجتناب کرد. این مسئله موید این مطلب است که حافظه مجازی بطور موثر کار می کند.

8 Support Needed for Virtual Memory
سخت افزار باید از صفحه بندی و قطعه بندی حمایت کند. سیستم عامل باید قادر به حرکت دادن صفحات و قطعه ها بین حافظه اصلی و جانبی باشد.

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

10 Modify Bit in Page Table
یک بیت کنترلی دیگر، نیاز است که مشخص می کند که آیا صفحه موجود در حافظه اصلی در حین اجرا تغییر کرده است یا نه. اگر صفحه تغییر نکرده بود، نیازی نیست که هنگام جایگزینی صفحه در حافظه جانبی نوشته شود.

11 Page Table Entries

12

13 Page Tables ممکن است که جدول صفحه خیلی بزرگ باشد و نگهداری آن در حافظه اصلی مقدور نباشد. در این حالت جدول صفحه نیز در حافظه جانبی نگهداری می شود. وقتی که فرآیند اجرا می شود قسمتی از جدول صفحه ی آن در حافظه اصلی قرار می گیرد.

14 Translation Lookaside Buffer
هر ارجاع به حافظه ی مجازی ممکن است که به دو ارجاع به حافظه ی جانبی منجر شود: یکی برای واکشی جدول صفحه و بعدی برای واکشی داده برای غلبه بر این مشکل، از یک حافظه ی نهان سریع برای نگهداری ردیفهای جدول صفحه استفاده می شود. این حافظه نهان TLB نامیده شده است. TLB شامل ردیفهایی از جدول صفحه است که اخیرا به آنها ارجاع شده است. مثل حافظه ی نهان عمل می کند.

15 Translation Lookaside Buffer
وقتی یک آدرس منطقی به دست پردازنده می رسد، ابتدا TLB را چک می کند. اگر ردیفی وجود داشت (a hit) ، شماره ی قاب متناظر با شماره ی صفحه برداشته می شود. اگر ردیف متناظر در TLB وجود نداشت (a miss) ، از شماره ی صفحه برای ایندکس کردن جدول صفحه استفاده می کنیم. ابتدا وجود جدول صفحه در حافظه اصلی چک می شود. اگر وجود نداشت خطای صفحه تولید می شود. اگر وجود داشت، TLB تازه می شود تا شامل صفحه جدید گردد.

16

17

18 TLB and Cache

19 Page Size هر چه سایز صفحات کوچکتر باشد:
تکه تکه شدن داخلی کمتر است. تعداد صفحات فرآیند بیشتر است. تعداد صفحات بیشتر به معنای جدول صفحه ی بزرگتر است. به عبارت دیگر، قسمتی از جدول صفحه در حافظه ی مجازی خواهد بود. از طرفی، حافظه ثانویه طوری طراحی شده است که برای انتقال بلوکهای بزرگ داده مناسب است.

20 Page Size اگر سایز صفحه کوچک باشد، تعداد زیادی از صفحات در حافظه اصلی هستند. در حین اجرا، صفحاتی که در حافظه قرار دارند شامل قسمتهایی از فرآیند هستند که اخیرا مورد ارجاع قرار گرفته اند. لذا خطاهای صفحه کم می شوند. اگر سایز صفحه بزرگ باشد، هر صفحه حاوی محلهایی است که از ارجاعات فعلی دور هستند. لذا خطاهای صفحه افزایش می یابند.

21

22 Page Size صفحات با سایز متفاوت اجازه می دهند که از TLB بصورت مؤثر استفاده گردد. از صفحات بزرگ برای ذخیره سازی دستورالعمل کدهای برنامه استفاده می شود. از صفحات کوچک برای نخها استفاده می گردد. اکثر سیستم عاملها فقط از یک سایز صفحه پشتیبانی می کنند.

23 Example Page Sizes

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

25

26 Segment Tables قطعه متناظر را در حافظه اصلی نشان می دهد.
هر ردیف طول قطعه را نیز مشخص می کند. یک بیت نیز نشان می دهد که آیا قطعه در حافظه اصلی است یا نه؟ یک بیت دیگر نیز مشخص می کند که آیا قطعه از زمان حضور (بارگذاری) در حافظه تا کنون تغییر کرده است یا نه؟

27 Segment Table Entries

28 Segmentation

29 combined Paging and Segmentation
تکنیک صفحه بندی از دید برنامه نویس پنهان است. صفحه بندی تکه تکه شدن خارجی را حذف می کند. قطعه بندی برای برنامه نویس قابل مشاهده است. مزایای قطعه بندی پشتیبانی از ساختارهای داده در حال گسترش، استراک، حفاظت و برنامه نویسی ماژولار است. هر قطعه به صفحات با سایز ثابت تقسیم می گردد.

30 Combined Segmentation and Paging

31 Combined Segmentation and Paging

32 Fetch Policy سیاست واکشی
مشخص می کند که چه موقع یک صفحه باید به حافظه آورده شود. صفحه بندی بر اساس تقاضا فقط وقتی صفحات را به حافظه می آورد که یک ارجاع به محلی در آن صفحه داده می شود. لذا در هنگام شروع فرآیند شاهد تعداد زیادی خطای صفحه خواهیم بود. تکنیک پیش صفحه بندی بیشتر از حد نیاز صفحه بار می کند. اگر صفحات مجاور در دیسک سخت را بارگذاری کنیم موثرتر خواهد بود.

33 Replacement Policy سیاست جایگزینی
هنگام پر شدن حافظه کدام صفحه را جایگزین کنیم. صفحه ای که حذف می شود باید صفحه ای باشد که احتمال مراجعه به آن در آینده نزدیک کمتر است. اکثر سیاستها سعی می کند از روی رفتار گذشته فرآیندها، رفتار آینده ی آنان را پیش بینی کنند.

34 Replacement Policy قفل کردن قاب
اگر قابی قفل شده است نباید جایگزین شود. هسته سیستم عامل ساختارهای کنترلی بافرهای I/O به هر قاب یک بیت قفل نیز وصل می کنیم.

35 Basic Replacement Algorithms
سیاست بهینگی صفحه ای برای جایگزینی انتخاب می شود که زمان ارجاع بعدی به آن دور ترین است. آگاهی کامل از آینده امکان پذیر نیست.

36 Basic Replacement Algorithms
سیاست Least Recently Used (LRU) صفحه ای را که مدت طولانتری مورد ارجاع قرار نگرفته است را جایگزین کنید. بر اساس اصل محلی بودن ارجاعات، این صفحه همان صفحه ای است که در آینده دورتری مورد ارجاع قرار می گیرد. هر صفحه باید دارای یک برچسب باشد که در زمان آخرین ارجاعی که به آن شده، تنظیم شده است. لذا به سربار زیادی خواهیم داشت.

37 Basic Replacement Algorithms
سیاست (FIFO) قابهایی که به فرآیند اختصاص داده شده است را بصورت یک بافر حلقوی در نظر می گیرد. صفحات بصورت round-robin جایگزین می گردند. از لحاظ پیاده سازی ساده ترین سیاست جایگزینی است. صفحه ای که مدت بیشتری در حافظه بوده است، کاندید جایگزینی است. یکی از عیوب این روش این است که این صفحه ممکن است بزودی مورد استفاده قرار گیرد.

38 Basic Replacement Algorithms
سیاست ساعت به هر قاب یک بیت استفاده منتسب می کنیم. هنگامی که صفحه برای اولین بار وارد حافظه می شود بیت استفاده صفر است. وقتی که صفحه مورد ارجاع قرار می گیرد، بیت استفاده یک می گردد. وقتی که به جایگزینی نیاز باشد، با کمک یک اشاره گر بافر را میگردیم. اولین صفحه ای که در مسیر ما بیت استفاده آن صفر باشد،برای جایگزینی انتخاب می گردد. اما بیتهای استفاده صفحاتی که در مسیر جستجوی ما قرار می گیرند به صفر تبدیل میگردند. اشاره گر نیز همیشه به قاب بعدی (بعد از قاب جایگزین شده) اشاره می کند.

39

40

41 Comparison of Replacement Policies

42 از اینجا به بعد تدریس نشده است.

43 Basic Replacement Algorithms
بافر صفحه صفحه ای که قرار است جایگزین شود به یکی از دو لیست زیر منتقل می گردد: لیست صفحات خالی: اگر صفحه تغییر نکرده باشد. لیست صفحات تغییر یافته: اگر صفحه تغییر نکرده باشد. یعنی سیستم عامل دو بافر صفحه دارد.

44 Resident Set Size تخصیص ثابت: تخصیص متغییر
به هر فرآیند تعداد ثابتی از صفحات برای اجرا داده میگردد. اگر خطای صفحه رخ دهد، یکی از صفحات آن فرآیند جایگزین می شود. تخصیص متغییر در مدت حیات فرآیند، تعداد صفحاتی که به آن تخصیص داده شده تغییر می کند.

45 Variable Allocation, Global Scope
از لحاظ پیاده سازی ساده ترین است. اکثر سیستم عاملها از این روش استفاده می کنند. سیستم عامل لیستی از قابهای خالی را نگهداری می کند. وقتی که یک خطای صفحه رخ دهد، یکی از قابهای خالی به آن داده می شود. اگر قاب خالی وجود نداشت، یک قاب از دیگر فرآیندها برای جایگزینی انتخاب می گردد.

46 Variable Allocation, Local Scope
وقتی که یک فرآیند جدید اضافه شود، با توجه به نوع کاربرد، درخواست فرآیند و یا دیگر معیارها تعدادی قاب به آن اختصاص داده می گردد. هنگام وقوع خطای صفحه، از مجموعه مقیم فرآیندی که عامل خطا است، صفحه ای برای جایگزینی انتخاب می گردد. اندازه قابهای تخصیص یافته به فرآیند می تواند در طول زمان تغییر نماید.

47 Cleaning Policy پاکسازی بر اساس تقاضا پیش پاکسازی
صفحه ای که تغییر کرده است فقط هنگام جایگزینی در حافظه ثانویه نوشته می گردد. پیش پاکسازی صفحات بصورت دسته ای در حافظه ثانویه نوشته می گردند.

48 Cleaning Policy روش بهتر استفاده از بافر صفحه است:
صفحات جایگزین شده در دو لیست قرار می گیرند: تغییر کرده و تغییر نکرده صفحاتی که در لیست تغییر یافته هستند، بصورت متناوب و دسته ای در حافظه ثانویه نوشته می شوند. صفحاتی که در لیست تغییر نیافته هستند، یا دوباره فراخوانی می شوند یا از دست می روند (وقتی که قاب مربوطه به یک فرآیند دیگر داده شود).

49 Load Control کنترل بار عبارت است از مشخص کردن تعداد فرآیند های مقیم در حافظه اصلی. اگر کم باشد: موقیعتهایی زیادی پیش می آید که تمام فرآیندها مسدود هستند و وقت پردازنده صرف جابجایی فرآیند ها می شود. اگر تعداد فرآیندها زیاد باشد: احهتمال وقوع پدیده کوبیدگی زیاد می شود.

50 Process Suspension فرآیند با کمترین اولویت فرآیند تولید کننده خطا
مجموعه کاری مورد نیاز این فرآیند در حافظه نیست، پس آن را مسدود کنید. آخرین فرآیندی که فعال شده احتمال اینکه مجموعه کاری این فرآیند مقیم باشد، کمتر است. فرآیندی که مجموعه مقیم آن کوچکتر است درآینده به کار کمتری برای فراخوانی مجدد آن نیاز داریم. فرآیندی که مجموعه مقیم آن بزرگتر است تعداد قابهای خالی بیشتری بدست می آوریم. فرآیندی که پنجره اجرای باقیمانده آن بزرگتر است.


Download ppt "Virtual Memory فصل هشتم."

Similar presentations


Ads by Google