الگوریتم سنی - نسخهی قابل چاپ |
الگوریتم سنی - 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 کمتری داشته باشه،(یعنی در گذشته ی دورتری به آن مراجعه شده باشه)،که جواب قاب شماره ۱ ، یعنی قاب دوم است. |