الگوریتم سیستم عامل Clock

الگوریتم سیستم عامل Clock" href="http://wikiprojects.ir/downloads/clock/"> ایگوریتم ساعت

الگوریتم ساعت هم بر اساس الگوریتم FIFO است، اما از الگوریتم شانس دوم موثرتر است. زیرا لازم نیست
صفحات به طور مدام در انتهاي صف گذاشته شوند. اما کارکرد اصلی آن مشابه الگوریتم شانس دوم است. الگوریتم
ساعت، یک لیست حلقوي از صفحات را در حافظه نگه میدارد. «عقربه» ساعت هم به آخرین صفحه بررسی شده
اشاره میکند. اگر یک نقص صفحه رخ دهد و قاب خالی هم در حافظه وجود نداشته باشد، آنگاه بیت دستیابی در
صفحهاي که عقربه به آن اشاره میکند بررسی میشود. اگر بیت دستیابی صفر بود، صفحه حذف میشود و صفحه
جدید در جایی که عقربه به آنجا اشاره میکند قرار میگیرد. در غیر این صورت اگر بیت دستیابی 1 بود، انگاه این
بیت صفر شده و عقربه یک واحد افزایش مییابد و به عنصر بعدي در صف اشاره میکند. این پروسه آن قدر تکرار
میشود تا یک صفحه براي جایگزینی پیدا شود.

 طور کلی براي پیاده سازي الگوریتم ساعت از قواعد زیر به طور منظم پیروي میکنیم

کل الگوریتم را به دو مرحله تفکیک میکنیم
مرحله اول: از لحظه شروع تا پر شدن قاب
مرحله دوم: بعد از اتمام مرحله اول اغاز و تا انتهاي برنامه ادامه خواهد داشت
توضیحات مرحله اول:
در ابتدا اشاره گر به اولین خانه قاب اشاره دارد
بیت R همه خانه هاي قاب 0 است
به هنگام وارد شدن صفحه دو حالت وجود دارد
الف: صفحه در قاب موجود است  در این حالت هیچ کاري انجام نمیدهیم
ب: صفحه در قاب وجود ندارد صفحه مورد نظر را به محلی که اشاره گر به آن اشاره دارد افزوده بیت R آن را
1 قرار داده و اشاره گر را یک خانه به جلو میبریم
این کار را تا هنگامی که قاب پر شود انجام میدهیم وقتی قاب پر شد وارد مرحله دوم خواهیم شد
توضیح مرحله دوم:
در حالت کلی به هنگام ورود صفحه دو حالت پیش خواهد آمد
الف: صفحه مورد نظر در قاب وجود دارد که در این حالت کافیست بیت R اندیسی از قاب را که حافیه صفحه
مورد نظر است را یک کنم (حال بیت R چه 1 باشد چه 0 (دقت کنید که اشاره گر جابجا نخواهد شد
ب: صفحه مورد نظر در قاب وجود ندارد
در این حالت با اشاره گر پیش خواهیم رفت ابتدا بررسی خواهیم کرد که ایا صفحه اي که در اندیس اشاره شده
توسط اشاره گر وجود دارد بیت R ان 0 است یا 1 ,اگر 1 بود بیت R را 0 کرده و اشاره گر را به جلو میبریم و
این کار را تا زمانی که به خانه اي از قاب برسیم که بیت R آن 0 است ادامه میدهیم زمانی که به خانه اي از
قاب رسیدیم که بیت R ان 0 بود صفحه مورد نظر را در ان جا درج میکنیم البته با بیت R با عدد 1) در این
حالت یک خطاي نقص صفحه رخ داده است)
این کار را تا زمانی که تمامی صفحه هاي ورودي به اتمام نرسیده انجام میدهیم

RIAL 85,000 – خرید
0
اشتراک‌گذاری
admin