صفحه 1:

صفحه 2:
در زمان اجرا ارجاعات به حافظه بصورت دینامیک ترجمه می + oh شوند. 7 بدلیل وجود مسئله جابجایی» فرآیند ممکن است در جاهای مختلفی از حافظه قرار گیرد. ممکن است یک برنامه را به تکه های مختلف شکسته باشیم و نیازی نباشد که اين تکه ها در حافظه در کنار هم قرار بگیرند. " نیازی نیست که تمام تکه های برنامه در حال اجراء وارد حافظه شوند.

صفحه 3:
۱ 0 # سیستم عامل چند تکه از برنامه را برای اجرا به حافظه اصلی می آورد. * مجموعه مقیم: قسمتی از برنامه که داخل حافظه اصلی است. * وقتى كه بو آدرسى نياز داشته ته باشیم که در حافظه اصلی نباشد یک وقفه توليد مى كردد * سپس سیستم میستم عامل فرآیند را مسدود می کند. * قسمت مورد نیاز که حاوی آدرس منطقی تولید شده است وارد حافظه می دد. سیستم عامل یک درخواست 1/0“ خواندن دیسک را صادر می کند. میایی که درنجواجتت 7۳ صل است؛ برنامه دیگری برای اجرا فرستاده می شود. * وقتي درخواست آماده شده یک وقفه صادر می شود که باعث می شود سیستم عامل فرآیند مسدود شده را به حالت آماده بر گرداند.

صفحه 4:
‎ra cec 0‏ اا ‏فرآیندهای بیشتری وارد حافظه اصلی می شوند. " چون فقط تکه هایی از هر فرآیند به حافظه آورده شده است. ؟ لذا احتمال اینکه همیشه یکک فر آیند در وضعیت آماده اجرا باشد بيشتر است. #ممکن است فرآیند از حافظه اصلی بزر گتر باشد. ‎

صفحه 5:
© حافظه واقعى * حافظه اصلى ©حافظه مجازى * حافظه روى ديسكك * امكان جند برنامكى را فرآهم می کند و کاربر را از محدودیت های حافظه اصلی نجات میدهد.

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

صفحه 7:
۱ ed cdl ema Odea ea Da #ارجاعات به کد برنامه و داده در فر آیند بصورت خوشه ای است. در یک دوره کوتاه زمانی» تعداد کمی از تکه های فر آیند مورد استفاده قرار می گیرند. *لذاء می توان فهمید که در آینده نزدیک به کدام تکه ها نیاز خواهیم داشت و از کوبید گی اجتناب کرد. این مسئله موید اين مطلب است که حافظه مجازی بطور موثر کار می کند.

صفحه 8:
3 ee 0 (errata 0 © سخت افزار باید از صفحه بندی و قطعه بندی حمایت کند. © سيستم عامل بايد قادر به حرکت دادن صفحات و قطعه ها بین حافظه اصلی و جانبی باشد.

صفحه 9:
#هر فرآیند دارای یک جدول صفحه است. #هر ردیف جدول صفحه شامل شماره قاب معادل در حافظه اصلی است. ۳ we e ‏يكك بيت نيز وجود دارد كه مبين حضور يا عدم حضور صفحه‎ ‏در حافظه اصلى است.‎

صفحه 10:
0 9 ششغ2ظ # یک بیت کنترلی دیگر نیاز است که مشخص می کند ‎UT aS‏ صفحه موجود در حافظه اصلی در حین اجرا تغییر کرده است یا نه. #اگر صفحه تغییر نکرده بود نیازی نیست كه هنكام جایگزینی صفحه در حافظه جانبی نوشته شود.

صفحه 11:
(acd NN ea ek oan et cca Virtual Address |__ Page Number ‏او‎ Page Table Entry Fifpsscanme] Tame Nonter | (a) Paging only Typical Memory Management Format

صفحه 12:
‘Virtual Address Frame #] Oftset Page# | Oftset Register [Pace Table Pu Page Table once Page Frame Main Memory Paging Mechanism Program Figure 8.3 Address Translation in a Paging System

صفحه 13:
9 Ns rica #ممکن است که جدول صفحه خیلی بزرگ باشد و نگهداری آن در حافظه اصلی مقدور نباشد. #در این حالت جدول صفحه نیز در حافظه جانبی نگهداری می شود. *وقتى كه فرآيند اجرا مى شود قسمتی از جدول صفحه ی آن در حافظه اصلی قرار می گیرد.

صفحه 14:
70 #هر ارجاع به حافظه ى مجازى ممكن است كه به دو ارجاع به حافظه ى جانبى منجر شود: ‎ASI chp So”‏ جدول صفحه ‏۴و بعدی برای واکشی داده ‏#برای غلبه بر اين مشکل از یک حافظه ی نهان سریع برای نگهداری ردیفهای جدول صفحه استفاده می شود. ‏7 این حافظه نهان ۸60 "نامیده شده است. ‏© ۷ شام دیفهاییاز جدولصفحه لستکه لخیرا بسه آنها ارجاع شده ‎

صفحه 15:
© وقتی یک آدرس منطقی به دست پردازنده می رسد ابتدا ‎Ly DL®‏ چک می کند. اگر ردیفی وجود داشت (0۳۷)) شماره ی قاب متناظر با شماره ی صفحه برداشته می شود. اگر ردیف متناظر در ۲۷6" وجود نداشت (ع ۰ از شماره ی صفحه پرای ایند کس کردن جدول صفحه استفاده می کنیم. © ابتدا وجود جدول صفحه در حافظه اصلی چک می شود. * اگر وجود نداشت خطای صفحه تولید می شود. * اگر وجود داشت. 06 تازه می شود تا شامل صفحه جدید گردد.

صفحه 16:
۳ Page Fo ‏سس تمس‎ 0 ted the Page 001 Figure 83 Operation of Paging and ‘Transtation Lookaside Butter (TLB) [FURHS7]

صفحه 17:
‘Secondary ‘Main Memory ‘Memory اه Load TLE hit Frame # Ontset Real Address ‘Virtual Address Page# | ofset ‘Translation Lookaside Buffer ‏جم‎ ‏نهم‎ ‎= ‎2 ‏لو‎ ‎Page Table ‘TLB miss 4 Page fault Figure 8.7 Use of a Translation Lookaside Buffer

صفحه 18:
رگ ری ۱۳۹

صفحه 19:
#هر چه سایز صفحات کوچکتر باشد: ؟ تکه تکه شدن داخلی کمتر است. * تعداد صفحات ف رآیند بیشتر است. © تعداد صفحات بیشتر به معنای جدول صفحه ی بز رگتر است. ؟ به عبارت دیگر» قسمتی از جدول صفحه در حافظه ی مجازی خواهد بود. # از طرفی» حافظه انویه طوری طراحی شده است که برای انتقال بل و کهای بز رگ داده مناسب است.

صفحه 20:
#اكر سايز صفحه کوچک باشد. تعداد زیادی از صفحات در حافظه اصلی هستند. در حین اجرا؛ صفحاتی که در حافظه قرار دارند شامل قسمتهایی از فرآیند هستند که اخیرا مورد ارجاع قرار گرفته اند. لذا خطاهای صفحه کم می شوند. #اگر سایز صفحه بز رگ باشد» هر صفحه حاوی محلهایی است که از ارجاعات فعلی دور هستند. لذا خطاهای صفحه افزایش می یابند.

صفحه 21:
Page Fault Rate (a) Page Ste (b) Number of Page Frames Allocated P= size of entire process W= working set size N= total number of pages in process Figure 8.11 ‘Typical Paging Behavior of a Program Page Fault Rate

صفحه 22:
صفحات با سایز متفاوت اجازه می دهند که از ۷!,68بصورت مؤثر استفاده گردد. از صفحات بزرگ برای ذخیره سازی دستورالعمل کدهای برنامه استفاده می شود. ؟ از صفحات کوچک برای نخها استفاده می گردد. اکثر سیستم عاملها فقط از یک سایز صفحه پشتیبانی می کنند.

صفحه 23:
۱ Puge Gites Table 8.2. Example Page Sizes Computer Page Size ‘Atlas 512 48-bit words Heaeywell-Multies 1024 36-bit weed IBM Z70/KA and 370/ESA 4 Kbyter VAX family 512 bytes IBM As/400 S12 bytes DEC Alpha 8 Kbytes MES 4 byes to 16 Mbytes UkraSPARC 8 Kbytes tod Mbytes Petia, 4 Kbyres ord Mbytes PowerPe 4 Kbytes

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

صفحه 25:
Branch instruction inot allowed) Reference to data (allowed) Reference to data (not allowed) Figure 8.14 Protection Relationships Between Segments

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

صفحه 27:
Virtual Address Segment Numer Segment Table Eatry ‎Length | ___ segment Base‏ سنن" ‎(b) Segmentation only ‎Figure 8.2 Typical Memory Management Formats ‎

صفحه 28:
Segmentation Mechanism

صفحه 29:
تکنیک صفحه بندی از دید برنامه نویس پنهان است. صفحه بندی تکه تکه شدن خارجی را حذف می کند. قطعه بندی برای برنامه نویس قابل مشاهده است. مزایای قطعه بندی پشتیبانی از ساختارهای داده در حال گسترش, ‎ESI cal‏ حفاظت و برنامه نویسی ماژولار است. #هر قطعه به صفحات با سایز ثابت تقسیم می گردد.

صفحه 30:
۳) لحن كصااك امد دوج 85 ‎Ore al‏ Virtual Address ل لعا ]| ] Segment Table Entry [osercontce mits] Length [Segment Base 7 Page Table Entry ‎Pz present bit‏ | ناداتسا ‎M-= Modified bit (©) Combined segmentation and paging ‎Figure 8.2 Typical Memory Management Formats ‎

صفحه 31:
۵ 85 PAC SLC ‏جه ة1)‎ 34

صفحه 32:
#سیاست واکشی " مشخص می کند که چه موقع يكك صفحه باید به حافظه آورده شود. *صفحه بندی بر اساس تقاضا فقط وقتی صفحات را به حافظه می آورد که یک ارجاع به محلی در آن صفحه داده می شود. * لذا در هنكام شروع فرآیند شاهد تعداد زیادی خطای صفحه خواهیم بود. تکنیک پیش صفحه بندی بیشتر از حد نیاز صفحه بار می کند. ؟اگر صفحات مجاور در دیسک سخت را بارگذاری کنیم موثرتر خواهد بود.

صفحه 33:
#سیاست جایگزینی * هنگام پر شدن حافظه کدام صفحه را جایگزین کنیم. * صفحه اى كه حذف می شود باید صفحه ای باشد که احتمال مراجعه به آن در آینده نزدیکك کمتر است. *اکثر سیاستها سعی می کند از روی رفتار گذشته فرآیندها» رفتار آینده ی آنان را پیش بینی کنند.

صفحه 34:
؟قفل کردن قاب ؟ اگر قابی قفل شده است نباید جایگزین شود. هسته سيستم عامل * ساختارهاى كنترلى *بافرهاى ‎UO‏ * به هر قاب يكك بيت قفل نيز وصل مى كنيم.

صفحه 35:
۹ Choris #سیاست بهینگی * صفحه اى برای جایگزینی انتخاب می شود که زمان ارجاع بعدی به آن دور ترین است. ؟ آگاهی کامل از آینده امکان پذیر نیست.

صفحه 36:
۹ Choris ماس ‎Leost Reveuty Dsed (VLRO)‏ صفحه ای را که مدت طولانتری مورد ارجاع قرار نگرفته است را جایگزین کنید. بر اساس اصل محلی بودن ارجاعات این صفحه همان صفحه ای Z 5 ِ است که در آینده دورتری مورد ارجاع قرار می گیرد. “هر صفحه بايد دارای یک برچسب باشد که در زمان آخرین ارجاعی که به آن شده تنظیم شده است. لذا به سربار زیادی خواهیم داشت.

صفحه 37:
۹ Choris CIPO) cut? * قابهایی که به فرآیند اختصاص داده شده است را بصورت یک بافر حلقوی در نظر می گیرد. * صفحات بصورت ۲۷۱۵۳ جایگزین می گردند. ؟ از لحاظ پیاده سازی ساده ترین سیاست جایگزینی است. *صفحه ای که مدت بیشتری در حافظه بوده است. کاندید جایگزینی است. ۴ یکی از عیوب این روش این است که این صفحه ممکن است بزودی مورد استفاده قرار گیرد.

صفحه 38:
۹ Choris سیانست:ساعت: * به هر قاب يكك بيت استفاده منتسب مى كنيم. * هنكامى كه صفحه براى اولين بار وارد حافظه مى شود بيت استفاده صفر است. © وقتی که صفحه مورد ارجاع قرار می گیرد؛ بیت استفاده یک مى كردد. * وقتی که به جایگزینی نیاز باشده با کمک یک اشاره گر بافر را میگردیم. * اولین صفحه ای که در مسیر ما بیت استفاده آن صفر باشدهبرای جایگزینی انتخاب می ای استفاده صفحاتی که در مسیر جستجوی ما قرار می گیرند به صفر تبدیل saa * اشاره گر نیز هميشه به قاب بعدی (بعد از قاب جایگزین شده) اشاره می کند.

صفحه 39:
First frame in circular buffer of frames that are candidates for replacement page 13 ‏دعس‎ 0 page 33 use = 1 7 page 67 ue=1 6 {a) State of buffer just prior toa page replacement 5 Figure 8.16 Example of Clock Policy Operation

صفحه 40:
{b) State of buffer just after the next page replacement Figure 8.16 Example of Clock Policy Operation

صفحه 41:
‎(area 0‏ ادعو جه برج 18) ی ‎Cowpurisva‏ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 42:
از اینجا به بعد تدریس نشده است.

صفحه 43:
۹ Choris 5 ت زیر بگرین ش از دو ل ۱ که قرار است جایگزین شود به یکی از دو لیست صفحه ای : گرد فحه تفیبر نکرده باشد. ‎a wip ne Pigs oe‏ 1 تست یافته: اگر صفحه تغیبر نکرده باشد. #لست مد ف صفحه ارد. * يعنى سيستم عامل دو بافر دار یعنی سپ

صفحه 44:
۱۹ lo lpi cs tc 8 © * به هر فرآیند تعداد ثابتى از صفحات براى اجرا داده ميكردد. ؟اگر خطای صفحه رخ دهد يكى از صفحات آن فرآيند جايكزين فى شود. © 5 ‎FE SOROS‏ " در مدت حیات فرآیند؛ تعداد صفحاتی که به آن تخصیص داده شده تغییر می کند.

صفحه 45:
0 عمصست ا0۲) رمشمس) دنو از لحاظ پیاده سازی ساده ترین است. #اکثر سیستم عاملها از این روش استفاده می کنند. © سيستم عامل ليستى از قابهای خالی را نگهداری می کند. #وقتی که یک خطای صفحه رخ دهد یکی از قابهای خالی به آن داده می شود. ؟ اگر قاب خالى وجود نداشت. يكك قاب از دیگر فرآیندها برای جایگزینی انتخاب می گردد.

صفحه 46:
0 ل ل 20 گوقتی که یک فرآیند جدید اضافه شود با توجه به نوع کاربرد؛ درخواست فرآیند و یا دیگر معیارها تعدادی قاب به آن اختصاص داده می گردد. #هنگام وقوع خطای صفحه از مجموعه مقیم فرآیندی که عامل خطا است» صفحه ای برای جایگزینی انتخاب می گردد. #اندازه قابهای تخصیص يافته به ف رآیند می تواند در طول زمان تغییر نماید.

صفحه 47:
# پا کسازی بر اساس تقاضا " صفحه ای که تغییر کرده است فقط هنگام جایگزینی در حافظه ثانویه نوشته می گردد. 5 e ‏پیش پاکسازی‎ ‏صفحات بصورت دسته ای در حافظه انوبه نوشته می گردند.‎ *

صفحه 48:
روش بهتر استفاده از بافر صفحه است: * صفحات جایگزین شده در دو لیست قرار می گیرند: * تغيير كرده و تغيير نكرده * صفحاتى كه در ليست تغبير يافقه هستند» بصورت متناوب و دسته ای در حافظه انویه نوشته می شوند. " صفحاتی که در لیست تغییر یافته هستند. یا دوباره فراخوانی می شوند یا از دست می روند (وقتی که قاب مربوطه به یک فرآیند دیگر داده شود).

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

صفحه 50:
* فرآیند با کمترین اولویت * فرآیند تولید کننده خطا * مجموعه كارى مورد نياز اين فرآيند در حافظه نیست» پس آن را مسدود کنید. آخرین فرآیندی که فعال شده " احتمال اینکه مجموعه کاری این فر آیند مقیم باشد. کمتر است. * فرآیندی که مجموعه مقیم آن کوچکتر است * درآینده به کار کمتری برای فراخوانی مجدد آن نیاز داریم. * فرآیندی که مجموعه مقیم آن بزرگتر است * تعداد قابهای خالی بیشتری بدست می آوریم. * فرآیندی که پنجره اجرای باقیمانده آن بزرگتر است.

Virtual Memory فصل هشتم Hardware and Control Structures در زمان اجرا ارجاعات به حافظه بصورت دینامیک ترجمه می شوند. بدلیل وجود مسئله جابجایی ،فرآیند ممکن است در جاهای مختلفی از حافظه قرار گیرد. ممکن است یک برنامه را به تکه های مختلف شکسته باشیم و نیازی نباشد که این تکه ها در حافظه در کنار هم قرار بگیرند. نیازی نیست که تمام تکه های برنامه در حال اجرا ،وارد حافظه شوند. Execution of a Program سیستم عامل چند تکه از برنامه را برای اجرا به حافظه اصلی می آورد. مجموعه مقیم :قسمتی از برنامه که داخل حافظه اصلی است. وقتی که به آدرسی نیاز داشته باشیم که در حافظه اصلی نباشد یک وقفه تولید می گردد. سپس ،سیستم عامل فرآیند را مسدود می کند. قسمت مورد نیاز که حاوی آدرس منطقی تولید شده است وارد حافظه می گردد. سیستم عامل یک درخواست I/Oخواندن دیسک را صادر می کند. مادامی که درخواست I/Oتکمیل نشده است ،برنامه دیگری برای اجرا فرستاده می شود. وقتی درخواست آماده شد ،یک وقفه صادر می شود که باعث می شود سیستم عامل فرآیند مسدود شده را به حالت آماده برگرداند. Advantages of Breaking up a Process فرآیندهای بیشتری وارد حافظه اصلی می شوند. چون فقط تکه هایی از هر فرآیند به حافظه آورده شده است. لذا احتمال اینکه همیشه یک فرآیند در وضعیت آماده اجرا باشد بیشتر است. ممکن است فرآیند از حافظه اصلی بزرگتر باشد. Types of Memory حافظه واقعی حافظه اصلی حافظه مجازی حافظه روی دیسک امکان چند برنامگی را فرآهم می کند و کاربر را از محدودیت های حافظه اصلی نجات میدهد. Thrashing کوبیدگی به جابجایی قسمتی از برنامه درست قبل از وقتی که به آن نیاز داریم گفته می شود. در این حالت بیشتر وقت پردازنده به جای اجرای دستورات کاربر صرف جابجایی تکه ها می شود. Principle of Locality ارجاعات به کد برنامه و داده در فرآیند بصورت خوشه ای است. در یک دوره کوتاه زمانی ،تعداد کمی از تکه های فرآیند مورد استفاده قرار می گیرند. لذا ،می توان فهمید که در آینده نزدیک به کدام تکه ها نیاز خواهیم داشت و از کوبیدگی اجتناب کرد. این مسئله موید این مطلب است که حافظه مجازی بطور موثر کار می کند. Support Needed for Virtual Memory سخت افزار باید از صفحه بندی و قطعه بندی حمایت کند. سیستم عامل باید قادر به حرکت دادن صفحات و قطعه ها بین حافظه اصلی و جانبی باشد. Paging هر فرآیند دارای یک جدول صفحه است. هر ردیف جدول صفحه شامل شماره قاب معادل در حافظه اصلی است. یک بیت نیز وجود دارد که مبین حضور یا عدم حضور صفحه در حافظه اصلی است. Modify Bit in Page Table یک بیت کنترلی دیگر ،نیاز است که مشخص می کند که آیا صفحه موجود در حافظه اصلی در حین اجرا تغییر کرده است یا نه. اگر صفحه تغییر نکرده بود ،نیازی نیست که هنگام جایگزینی صفحه در حافظه جانبی نوشته شود. Page Table Entries Page Tables ممکن است که جدول صفحه خیلی بزرگ باشد و نگهداری آن در حافظه اصلی مقدور نباشد. در این حالت جدول صفحه نیز در حافظه جانبی نگهداری می شود. وقتی که فرآیند اجرا می شود قسمتی از جدول صفحه ی آن در حافظه اصلی قرار می گیرد. Translation Lookaside Buffer هر ارجاع به حافظه ی مجازی ممکن است که به دو ارجاع به حافظه ی جانبی منجر شود: یکی برای واکشی جدول صفحه و بعدی برای واکشی داده برای غلبه بر این مشکل ،از یک حافظه ی نهان سریع برای نگهداری ردیفهای جدول صفحه استفاده می شود. این حافظه نهان TLBنامیده شده است. TLB شامل ردیفهایی از جدول صفحه است که اخیرا به آنها ارجاع شده است. مثل حافظه ی نهان عمل می کند. Translation Lookaside Buffer وقتی یک آدرس منطقی به دست پردازنده می رسد ،ابتدا TLBرا چک می کند. اگر ردیفی وجود داشت ( ، )a hitشماره ی قاب متناظر با شماره ی صفحه برداشته می شود. اگر ردیف متناظر در TLBوجود نداشت ( ، )a missاز شماره ی صفحه برای ایندکس کردن جدول صفحه استفاده می کنیم. ابتدا وجود جدول صفحه در حافظه اصلی چک می شود. اگر وجود نداشت خطای صفحه تولید می شود. اگر وجود داشت TLB ،تازه می شود تا شامل صفحه جدید گردد. TLB and Cache Page Size هر چه سایز صفحات کوچکتر باشد: تکه تکه شدن داخلی کمتر است. تعداد صفحات فرآیند بیشتر است. تعداد صفحات بیشتر به معنای جدول صفحه ی بزرگتر است. به عبارت دیگر ،قسمتی از جدول صفحه در حافظه ی مجازی خواهد بود. از طرفی ،حافظه ثانویه طوری طراحی شده است که برای انتقال بلوکهای بزرگ داده مناسب است. Page Size اگر سایز صفحه کوچک باشد ،تعداد زیادی از صفحات در حافظه اصلی هستند .در حین اجرا ،صفحاتی که در حافظه قرار دارند شامل قسمتهایی از فرآیند هستند که اخیرا مورد ارجاع قرار گرفته اند .لذا خطاهای صفحه کم می شوند. اگر سایز صفحه بزرگ باشد ،هر صفحه حاوی محلهایی است که از ارجاعات فعلی دور هستند .لذا خطاهای صفحه افزایش می یابند. Page Size صفحات با سایز متفاوت اجازه می دهند که از TLBبصورت مؤثر استفاده گردد. از صفحات بزرگ برای ذخیره سازی دستورالعمل کدهای برنامه استفاده می شود. از صفحات کوچک برای نخها استفاده می گردد. اکثر سیستم عاملها فقط از یک سایز صفحه پشتیبانی می کنند. Example Page Sizes Segmentation قطعات دارای سایز مختلف هستند( .اندازه ی دینامیک) انتظارات ساختارهای داده در حال گسترش را به سادگی برآورده می کند. اجازه می دهد که برنامه ها بصورت مستقل تغییر یابند و کامپایل شوند. به راحتی با اشتراک داده بین فرآیندها کنار می آید. به آسانی مسأله حفاظت را حل می کند. Segment Tables قطعه متناظر را در حافظه اصلی نشان می دهد. هر ردیف طول قطعه را نیز مشخص می کند. یک بیت نیز نشان می دهد که آیا قطعه در حافظه اصلی است یا نه؟ یک بیت دیگر نیز مشخص می کند که آیا قطعه از زمان حضور (بارگذاری) در حافظه تا کنون تغییر کرده است یا نه؟ Segment Table Entries Segmentation combined Paging and Segmentation تکنیک صفحه بندی از دید برنامه نویس پنهان است. صفحه بندی تکه تکه شدن خارجی را حذف می کند. قطعه بندی برای برنامه نویس قابل مشاهده است. مزایای قطعه بندی پشتیبانی از ساختارهای داده در حال گسترش ،استراک ،حفاظت و برنامه نویسی ماژوالر است. هر قطعه به صفحات با سایز ثابت تقسیم می گردد. Combined Segmentation and Paging Combined Segmentation and Paging Fetch Policy سیاست واکشی مشخص می کند که چه موقع یک صفحه باید به حافظه آورده شود. صفحه بندی بر اساس تقاضا فقط وقتی صفحات را به حافظه می آورد که یک ارجاع به محلی در آن صفحه داده می شود. لذا در هنگام شروع فرآیند شاهد تعداد زیادی خطای صفحه خواهیم بود. تکنیک پیش صفحه بندی بیشتر از حد نیاز صفحه بار می کند. اگر صفحات مجاور در دیسک سخت را بارگذاری کنیم موثرتر خواهد بود. Replacement Policy سیاست جایگزینی هنگام پر شدن حافظه کدام صفحه را جایگزین کنیم. صفحه ای که حذف می شود باید صفحه ای باشد که احتمال مراجعه به آن در آینده نزدیک کمتر است. اکثر سیاستها سعی می کند از روی رفتار گذشته فرآیندها ،رفتار آینده ی آنان را پیش بینی کنند. Replacement Policy قفل کردن قاب اگر قابی قفل شده است نباید جایگزین شود. هسته سیستم عامل ساختارهای کنترلی بافرهای I/O به هر قاب یک بیت قفل نیز وصل می کنیم. Basic Replacement Algorithms سیاست بهینگی صفحه ای برای جایگزینی انتخاب می شود که زمان ارجاع بعدی به آن دور ترین است. آگاهی کامل از آینده امکان پذیر نیست. Basic Replacement Algorithms سیاست )Least Recently Used (LRU صفحه ای را که مدت طوالنتری مورد ارجاع قرار نگرفته است را جایگزین کنید. بر اساس اصل محلی بودن ارجاعات ،این صفحه همان صفحه ای است که در آینده دورتری مورد ارجاع قرار می گیرد. هر صفحه باید دارای یک برچسب باشد که در زمان آخرین ارجاعی که به آن شده ،تنظیم شده است .لذا به سربار زیادی خواهیم داشت. Basic Replacement Algorithms سیاست ()FIFO قابهایی که به فرآیند اختصاص داده شده است را بصورت یک بافر حلقوی در نظر می گیرد. صفحات بصورت round-robinجایگزین می گردند. از لحاظ پیاده سازی ساده ترین سیاست جایگزینی است. صفحه ای که مدت بیشتری در حافظه بوده است ،کاندید جایگزینی است. یکی از عیوب این روش این است که این صفحه ممکن است بزودی مورد استفاده قرار گیرد. Basic Replacement Algorithms سیاست ساعت به هر قاب یک بیت استفاده منتسب می کنیم. هنگامی که صفحه برای اولین بار وارد حافظه می شود بیت استفاده صفر است. وقتی که صفحه مورد ارجاع قرار می گیرد ،بیت استفاده یک می گردد. وقتی که به جایگزینی نیاز باشد ،با کمک یک اشاره گر بافر را میگردیم. اولین صفحه ای که در مسیر ما بیت استفاده آن صفر باشد،برای جایگزینی انتخاب می گردد. اما بیتهای استفاده صفحاتی که در مسیر جستجوی ما قرار می گیرند به صفر تبدیل میگردند. اشاره گر نیز همیشه به قاب بعدی (بعد از قاب جایگزین شده) اشاره می کند. Comparison of Replacement Policies از اینجا به بعد تدریس نشده است. Basic Replacement Algorithms بافر صفحه صفحه ای که قرار است جایگزین شود به یکی از دو لیست زیر منتقل می گردد: لیست صفحات خالی :اگر صفحه تغییر نکرده باشد. لیست صفحات تغییر یافته :اگر صفحه تغییر نکرده باشد. یعنی سیستم عامل دو بافر صفحه دارد. Resident Set Size تخصیص ثابت: به هر فرآیند تعداد ثابتی از صفحات برای اجرا داده میگردد. اگر خطای صفحه رخ دهد ،یکی از صفحات آن فرآیند جایگزین می شود. تخصیص متغییر در مدت حیات فرآیند ،تعداد صفحاتی که به آن تخصیص داده شده تغییر می کند. Variable Allocation, Global Scope از لحاظ پیاده سازی ساده ترین است. اکثر سیستم عاملها از این روش استفاده می کنند. سیستم عامل لیستی از قابهای خالی را نگهداری می کند. وقتی که یک خطای صفحه رخ دهد ،یکی از قابهای خالی به آن داده می شود. اگر قاب خالی وجود نداشت ،یک قاب از دیگر فرآیندها برای جایگزینی انتخاب می گردد. Variable Allocation, Local Scope وقتی که یک فرآیند جدید اضافه شود ،با توجه به نوع کاربرد، درخواست فرآیند و یا دیگر معیارها تعدادی قاب به آن اختصاص داده می گردد. هنگام وقوع خطای صفحه ،از مجموعه مقیم فرآیندی که عامل خطا است ،صفحه ای برای جایگزینی انتخاب می گردد. اندازه قابهای تخصیص یافته به فرآیند می تواند در طول زمان تغییر نماید. Cleaning Policy پاکسازی بر اساس تقاضا صفحه ای که تغییر کرده است فقط هنگام جایگزینی در حافظه ثانویه نوشته می گردد. پیش پاکسازی صفحات بصورت دسته ای در حافظه ثانویه نوشته می گردند. Cleaning Policy روش بهتر استفاده از بافر صفحه است: صفحات جایگزین شده در دو لیست قرار می گیرند: تغییر کرده و تغییر نکرده صفحاتی که در لیست تغییر یافته هستند ،بصورت متناوب و دسته ای در حافظه ثانویه نوشته می شوند. صفحاتی که در لیست تغییر نیافته هستند ،یا دوباره فراخوانی می شوند یا از دست می روند (وقتی که قاب مربوطه به یک فرآیند دیگر داده شود). Load Control کنترل بار عبارت است از مشخص کردن تعداد فرآیند های مقیم در حافظه اصلی. اگر کم باشد :موقیعتهایی زیادی پیش می آید که تمام فرآیندها مسدود هستند و وقت پردازنده صرف جابجایی فرآیند ها می شود. اگر تعداد فرآیندها زیاد باشد :احهتمال وقوع پدیده کوبیدگی زیاد می شود. Process Suspension فرآیند با کمترین اولویت فرآیند تولید کننده خطا مجموعه کاری مورد نیاز این فرآیند در حافظه نیست ،پس آن را مسدود کنید. آخرین فرآیندی که فعال شده احتمال اینکه مجموعه کاری این فرآیند مقیم باشد ،کمتر است. فرآیندی که مجموعه مقیم آن کوچکتر است درآینده به کار کمتری برای فراخوانی مجدد آن نیاز داریم. فرآیندی که مجموعه مقیم آن بزرگتر است تعداد قابهای خالی بیشتری بدست می آوریم. فرآیندی که پنجره اجرای باقیمانده آن بزرگتر است.

51,000 تومان