تالار گفتمان مانشت
الگوریتم سنی - نسخه‌ی قابل چاپ

الگوریتم سنی - dokhtare payiz - 20 فروردین ۱۳۹۵ ۰۴:۴۴ ب.ظ

راه حلشو متوجه نشدم. مثالیم ازش ندیدم.

RE: الگوریتم سنی - Iranian Wizard - 20 فروردین ۱۳۹۵ ۰۶:۲۴ ب.ظ

سلام.الگوریتم سالمندی(یا همون LRU نرم افزاری) ،بر اساس فیلد age(سن)(یک شمارنده معمولا ۸ بیتی) هر صفحه در جدول صفحه عمل میکنه،به این صورت که با هر کلاک ساعت،فیلد age یک بیت به سمت راست شیفت داده میشه و از چپ ،بیت R اون صفحه وارد میشه.و بیت R صفحه مورد نظر صفر میشه.
و صفحه ای برای جایگزینی انتخاب میشه،که کمترین مقدار age رو داشته باشه.
(در ضمن فیلد age در ابتدا ۰۰۰۰۰۰۰۰ است)
خب در این سوال:
در کلاک اول بیت R قاب ها بصورت ۰۱۱۱ هستش.
یعنی صفحه ی موجود در قاب ۰، دارای بیت R=0
یعنی صفحه ی موجود در قاب ۱، دارای بیت R=1
یعنی صفحه ی موجود در قاب ۲، دارای بیت R=1
یعنی صفحه ی موجود در قاب ۳، دارای بیت R=1

پس فیلد age صفحه ی موجود در قاب صفر ۰۰۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب یک ۱۰۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب دو ۱۰۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب سه ۱۰۰۰۰۰۰۰
(فیلد age یک بیت به سمت راست شیفت داده میشه و بیت R از چپ وارد شده)
---------------------------------------------------------------------------------------------
در کلاک بعدی چون که بیت های ارجاع بصورت ۱۰۱۰ هستش.
پس فیلد age صفحه ی موجود در قاب صفر ۱۰۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب یک ۰۱۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب دو ۱۱۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب سه ۰۱۰۰۰۰۰۰
---------------------------------------------------------------------------------------------
در کلاک بعدی چون که بیت های ارجاع بصورت ۰۰۱۰ هستش.
پس فیلد age صفحه ی موجود در قاب صفر ۰۱۰۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب یک ۰۰۱۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب دو ۱۱۱۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب سه ۰۰۱۰۰۰۰۰
---------------------------------------------------------------------------------------------
در کلاک بعدی چون که بیت های ارجاع بصورت ۱۰۱۰ هستش.
پس فیلد age صفحه ی موجود در قاب صفر ۱۰۱۰۰۰۰۰
پس فیلد age صفحه ی موجود در قاب یک ۰۰۰۱۰۰۰۰
پس فیلد age صفحه ی موجود در قاب دو ۱۱۱۱۰۰۰۰
پس فیلد age صفحه ی موجود در قاب سه ۰۰۰۱۰۰۰۰
---------------------------------------------------------------------------------------------
و در کلاک بعدی چون که بیت های ارجاع بصورت ۱۰۱۱ هستش.
پس فیلد age صفحه ی موجود در قاب صفر ۱۱۰۱۰۰۰۰
پس فیلد age صفحه ی موجود در قاب یک ۰۰۰۰۱۰۰۰
پس فیلد age صفحه ی موجود در قاب دو ۱۱۱۱۱۰۰۰
پس فیلد age صفحه ی موجود در قاب سه ۱۰۰۰۱۰۰۰
---------------------------------------------------------------------------------------------
و اگر حالا نقص صفحه رخ بده،باید کدام قاب برای جایگزینی انتخاب بشه؟
اون قابی که صفحه ی داخلش مقدار فیلد age کمتری داشته باشه،(یعنی در گذشته ی دورتری به آن مراجعه شده باشه)،که جواب قاب شماره ۱ ، یعنی قاب دوم است.