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