صفحه 1:
صفحه 2:
فص مر و 2 4
# در زمان اجرا ارجاعات به حافظه بصورت پویا ترجمه ميشوند.
* بدلیل وجود مسئله جابجایی؛ فرآیند ممکن است در جاهای مختلفی
از حافظه قرار گیرد.
؟ نیازی نیست که تمام تکه های برنامه در حال اجراء وارد حافظه
شوند.
صفحه 3:
رصم 1
© سيستم عامل چند تکه از برنامه را برای اجرا به حافظه اصلی می آورد.
* مجموعه مقیم: قسمتی از برنامه که داخل حافظه اصلی است.
وقتی که به آدرسی نیاز داشته باشیم که در حافظه اصلی نباشد یکک وقفه
تولید می گردد.
* سپس سیستم عامل فرآیند را مسدود می کند.
؟ تکه مورد نیاز که حاوی آدرس منطقی تولید شده است وارد حافظه می گردد.
صفحه 4:
ra cec اا
فرآیندهای بیشتری وارد حافظه اصلی می شوند.
* ممكن است فرآيند از حافظه اصلی بزر گتر باشد.
صفحه 5:
© حافظه واقعى
* حافظه اصلى
©حافظه مجازى
* حافظه روى ديسكك
* امكان جند برنامكى را فراهم مى كند و كاربر را از محدوديت هاى
حافظه اصلى نجات ميدهد.
صفحه 6:
* جابجایی قسمتی از برنامه درست قبل از وقتی که به آن نیاز
mle
#بیشتر وقت پردازنده به جای اجرای دستورات کاربر صرف
جابجایی تکه ها می شود.
صفحه 7:
۱ ed cdl ema Odea ea Da
#ارجاعات به کد برنامه و داده در فر آیند بصورت خوشه ای
در یک دوره کوتاه زمانی» تعداد کمی از تکه های فر آیند
مورد استفاده قرار می گیرند.
*لذاء می توان فهمید که در آینده نزدیک به کدام تکه ها نیاز
خواهیم داشت و از کوبید گی اجتناب کرد.
صفحه 8:
3 ee 0 (errata
© سخت افزار باید از صفحه بندی و قطعه بندی حمایت کند.
© سيستم عامل بايد قادر به حرکت دادن صفحات و قطعه ها بین
حافظه اصلی و جانبی باشد.
صفحه 9:
#هر فرآیند دارای یک جدول صفحه است.
#هر ردیف جدول صفحه شامل شماره قاب معادل در حافظه
اصلی است.
۳ we e
يكك بيت نيز وجود دارد كه مبين حضور يا عدم حضور صفحه
در حافظه اصلى است.
صفحه 10:
4 aid Delo ca
# یک بیت کنترلی دیگر نیاز است که مشخص می کند که آیا
صفحه موجود در حافظه اصلی در حین اجرا تغییر کرده است
يا نه.
#اگر صفحه تغییر نکرده بود نيازى نيست كه هنكام جایگزینی
صفحه در حافظه جانبی نوشته شود.
10
صفحه 11:
(acd NN ea ek oan et cca
Virtual Address
[_ Page Number___ | oftset_]
Page Table Entry
لد
(a) Paging only
Figure 8.2 Typical Memory Management Formats
11
صفحه 12:
‘Virtual Address
Frame #] Oftset
Page# | Oftset
once Page
Frame
Main Memory
Paging Mechanism
Program
Figure 8.3 Address Translation in a Paging System 5
صفحه 13:
#ممکن است که جدول صفحه خیلی بزرگ باشد و نگهداری
آن در حافظه اصلی مقدور نباشد.
#در این حالت جدول صفحه نیز در حافظه جانبی نگهداری می
شود.
*وقتى كه فرآيند اجرا مى شود قسمتی از جدول صفحه ی آن
در حافظه اصلی قرار می گیرد.
13
صفحه 14:
a een arin rac (phen a Bh ry od را مرر»
4-kbyte root
page table
page table
4-Gbyte user 7
address space اک |e | كك |
Figure 8.4 A Two-Level Hierarchical Page Table,
صفحه 15:
عرص”ا وده ادوج | Oeste
ld MAN ۵ ۴2 ۵۱۱۳۵۹۱ [2512
oo page able
توت
Program Paging Mechanism ‘Main Memory
Figure 8.5 Address Translation in a Two-Level Paging System 2
صفحه 16:
Virtual Address
۳۹۳۹
0
Controt
bits bits
function
Inverted Page Table
{one entry for each
physical memory frame)
Real Address
Figure 8.6 Inverted Page Table Structure 16
صفحه 17:
#هر ارجاع به حافظه ی مجازی به دو ارجاع به حافظه ی جانبی
17
منجر میشود.
#برای غلبه بر اين مشکل از یک حافظه ی نهان سریع برای
نگهداری ردیفهای جدول صفحه استفاده می شود.
”اين حافظه نهان 00ر1 ناميده شده است.
Ls DLO * دیفهاییاز جدولصفحه لستکه لخیرا به آنها ارجاع شده
cul
صفحه 18:
18
© وقتى يكك آدرس منطقى به دست يردازنده مى رسدء ابتدا Ly DL®
جكك مى AS
*اكر رديفى وجود داشت (19») » شماره ی قاب متناظر با شماره ی
صفحه برداشته می شود.
اگر ردیف متناظر در ۲۷6" وجود نداشت (ع ۰ از شماره ی
صفحه پرای ایند کس کردن جدول صفحه استفاده می کنیم.
© ابتدا وجود جدول صفحه در حافظه اصلی چک می شود.
* اگر وجود نداشت خطای صفحه تولید می شود.
* اگر وجود داشت. 06 تازه می شود تا شامل صفحه جدید گردد.
صفحه 19:
Return to
chk the TL أ رم
Beg wbie
7
ee
Page fat
handling routine
اناق مس که
6 اع مت
trom disk
1
CPU activates
VO hardware
1
1 1
ی CPU generates
ait memry physi address
Yes
Prom page
replacement
Page tbles
pasted
Figure 87 Operation of Paging and Translation Lookaside Buffer (TLB)
صفحه 20:
‘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 20
صفحه 21:
رگ ری ۱۳۹
21
صفحه 22:
#هر چه سایز صفحات کوچکتر باشد:
© تکه تکه شدن داخلی کمتر است.
* تعداد صفحات فر آیند بیشتر است.
* تعداد صفحات بیشتر به معنای جدول صفحه ی بزرگتر است.
به عبارت دیگر قسمتی از جدول صفحه در حافظه ی مجازی
خواهد بود.
22
صفحه 23:
#اكر سايز صفحه کوچک باشد. تعداد زیادی از صفحات در
حافظه اصلی هستند. در حین اجرا؛ صفحاتی که در حافظه قرار
دارند شامل قسمتهایی از فرآیند هستند که اخیرا مورد ارجاع
قرار گرفته اند. لذا خطاهای صفحه کم می شوند.
#اگر سایز صفحه بز رگ باشد» هر صفحه حاوی محلهایی است
که از ارجاعات فعلی دور هستند. لذا خطاهای صفحه افزایش
می یابند.
صفحه 24:
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
صفحه 25:
قطعات دارای اندازه های مختلف هستند. (اندازه ی پویا)
#اجازه می دهد که برنامه ها بصورت مستقل تغییر یابند و
کامپایل شوند.
#به راحتی با اشتراک داده بین فرآیندها کنار می آید.
#به آسانی مسأّله حفاظت را حل می کند.
25
صفحه 26:
* قطعه متناظر را در حافظه اصلی نشان می دهد.
هر ردیف طول قطعه را نیز مشخص می کند.
یک بیت نیز نشان می دهد که آیا قطعه در حافظه اصلی است
Sak
یک بیت دیگر نیز مشخص می کند که آیا قطعه از زمان
حضور (بار گذاری) در حافظه تا کنون تغییر کرده است با نه؟
صفحه 27:
(Crees اك ca ceed
Virtual Address
Segment Numer
ment Table Entry
Length | ___ segment Base سنن"
(b) Segmentation only
Figure 8.2 Typical Memory Management Formats
28
صفحه 28:
Segmentation Mechanism
29
صفحه 29:
OTe ا De
تکنیک صفحه بندی از دید برنامه نویس پنهان است.
# صفحه بندی تکه تکه شدن خارجی را حذف می کند.
# قطعه بندی برای برنامه نویس قابل مشاهده است.
# هر قطعه به صفحات با سایز ثابت تقسیم می گردد.
30
صفحه 30:
OTe ا De
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
صفحه 31:
32
DIE ARN PANT
= جه ة) لجن
34
صفحه 32:
Por Oirtuat (2 ددا د تاو 006
Table 8.4 Operating System Policies for Virtual Memory
Resident Set Management
Resident set size
Fixed
Variable
Replacement Scope
Global
Local
Cleaning Policy
Demand
Precleaning
Load Control
Degree of multiprogramming
33
Fetch Policy
Demand paging
Prepaging
Placement Policy
Replacement Policy
Basic Algorithms
Optimal
Least recently used (LRU)
First-in-first-out (FIFO)
Clock
Page Buffering
صفحه 33:
#سیاست واکشی
" مشخص می کند که چه موقع يكك صفحه بايد به حافظه آورده شود.
*صفحه بندی بر اساس تقاضا فقط وقتی صفحات را به حافظه می آورد
که یک ارجاع به محلی در آن صفحه داده می شود.
* لذا در هنكام شروع فرآیند شاهد تعداد زیادی خطای صفحه خواهیم بود.
تکنیک پیس صفحه بندى بيشتر از حد نیاز صفحه بار می کند.
؟۴اگر صفحات مجاور در دیسک سخت را بار گذاری کنیم موثرتر خواهد بود.
34
صفحه 34:
35
#سیاست جایگزینی
* هنگام پر شدن حافظه کدام صفحه را جایگزین کنیم.
* صفحه اى كه حذف می شود باید صفحه ای باشد که احتمال
مراجعه به آن در آینده نزدیکك کمتر است.
*اکثر سیاستها سعی می کند از روی رفتار گذشته فرآیندها» رفتار
آینده ی آنان را پیش بینی کنند.
صفحه 35:
ee ت نباید جایگزین شود.
؟ گر قابی قفل شده است نبا
*هسته سیستم عامل
۱ VO
ت قفل نیز متسب می کنیم. ea:
به هر قاب يكك بيت قفل نيز *
صفحه 36:
37
(Naa ۱3۱ ۱
#سیاست بهینه
* صفحه اى برای جایگزینی انتخاب می شود که زمان ارجاع بعدی به
آن دورترین است.
؟ آگاهی کامل از آینده امکان پذیر نیست.
صفحه 37:
(Naa ۱3۱ ۱
ماس Leost Reveuty Dsed (VLRO)
صفحه ای را که مدت طولانتری مورد ارجاع قرار نگرفته است را
جایگزین کنید.
بر اساس اصل محلی بودن ارجاعات این صفحه همان صفحه ای
Z 5 ِ
است که در آینده دورتری مورد ارجاع قرار می گیرد.
“هر صفحه بايد دارای یک برچسب باشد که در زمان آخرین
ارجاعی که به آن شده تنظیم شده است. لذا به سربار زیادی
خواهیم داشت.
38
صفحه 38:
39
(Naa ۱3۱ ۱
(CIPO) cot?
قابهایی که به فرآیند اختصاص داده شده است را بصورت یک بافر "
حلقوی در نظر می گیرد.
؟ از لحاظ پیاده سازی ساده ترین سیاست جایگزینی است.
*صفحه ای که مدت بیشتری در حافظه بوده است. کاندید جایگزینی
* يكى از عيوب اين روش اين است كه اين صفحه ممكن است
بزودى مورد استفاده قرار كيرد.
صفحه 39:
40
2 امه لمظ) ۱۹ ea as eed
سیانست:ساعت:
* به هر قاب يكك بيت استفاده منتسب مى كنيم.
* هنكامى كه صفحه براى اولين بار وارد حافظه مى شود بيت استفاده صفر است.
© وقتی که صفحه مورد ارجاع قرار می گیرد؛ بیت استفاده یک مى كردد.
* وقتی که به جایگزینی نیاز باشده با کمک یک اشاره گر بافر را میگردیم.
* اولین صفحه ای که در مسیر ما بیت استفاده آن صفر باشدهبرای جایگزینی انتخاب می
ای استفاده صفحاتی که در مسیر جستجوی ما قرار می گیرند به صفر تبدیل
saa
* اشاره گر نیز هميشه به قاب بعدی (بعد از قاب جایگزین شده) اشاره می کند.
صفحه 40:
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
41
صفحه 41:
42
(b) State of buffer just after the next page replacement
Figure 8.16 Example of Clock Policy Operation
صفحه 42:
IEA Au ROR Lea cd ذه
43
صفحه 43:
44
(Naa ۱3۱ ۱
#بافر کردن صفحه
*صفحه ای که قرار است جایگزین شود به یکی از دو لیست زیر
منتقل می گردد:
* ليست صفحات خالی: اگر صفحه تغییر نکرده باشد.
* ليست صفحات تغيير يافته: اكر صفحه تغيير كرده باشد.
؟ یعنی سیستم عامل دو بافر صفحه دارد.
صفحه 44:
45
۱۹ lo lpi cs
scot oi
* به هر فرآیند تعداد ابتی از صفحات برای اجرا داده ميشود.
؟اگر خطای صفحه رخ دهد یکی از صفحات آن ف رآیند جایگزین
بت:
فى شود.
558 #8
" در مدت حیات فرآیند؛ تعداد صفحاتی که به آن تخصیص داده
شده تغییر می کند.
صفحه 45:
46
عمصست ا0۲) رمشمس) دنو
از لحاظ پیاده سازی ساده ترین است.
#اکثر سیستم عاملها از این روش استفاده می کنند.
سیستم عامل لیستی از قابهای خالی را نگهداری می کند.
#وقتی که یک خطای صفحه رخ دهد یکی از قابهای خالی به
آن داده می شود.
#اكر قاب خالی وجود نداشت» یکک قاب از دیگر فرآیندها برای
جایگزینی انتخاب می گردد.
صفحه 46:
47
ل ل 20
* وقتى كه يكك فرآيند جديد اضافه شوده با توجه به نوع كاربرد»
درخواست فرآیند و یا دیگر معیارها تعدادی قاب به آن
اختصاص داده می گردد.
© هنكام وقوع خطای صفحه از مجموعه مقیم فرآیندی که عامل
خطا است» صفحه اى براى جايكزينى انتخاب مى گردد.
#اندازه قابهاى تخصيص يافته به فرآيند مى تواند در طول زمان
تغيير نمايد.
صفحه 47:
# پا کسازی بر اساس تقاضا
" صفحه ای که تغییر کرده است فقط هنگام جایگزینی در حافظه
ثانویه نوشته می گردد.
5 e
پیش پاکسازی
صفحات بصورت دسته ای در حافظه انوبه نوشته می گردند. *
48
صفحه 48:
روش بهتر استفاده از بافر صفحه است:
* صفحات جایگزین شده در دو لیست قرار می گیرند:
تغيير كرده و تغيير نكرده
* صفحاتى كه در ليست تغبير يافقه هستند» بصورت متناوب و دسته
اى در حافظه ثانويه نوشته مى شوند.
" صفحاتی که در لیست تغییر یافته هستند. یا دوباره فراخوانی می
شوند یا از دست می روند (وقتی که قاب مربوطه به یک فرآیند
دیگر داده شود).
49
صفحه 49:
50
© كنترل بار عبارت است از مشخص كردن تعداد فرآیند های
مقیم در حافظه اصلی.
؟اگر کم باشد: موقیعتهایی زیادی پیش می آید که تمام
فرآ یندها مسدود هستند و وقت پردازنده صرف جابجایی
فرآیند ها می شود.
اگر تعداد فرآیندها زیاد باشد: احهتمال وقوع پدیده کویید گی
زیاد می شود.
صفحه 50:
51
* فرآيند با كمترين اولويت
* فرآيند توليد كننده خطا
* مجموعه كارى مورد نياز اين فرآيند در حافظه نيست» يس Ly OT مسدود كنيد.
© آخرين فرآيندى كه فعال شده
" احتمال اینکه مجموعه کاری این فر آیند مقیم باشد. کمتر است.
* فرآیندی که مجموعه مقیم آن کوچکتر است
* درآینده به کار کمتری برای فراخوانی مجدد آن نیاز داریم.
* فرآیندی که مجموعه مقیم آن بزرگتر است
* تعداد قابهای خالی بیشتری بدست می آوریم.
* فرآیندی که پنجره اجرای باقیمانده آن بزرگتر است.