الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C

در این پست به الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C پرداخته می شود. جایگزینی صفحه یا Page Replacement در سیستم‌عاملی که از تکنیک صفحه‌بندی برای مدیریت حافظه مجازی استفاده می‌کند، الگوریتم‌های جایگزینی صفحه تصمیم می‌گیرند که کدام صفحه باید از حافظه اصلی خارج شده و در دیسک نوشته شود تا فضا برای اختصاص دادن صفحه جدید محیا شود. الگوریتم جایگزینی صفحه FIFO که مخفف First Input First Output می باشد یکی از ساده ترین الگوریتم های جایگزینی صفحه است. این الگوریتم با نام FCFS نیز شناخته می شود. صفحه‌بندی وقتی انجام می‌شود که یک خطای نقص صفحه یا Page fault اتفاق افتاده و صفحه خواسته شده را نتوان اختصاص داد. در ادامه به توضیح این الگوریتم پرداخته می شود.

الگوریتم های جایگزینی صفحه

قبل از کد نویسی الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C بایستی از کلیات مبحث الگوریتم های جایگزینی صفحه اطلاعاتی را داشته باشید. همانطور که قبلاً هم بیان شد صفحه‌بندی وقتی انجام می‌شود که یک خطای نقص صفحه اتفاق افتاده و صفحه خواسته شده را نتوان اختصاص داد، یا به این دلیل که هیچ صفحه خالی در حافظه نیست یا به این دلیل که تعداد صفحات خالی کمتر از حد آستانه است. (در بعضی از سیستم‌ها همواره تعدادی صفحه خالی در حافظه نگه‌داری می‌شود تا نیاز کمتری به فراخوانی الگوریتم جایگزینی صفحه باشد) در این حالت برای آوردن صفحه جدید به حافظه، مجبور هستیم صفحاتی را از حافظه خارج کرده و در دیسک بنویسیم تا فضای کافی برای اختصاص صفحه جدید فراهم شود.

مراحل انجام این کار بدین صورت است که صفحه‌ای که برای جایگزینی انتخاب شده از حافظه اصلی خارج شده و در دیسک نوشته می‌شود. سپس صفحه خواسته شده توسط برنامه از دیسک برداشته شده و در مکان صفحه قبلی نوشته می‌شود. ممکن است صفحه‌ای که برای جایگزینی انتخاب شده مجدداً توسط برنامه مورد ارجاع قرار گیرد و نیاز باشد تا صفحه بار دیگر از دیسک به حافظه آورده شود. آوردن یک صفحه از دیسک عملی به مراتب زمانبر است چرا که سرعت دیسک از سرعت حافظه اصلی کمتر است. بنابراین الگوریتمی از همه بهتر است که عمل ورودی/خروجی در آن اندک باشد.

الگوریتم جایگزینی صفحه FIFO

الگوریتم FIFO یا همان FCFS ساده‌ترین الگوریتم صفحه‌بندی است. در این الگوریتم صفحه‌ای از حافظه خارج می‌شود که از همه زودتر وارد حافظه شده باشد. به عبارت دیگر، صفحه‌ای که از همه قدیمی‌تر باشد از حافظه خارج می‌شود تا فضا برای صفحه جدید محیا شود. منطق این روش آن است که صفحه‌ای که زودتر از همه به حافظه آورده شده، احتمالاً برنامه کار خود را با آن به اتمام رسانده و در آینده دیگر به آن احتیاج نیست. این الگوریتم ساده است و سربار کمی به سیستم‌عامل تحمیل می‌کند. این الگوریتم دارای مشکل ناهنجاری بلیدی است و خیلی کم از آن استفاده می‌شود. الگوریتم FIFO توسط یک صف پیاده‌سازی می‌شود. هر صفحه‌ای که در جلوی صف قرار گرفته باشد، با صفحه جدید جایگزین می‌شود. شکل زیر یک مثال از این الگوریتم است.

الگوریتم جایگزینی صفحه FIFO

سورس کد الگوریتم

الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C در Microsoft Visual ++C شده است این سورس کد در واقع یک برنامه کنسولی است. در این سورس کد نحوه انجام الگوریتم FIFO برای جایگزنی مناسب نشان داده شده است در ادامه تصویر خروجی این محصول قابل مشاهده است.

الگوریتم نقص صفحه FIFO

ویدئوی معرفی محصول

درباره محصول

برنامه الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C محصولی است که در این پست به آن پرداخته شده است. محصول در نرم Microsoft Visual ++C نوشته شده است محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده  و دارای کامنت گذاری برای هر دستور می باشد. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.

1 دیدگاه برای الگوریتم جایگزینی صفحه FIFO در سی پلاس پلاس ++C

  1. programstore

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده