‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مدرس‬:
‫شیرافکن‬ ‫فرشید‬
‫تهران‬ ‫دانشگاه‬ ‫دکتری‬ ‫دانشجوی‬
(‫ارشد‬ ‫کارشناسی‬ ‫و‬ ‫کارشناسی‬:‫افزار‬ ‫نرم‬ ‫کامپیوتر‬( )‫دکتری‬:‫انفورماتیک‬ ‫بیو‬)
‫عامل‬ ‫های‬ ‫سیستم‬
1
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
2
‫فصل‬‫ششم‬:
‫مدیریت‬‫حافظه‬
(‫دوم‬ ‫بخش‬:‫مجازی‬ ‫حافظه‬)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مجازی‬ ‫حافظه‬
‫حافظه‬‫مجازی‬‫تکنیکی‬‫است‬‫که‬‫موجب‬‫می‬‫شود‬‫فرایند‬‫بدون‬‫اینکه‬‫کامال‬‫در‬‫حافظه‬‫باشد‬‫اجرا‬‫گردد‬.
‫با‬‫استفاده‬‫از‬‫این‬،‫تکنیک‬‫می‬‫توان‬‫برنامه‬‫ای‬‫بزرگتر‬‫از‬‫حافظه‬‫فیزیکی‬‫را‬‫اجرا‬‫کرد‬.
‫حافظه‬‫مجازی‬‫چندبرنامگی‬‫را‬‫به‬‫صورت‬‫موثری‬‫ممکن‬‫سازد‬‫می‬‫و‬‫کاربر‬‫را‬‫از‬‫محدودیت‬‫های‬‫حافظه‬‫اصلی‬‫رها‬‫کند‬‫می‬.
3
‫به‬‫کمک‬‫حافظه‬‫مجازی‬‫دیگر‬‫لزومی‬‫ندارد‬‫تمام‬‫ها‬‫صفحه‬(‫یا‬‫های‬‫قطعه‬)‫یک‬‫فرایند‬‫در‬‫حال‬،‫اجرا‬‫در‬‫حافظه‬‫اصلی‬‫قرار‬‫داش‬‫ته‬
‫باشند‬‫و‬‫در‬‫ابتدا‬‫یک‬‫یا‬‫چند‬‫تکه‬‫حاوی‬‫آغاز‬،‫برنامه‬‫توسط‬‫سیستم‬‫عامل‬‫به‬‫حافظه‬‫آورده‬‫شود‬‫می‬.
‫حافظه‬،‫مجازی‬‫حافظه‬‫منطقی‬‫کاربر‬‫را‬‫از‬‫حافظه‬‫فیزیکی‬‫تفکیک‬‫می‬‫کند‬.
‫این‬‫تفکیک‬‫موجب‬‫می‬‫شود‬‫در‬‫حالتی‬‫که‬‫حافظه‬‫فیزیکی‬‫کم‬،‫است‬‫حافظه‬‫مجازی‬‫بزرگی‬‫برای‬‫برنامه‬‫نویس‬‫فراهم‬‫شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫حافظه‬،‫مجازی‬‫برنامه‬‫نویسی‬‫را‬‫ساده‬‫می‬،‫کند‬‫زیرا‬‫برنامه‬‫نویس‬‫نگران‬‫حافظه‬‫فیزیکی‬‫و‬‫کد‬‫جایگ‬‫ذاری‬‫نمی‬
‫باشد‬.
‫اگر‬‫در‬‫حین‬‫اجرا‬‫به‬‫آدرسی‬‫رجوع‬‫شود‬‫که‬‫در‬‫مجموعه‬‫مقیم‬‫در‬‫حافظه‬،‫نباشد‬‫یک‬‫وقفه‬‫ایجاد‬‫شود‬‫می‬‫و‬‫ا‬‫ین‬
‫فرایند‬‫مسدود‬‫شود‬‫می‬‫و‬‫تکه‬‫مورد‬‫نظر‬‫وارد‬‫حافظه‬،‫شود‬‫می‬‫سپس‬‫کنترل‬‫دوباره‬‫به‬‫سیستم‬‫عامل‬‫ب‬‫ر‬
‫گردد‬‫می‬‫و‬‫فرایند‬‫مسدود‬‫را‬‫به‬‫حالت‬‫آماده‬‫برمی‬‫گرداند‬.
‫به‬‫بخشی‬‫از‬‫فرایند‬‫که‬ً‫ا‬‫واقع‬‫داخل‬‫حافظه‬‫اصلی‬‫قرار‬،‫دارد‬‫مجموعه‬‫مقیم‬‫گویند‬‫می‬.
4
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مجازی‬ ‫حافظه‬ ‫بودن‬ ‫موثر‬ ‫برای‬ ‫الزم‬ ‫عناصر‬
1-‫حمایت‬‫سخت‬‫افزاری‬‫برای‬‫به‬‫کارگیری‬‫صفحه‬‫بندی‬(‫یا‬‫قطعه‬‫بندی‬)
2-‫حمایت‬‫نرم‬‫افزاری‬‫برای‬‫انتقال‬‫ها‬‫صفحه‬(‫یا‬‫ها‬‫قطعه‬)‫بین‬‫حافظه‬‫ثانوی‬‫و‬‫حافظه‬‫اصلی‬.
5
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مجازی‬ ‫حافظه‬ ‫سازی‬ ‫پیاده‬ ‫های‬ ‫روش‬
1-‫درخواستی‬ ‫بندی‬ ‫صفحه‬(Demand Paging)
2-‫درخواستی‬ ‫بندی‬ ‫قطعه‬(Demand Segmentation)
3-‫شده‬ ‫بندی‬ ‫صفحه‬ ‫بندی‬ ‫قطعه‬(Hybrid Paging and Segmentation)
6
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫درخواستی‬ ‫بندی‬ ‫صفحه‬
‫در‬‫صفحه‬‫بندی‬‫برای‬‫حافظه‬‫مجازی‬(‫صفحه‬‫بندی‬‫درخواستی‬)،‫مانند‬‫صفحه‬‫بندی‬‫س‬،‫اده‬
‫حافظه‬‫اصلی‬‫به‬‫های‬‫تکه‬‫هم‬‫اندازه‬‫به‬‫نام‬‫قاب‬(fram)‫و‬‫برنامه‬‫به‬‫ها‬‫صفحه‬(page)‫تقسیم‬
‫شود‬‫می‬.
‫اما‬‫بر‬‫خالف‬‫صفحه‬‫بندی‬،‫ساده‬‫لزومی‬‫ندارد‬‫تمام‬‫های‬‫صفحه‬‫یک‬‫فرایند‬‫در‬‫قابهای‬‫ح‬‫افظه‬
‫اصلی‬‫باشند‬‫تا‬‫فرایند‬‫اجرا‬‫شود‬‫و‬‫تنها‬‫صفحاتی‬‫از‬‫فرایند‬‫که‬‫مورد‬‫نیاز‬‫است‬‫به‬‫ح‬‫افظه‬
‫اصلی‬‫آورده‬‫می‬‫شوند‬.
‫این‬‫روش‬‫تلفیقی‬‫از‬‫صفحه‬‫بندی‬‫و‬‫مبادله‬‫است‬.
7
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫قاب‬ ‫شماره‬‫صفحه‬(F#)‫هدف‬‫اصلی‬‫از‬‫نگاشت‬،‫صفحه‬‫یافتن‬‫شماره‬‫قاب‬‫صفحه‬‫است‬.
‫سن‬(Age)‫هر‬‫چه‬،‫کمتر‬‫یعنی‬‫آن‬‫صفحه‬‫مدت‬‫بیشتری‬‫در‬‫حافظه‬‫بدون‬‫مراجعه‬‫بوده‬‫است‬.
‫شده‬ ‫مراجعه‬ ‫بیت‬(R)
(Referenced)
‫اگر‬‫یک‬،‫مراجعه‬‫خواندن‬‫یا‬‫نوشتن‬‫به‬‫یک‬‫صفحه‬‫انجام‬،‫گیرد‬‫این‬‫بیت‬‫برابر‬1‫می‬‫شود‬.
‫یافته‬ ‫تغییر‬ ‫بیت‬(M)
(Modified)
‫اگر‬‫عمل‬‫نوشتن‬‫بر‬‫روی‬‫یک‬‫صفحه‬‫انجام‬،‫شود‬‫سخت‬‫افزار‬‫به‬‫صورت‬‫اتوماتیک‬‫این‬‫بیت‬‫را‬1‫می‬‫کند‬.
‫اعتبار‬ ‫بیت‬(Valid)
‫اگر‬‫این‬‫بیت‬‫برای‬‫صفحه‬‫ای‬1،‫باشد‬‫یعنی‬‫برنامه‬‫نویس‬‫از‬‫آدرس‬‫های‬‫درون‬‫این‬‫صفحه‬‫استفاده‬
‫کرده‬‫است‬.‫اگر‬0،‫باشد‬‫یعنی‬‫صفحه‬‫بدون‬‫استفاده‬‫است‬.
‫صفحه‬ ‫جدول‬ ‫درایه‬ ‫یک‬ ‫فیلدهای‬
8
‫حضور‬ ‫بیت‬-‫غیاب‬(P/A)‫اگر‬‫این‬‫بیت‬1،‫باشد‬‫یعنی‬‫صفحه‬‫در‬‫حافظه‬‫قرار‬‫دارد‬‫و‬‫سایر‬‫فیلدهای‬‫این‬‫درایه‬‫قابل‬‫استفاده‬‫می‬‫باش‬‫ند‬.
‫حفاظت‬ ‫های‬ ‫بیت‬‫این‬‫بیت‬‫ها‬‫نوع‬‫دسترسی‬‫مجاز‬‫را‬‫مشخص‬‫می‬‫کند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫نقص‬ ‫خطای‬‫صفحه‬(Page Fault)
‫اگر‬MMU‫به‬‫جدول‬‫صفحه‬‫مراجعه‬‫کند‬‫و‬‫بیت‬‫حضور‬‫را‬‫برای‬‫صفحه‬‫مورد‬‫نظر‬‫صفر‬
،‫ببیند‬‫متوجه‬‫می‬‫شود‬‫که‬‫صفحه‬‫بر‬‫روی‬‫دیسک‬‫است‬.
‫دراین‬‫حالت‬‫پردازنده‬‫در‬‫تله‬(trap)‫سیستم‬‫عامل‬‫می‬‫افتد‬.
‫به‬‫این‬،‫تله‬‫خطای‬‫نقص‬‫صفحه‬‫می‬‫گویند‬.
‫مدیریت‬‫آن‬‫بر‬‫عهده‬‫سیستم‬‫عامل‬‫است‬.
9
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫هندل‬Page Fault
10
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103‫مثال‬
‫در‬‫یک‬‫سیستم‬‫حافظه‬‫صفحه‬‫بندی‬‫که‬‫اندازه‬‫هر‬‫صفحه‬‫برابر‬64‫بایت‬‫می‬،‫باشد‬‫جدول‬‫صفحه‬‫زیر‬‫را‬‫در‬‫نظر‬‫بگیرید‬.‫کدام‬
‫آدرس‬‫خطای‬‫صفحه‬‫تولید‬‫می‬‫کند؟‬
in/out Frame
out 00101
in 00001
in 11011
in 11010
out 10001
out 10101
out 11000
in 00101
... ...
a) 0000101101001
b) 0000010010010
11
a) 0000101 101001 p# = 5 PF
b) 0000010 010010 p# = 2
in/out
0 out
1 in
2 in
3 in
4 out
5 out
6 out
7 in
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫یک‬‫سیستم‬‫حافظه‬‫مجازی‬‫صفحه‬‫بندی‬‫را‬‫در‬‫نظر‬‫بگیرید‬‫که‬‫آدرس‬‫مجازی‬‫شامل‬4096=4k‫صفحه‬‫و‬‫هر‬‫صفحه‬‫شامل‬1024=1k
‫بایت‬‫است‬.(‫آفست‬10‫بیتی‬‫است‬.)
‫اندازه‬‫حافظه‬‫فیزیکی‬‫بایت‬‫است‬.‫آدرس‬‫مجازی‬111222H‫از‬‫طریق‬‫جدول‬‫صفحه‬‫به‬‫آدرس‬‫فیزیکی‬‫تبدیل‬‫می‬‫شود‬.‫بخشی‬‫از‬
‫جدول‬‫صفحه‬‫در‬‫اینجا‬‫مشاهده‬‫می‬‫شود‬.‫آدرس‬‫فیزیکی‬‫چیست؟‬
18
2
12
‫آدرس‬‫مجازی‬:
‫آدرس‬‫فیزیکی‬:
‫یعنی‬:17222 H
‫صفحه‬ ‫شماره‬:444 H
‫قاب‬ ‫شماره‬:(01011100) 5CH
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫صفحه‬ ‫جایگزینی‬ ‫های‬‫الگوریتم‬
(Page Replacement Algorithms)
13
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫صفحه‬ ‫جایگزینی‬ ‫های‬‫الگوریتم‬
‫در‬‫یک‬‫سیستم‬‫چند‬‫برنامه‬‫ای‬‫که‬‫از‬‫بخش‬‫بندی‬‫پویا‬‫استفاده‬‫کند‬‫می‬‫زمانی‬‫خواهد‬‫رسید‬‫که‬‫تمام‬‫فرایندهای‬‫موجو‬‫د‬‫در‬
‫حافظه‬‫اصلی‬‫در‬‫حالت‬‫مسدود‬‫قرار‬‫دارند‬.‫در‬‫این‬‫حالت‬‫سیستم‬‫عامل‬‫یکی‬‫از‬‫فرایندهای‬‫داخل‬‫حافظه‬‫اصلی‬‫را‬‫به‬‫خارج‬‫م‬‫بادله‬
‫کند‬‫می‬‫تا‬‫فضای‬‫کافی‬‫برای‬‫فرایندی‬‫جدید‬‫یا‬‫یک‬‫فرایند‬‫آماده‬‫و‬‫معلق‬‫ایجاد‬‫شود‬.‫سیستم‬‫عامل‬‫باید‬‫فرایندی‬‫ک‬‫ه‬‫قرار‬‫است‬
‫جایگزین‬‫شود‬‫را‬‫انتخاب‬‫کند‬.
14
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫در‬‫واقع‬‫سیاست‬‫جایگزینی‬،‫درباره‬‫انتخاب‬‫یک‬‫صفحه‬‫ب‬‫رای‬
‫جایگزینی‬،‫در‬‫زمانی‬‫که‬‫الزم‬‫است‬‫یک‬‫صفحه‬‫جدید‬‫به‬‫داخ‬‫ل‬
‫آورده‬‫شود‬‫صحبت‬‫کند‬‫می‬.
15
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫جایگزینی‬ ‫های‬ ‫الگوریتم‬
1-‫بهینه‬(optimal)
2-‫اخیر‬ ‫گذشته‬ ‫در‬ ‫استفاده‬ ‫عدم‬(NRU)
3-‫ورود‬ ‫ترتیب‬ ‫به‬ ‫خروج‬(FIFO)
4-‫شانس‬ ‫دومین‬(Second Change)
5-‫ساعت‬(Clock)
6-‫نزدیک‬ ‫گذشته‬ ‫در‬ ‫استفاده‬ ‫کمترین‬(LRU)
16
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫بهینه‬ ‫الگوریتم‬(optimal)
‫در‬‫این‬،‫روش‬‫صفحه‬‫ای‬‫جایگزین‬‫می‬‫شود‬‫که‬‫به‬‫مدت‬‫طوالنی‬‫مورد‬‫استفاده‬‫قرار‬‫نخواهد‬‫گرفت‬.
‫الگوریتم‬،‫بهینه‬‫قابل‬‫اجرا‬،‫نیست‬‫چون‬‫نیاز‬‫به‬‫پیش‬‫بینی‬‫آینده‬‫دارد‬.
‫علت‬‫مطرح‬‫شدن‬‫این‬،‫الگوریتم‬‫استفاده‬‫از‬‫آن‬‫به‬‫عنوان‬‫شاخص‬‫مقایسه‬‫می‬‫باشد‬.
‫نام‬‫دیگر‬‫این‬،‫الگوریتم‬BO (Belady Optimal)‫می‬‫باشد‬.
17
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
18
‫در‬‫یک‬‫سیستم‬‫حافظه‬‫صفحه‬،‫بندی‬‫در‬‫یک‬‫برنامه‬‫به‬‫ترتیب‬‫به‬‫صفحات‬‫زیر‬‫رجوع‬‫شده‬‫است‬..
‫برای‬‫این‬‫برنامه‬‫سه‬‫قاب‬‫صفحه‬(Page Frame)‫در‬‫نظر‬‫گرفته‬‫شود‬.
‫تعداد‬‫خطاهای‬‫صفحه‬(Page Faults)=‫؟‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫الگوریتم‬NRU
NRU ( Not Recently Used)
‫در‬‫این‬‫روش‬‫وقتی‬‫نقص‬‫صفحه‬‫رخ‬‫می‬،‫دهد‬‫سیستم‬‫عامل‬‫بر‬‫اساس‬‫وضعیت‬‫بیت‬‫های‬‫ارجاع‬(R)‫و‬‫اصالح‬(M)،‫صفحات‬‫را‬‫به‬‫چهار‬
‫کالس‬‫مطابق‬‫شکل‬،‫زیر‬‫تقسیم‬‫می‬‫کند‬‫و‬‫سپس‬‫به‬‫طور‬‫تصادفی‬،‫صفحه‬‫ای‬‫را‬‫از‬‫کالسی‬‫که‬‫در‬‫دسته‬‫با‬‫شماره‬‫کمتری‬‫باشد‬،‫را‬‫انتخاب‬‫می‬
‫کند‬.
19
‫در‬‫واقع‬‫صفحه‬‫ای‬‫انتخاب‬‫می‬‫شود‬‫که‬‫در‬‫درجه‬‫اول‬‫از‬‫ابتدای‬‫دوره‬
‫استفاده‬،‫جاری‬‫نشده‬‫است‬‫و‬‫در‬‫درجه‬،‫دوم‬‫از‬‫هنگام‬‫ورود‬‫به‬‫حافظه‬‫تغییر‬
‫نکرده‬‫است‬.‫صفحه‬‫متعلق‬‫به‬‫دسته‬‫شماره‬0،‫اخیرا‬‫مورد‬‫استفاده‬‫قرار‬‫نگرفته‬‫و‬
‫تغییر‬‫نکرده‬‫است‬.‫به‬‫همین‬‫علت‬‫بهترین‬‫انتخاب‬‫می‬‫باشد‬.
‫صفحه‬‫ای‬‫که‬‫بیت‬‫اصالح‬‫آن‬‫یک‬،‫باشد‬‫قبل‬‫از‬‫جایگزینی‬‫باید‬‫نوشته‬‫شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
20
‫کالس‬1،‫زمانی‬‫رخ‬‫می‬‫دهد‬‫که‬‫در‬‫کالس‬3،‫بیت‬R‫در‬‫یک‬‫وقفه‬،‫ساعت‬0‫شود‬.
‫وقفه‬،‫ساعت‬‫بیت‬M‫را‬0‫نمی‬،‫کند‬‫چون‬‫این‬‫بیت‬‫نشان‬‫دهنده‬‫این‬‫است‬‫که‬‫آیا‬‫این‬‫صفحه‬‫باید‬‫دوباره‬‫در‬‫دیسک‬‫نوشته‬‫شود‬‫ی‬‫ا‬‫خیر‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
‫حافظه‬‫اصلی‬‫کامپیوتری‬‫دارای‬‫چهار‬‫قاب‬‫صفحه‬‫می‬‫باشد‬.
‫اگر‬‫خطای‬‫صفحه‬‫روی‬‫صفحه‬‫مجازی‬‫شماره‬4‫در‬‫زمان‬319‫رخ‬،‫دهد‬‫تحت‬‫الگوریتم‬‫جایگزینی‬NRU‫به‬‫ترتیب‬‫محتویات‬‫کدام‬‫یک‬‫از‬‫قاب‬
‫صفحه‬‫ها‬،‫بایستی‬‫جابجا‬‫شوند؟‬
21
‫در‬‫روش‬NRU،‫صفحه‬2‫انتخاب‬‫می‬،‫شود‬‫چون‬‫در‬‫دسته‬‫با‬‫شماره‬‫کمتری‬‫قرار‬‫دارد‬.
‫چون‬‫در‬‫زمان‬‫رخ‬‫دادن‬‫خطای‬،‫صفحه‬‫یعنی‬319،‫همه‬‫صفحه‬‫ها‬‫موجود‬،‫هستند‬‫تصمیم‬‫گیری‬‫بین‬‫همه‬‫آنها‬‫انجام‬‫گرفته‬‫است‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫الگوریتم‬FIFO
‫در‬‫این‬‫روش‬(‫خروج‬‫به‬‫ترتیب‬‫ورود‬)،‫صفحه‬‫ای‬‫جایگزین‬‫شود‬‫که‬‫زمان‬‫بیشتری‬‫منت‬‫ظر‬
‫بوده‬‫است‬.
‫برای‬،‫جایگزینی‬‫صفحه‬‫موجود‬‫در‬‫ابتدای‬‫صف‬‫را‬‫انتخاب‬‫کرده‬‫و‬‫صفحه‬‫ای‬‫که‬‫وارد‬‫ح‬‫افظه‬
‫شده‬‫را‬‫به‬‫انتهای‬‫صف‬‫اضافه‬‫می‬‫کنیم‬.
22
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
23
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
24
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫شانس‬ ‫دومین‬ ‫الگوریتم‬
‫الگوریتم‬‫دومین‬،‫شانس‬‫مانند‬FIFO‫می‬‫باشد‬.‫با‬‫این‬‫تفاوت‬‫که‬‫وقتی‬‫نقص‬‫صفحه‬‫رخ‬‫می‬،‫دهد‬‫اگر‬
‫بیت‬R‫قدیمی‬‫ترین‬،‫صفحه‬1،‫بود‬‫این‬‫بیت‬0‫شده‬‫و‬‫صفحه‬‫به‬‫انتهای‬‫لیست‬‫منتقل‬‫می‬‫شود‬.‫با‬‫این‬‫کا‬‫ر‬
‫به‬‫او‬‫شانس‬‫دوباره‬‫ای‬‫داده‬‫شده‬‫است‬.
‫اگر‬‫بیت‬R‫همه‬‫صفحات‬1،‫باشد‬‫الگوریتم‬‫دومین‬‫شانس‬‫به‬FIFO‫تبدیل‬‫می‬‫شود‬.
25
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
‫ارجاع‬‫به‬‫شماره‬‫صفحه‬‫مجازی‬2:
‫بیت‬R‫صفحه‬‫های‬4‫و‬5‫چون‬1،‫است‬‫آن‬‫را‬‫صفر‬‫کرده‬‫و‬‫صفحه‬‫ها‬‫به‬‫انتهای‬‫صف‬‫منتقل‬‫می‬‫شوند‬.
‫حال‬‫به‬‫صفحه‬7‫رسیده‬‫ایم‬‫که‬‫چون‬‫بیت‬R‫آن‬‫صفر‬،‫است‬‫صفحه‬‫را‬‫از‬‫حافظه‬‫خارج‬‫کرده‬‫و‬‫صفحه‬2‫را‬‫به‬‫جای‬‫آن‬‫در‬‫انتهای‬‫صف‬‫اضافه‬‫می‬
‫کنیم‬.
‫بیت‬R‫صفحه‬‫دو‬‫را‬1‫قرار‬‫می‬‫دهیم‬.
26
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫ساعت‬ ‫الگوریتم‬
‫اگر‬‫چه‬‫الگوریتم‬‫دومین‬،‫شانس‬‫الگوریتم‬‫قابل‬‫قبولی‬،‫بود‬‫اما‬‫به‬‫علت‬‫حذف‬‫صفحه‬‫از‬‫ابتدای‬‫لیست‬‫و‬‫اضافه‬‫ک‬‫ردن‬‫آن‬‫به‬
‫انتهای‬،‫لیست‬‫روشی‬‫پر‬‫هزینه‬‫است‬.‫برای‬‫حل‬‫این‬‫مشکل‬‫از‬‫لیست‬‫چرخشی‬‫استفاده‬‫می‬‫شود‬.‫در‬‫الگوریتم‬
،‫ساعت‬‫لیست‬‫پیوندی‬‫صفحات‬‫به‬‫صورت‬‫حلقوی‬‫و‬‫به‬‫شکل‬‫یک‬‫ساعت‬‫نگهداری‬‫می‬،‫شود‬‫به‬‫طوری‬‫که‬‫عقربه‬‫س‬‫اعت‬‫به‬
‫قدیمی‬‫ترین‬‫صفحه‬‫اشاره‬‫می‬‫کند‬.
27
‫وقتی‬‫نقص‬‫صفحه‬‫رخ‬‫می‬‫دهد‬،‫به‬‫بیت‬R‫صفحه‬‫ای‬‫که‬‫توسط‬‫عقربه‬‫به‬‫آن‬‫اشاره‬،‫شده‬‫نگاه‬‫کرده‬‫که‬‫دو‬‫حالت‬‫رخ‬‫می‬‫دهد‬:
‫الف‬-‫اگر‬‫بیت‬R،0،‫باشد‬‫صفحه‬‫مورد‬‫نظر‬‫خارج‬‫شده‬‫و‬‫صفحه‬‫جدید‬‫در‬‫همان‬‫مکان‬‫جایگزین‬‫شده‬‫و‬‫عقربه‬‫به‬‫جلو‬‫می‬
‫رود‬.
‫ب‬-‫اگر‬‫بیت‬R،1،‫باشد‬‫آنگاه‬0‫شده‬‫و‬‫عقربه‬‫به‬‫صفحه‬‫بعدی‬‫اشاره‬‫خواهد‬‫کرد‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
28
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103‫مثال‬
‫سیستمی‬‫دارای‬4‫قاب‬‫صفحه‬‫است‬‫که‬‫مطابق‬‫جدول‬‫زیر‬‫صفحات‬‫مجازی‬‫در‬‫آن‬‫ها‬‫قرار‬‫دارند‬.‫اگر‬‫سیستم‬‫عامل‬‫از‬‫الگوریتم‬
‫ساعت‬(Clock)‫استفاده‬،‫نماید‬‫در‬‫صورت‬‫وقوع‬‫نقص‬،‫صفحه‬‫صفحه‬‫جدید‬‫با‬‫کدام‬‫صفحه‬‫مجازی‬‫باید‬‫جایگزین‬‫شود؟‬
R‫صفحه‬ ‫بارگذاری‬ ‫زمان‬‫درحافظه‬‫صفحه‬ ‫شماره‬
1501
0302
1203
0404
‫ابتدا‬‫عقربه‬‫بر‬‫روی‬‫قدیمی‬‫ترین‬‫صفحه‬‫یعنی‬‫صفحه‬3‫است‬.‫چون‬‫بیت‬R‫آن‬1،‫است‬‫بیت‬R‫آن‬0‫شده‬‫و‬
‫عقربه‬‫به‬‫جلو‬‫حرکت‬‫می‬‫کند‬‫و‬‫بر‬‫روی‬‫صفحه‬2‫می‬‫رود‬.
‫چون‬‫بیت‬R‫صفحه‬2،‫صفر‬،‫است‬‫صفحه‬‫جدید‬‫با‬‫این‬‫صفحه‬‫جایگزین‬‫می‬‫شود‬.
29
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫الگوریتم‬LRU
‫در‬‫روش‬LRU(Least Recently Used )،‫صفحه‬‫ای‬‫جایگزین‬‫می‬‫شود‬‫که‬‫برای‬‫مدت‬‫طوالنی‬
‫مورد‬‫استفاده‬‫قرار‬‫نگرفته‬‫است‬.‫یعنی‬‫در‬‫گذشته‬‫دورتری‬‫به‬‫آن‬‫مراجعه‬‫شده‬‫است‬.
30
‫مثال‬:
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
31
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
‫به‬‫فرایندی‬‫چهار‬‫قاب‬‫تخصیص‬‫یافته‬‫است‬.‫یک‬‫خطای‬‫صفحه‬‫برای‬‫صفحه‬4‫رخ‬‫داده‬‫است‬.
‫برای‬‫سیاست‬‫مدیریت‬‫حافظه‬FIFO‫و‬LRU‫به‬‫ترتیب‬‫چه‬‫صفحه‬‫ای‬‫برای‬‫جایگزینی‬‫انتخاب‬‫می‬‫شوند‬‫؟‬
32
‫در‬‫روش‬FIFO‫صفحه‬‫ای‬‫که‬‫زمان‬‫بار‬‫شدن‬‫آن‬‫در‬‫حافظه‬‫از‬‫همه‬‫کمتر‬‫است‬‫انتخاب‬‫می‬‫شود‬‫یعنی‬‫صفحه‬3.
‫در‬‫روش‬LRU‫صفحه‬‫ای‬‫که‬‫زمان‬‫آخرین‬‫مراجعه‬‫به‬‫آن‬‫کمتر‬،‫است‬‫انتخاب‬‫می‬‫شود‬‫یعنی‬‫صفحه‬2.
‫زمان‬‫صفر‬ ‫زمان‬ ‫در‬ ‫فرایند‬ ‫شروع‬ ‫از‬ ‫و‬ ‫ساعت‬ ‫ضربان‬ ‫حسب‬ ‫بر‬ ‫ها‬‫است‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫بلیدی‬ ‫تناقض‬( Belady's anomaly)
‫در‬‫روش‬FIFO‫ممکن‬‫است‬‫با‬‫افزایش‬‫تعداد‬،‫قابها‬‫خطای‬‫صفحه‬‫کم‬‫نشود‬‫که‬‫به‬‫این‬‫پدیده‬‫تناقض‬‫بلیدی‬‫می‬‫گوین‬‫د‬.‫در‬‫واقع‬
‫تناقض‬‫بلیدی‬‫به‬‫این‬‫معنی‬‫است‬‫که‬‫الگوریتم‬FIFO‫ممکن‬‫است‬‫از‬‫نمودار‬،‫زیر‬‫پیروی‬‫نکند‬:
33
‫های‬ ‫الگوریتم‬ ‫در‬ ‫بلیدی‬ ‫تناقض‬BO , LRU‫دهد‬ ‫نمی‬ ‫رخ‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫انباره‬4‫ای‬ ‫صفحه‬:10‫صفحه‬ ‫فقدان‬
4 3 2 1 4 3 5 4 3 2 1 5
4 4 4 4 4 4 3 2 1 5 4 3
3 3 3 3 3 2 1 5 4 3 2
2 2 2 2 1 5 4 3 2 1
1 1 1 5 4 3 2 1 5
F F F F F F F F F F
4 3 2 1 4 3 5 4 3 2 1 5
4 4 4 3 2 1 4 4 4 3 5 5
3 3 2 1 4 3 3 3 5 2 1
2 1 4 3 5 5 5 2 1 4
F F F F F F F F F
‫انباره‬3‫صفحه‬‫ای‬:9‫فقدان‬‫صفحه‬
34
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫تعریف‬
‫الگوریتم‬‫پشته‬‫ای‬،‫الگوریتمی‬‫است‬‫که‬‫در‬،‫آن‬‫مجموعه‬‫ای‬‫از‬‫صفحات‬‫موجود‬‫در‬‫حافظه‬‫برای‬n
،‫قاب‬‫همیشه‬‫زیر‬‫مجموعه‬‫ای‬‫از‬‫صفحاتی‬‫است‬‫که‬‫برای‬n+1‫قاب‬‫در‬‫حافظه‬‫خواهند‬‫بود‬.
35
‫الگوریتم‬‫های‬‫پشته‬‫ای‬‫هیچگاه‬‫دچار‬‫تناقض‬‫بلیدی‬‫نمی‬‫شوند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫صفحه‬ ‫بندی‬ ‫قطعه‬‫بندی‬(Segmentation with paging)
‫فضای‬‫آدرس‬‫به‬‫تعدادی‬‫قطعه‬‫تقسیم‬‫شود‬‫می‬
‫و‬‫هر‬‫قطعه‬‫نیز‬‫به‬‫تعدادی‬‫صفحه‬‫تقسیم‬‫شوند‬‫می‬.
‫برای‬‫هر‬‫فرایند‬‫یک‬‫جدول‬‫قطعه‬‫و‬‫چند‬‫جدول‬‫صفحه‬‫وجود‬‫دارد‬.
‫آدرس‬‫مجازی‬:
‫آدرس‬‫فیزیکی‬:
‫قطعه‬ ‫شماره‬ ‫صفحه‬ ‫شماره‬ ‫صفح‬ ‫درون‬ ‫آفست‬‫ه‬
‫شماره‬‫قاب‬ ‫صفح‬ ‫درون‬ ‫آفست‬‫ه‬
36
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫صفحه‬ ‫بندی‬ ‫قطعه‬‫بندی‬
37
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫مثال‬
‫یک‬‫حافظه‬‫به‬‫اندازه‬8KB‫و‬‫با‬‫صفحات‬512‫بایتی‬‫را‬‫در‬‫نظر‬‫بگیرید‬‫که‬‫با‬‫روش‬‫قطعات‬‫صفحه‬‫بندی‬‫شده‬‫مدیریت‬‫می‬‫شود‬.
‫مطلوب‬‫است‬‫آدرس‬‫فیزیکی‬‫متناظر‬‫با‬‫آدرس‬‫مجازی‬:
38
‫چون‬‫شماره‬‫قطعه‬1‫است‬‫به‬‫اندیس‬1‫در‬‫جدول‬‫قطعه‬‫مراجعه‬‫کرده‬‫و‬‫مقدار‬PTBA‫یعنی‬0088‫مشخص‬‫می‬‫شود‬.
‫حال‬‫چون‬‫در‬‫آدرس‬،‫مجازی‬‫شماره‬‫صفحه‬2،‫است‬‫در‬،‫حافظه‬‫در‬‫ستون‬‫دوم‬‫که‬‫با‬‫آدرس‬0088‫شروع‬‫می‬‫شود‬‫به‬‫سطر‬‫سوم‬‫مراجعه‬‫کرده‬‫و‬‫شماره‬‫قاب‬‫صفحه‬‫که‬
‫برابر‬9H‫است‬‫مشخص‬،‫می‬‫شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫پایان‬
39
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
‫های‬ ‫سیستم‬ ‫آموزش‬‫عامل‬
faradars.org/fvsft103
40
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫عامل‬ ‫های‬ ‫سیستم‬ ‫آموزش‬»
‫است‬ ‫شده‬ ‫تهیه‬.
‫نمایید‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org

آموزش سیستم های عامل - بخش هشتم