• مقالات آموزشی
    • آموزش برنامه نویسی
    • آموزش الگوریتم
    • آموزش شبکه های کامپیوتری
    • آموزش های عمومی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپوینت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • لیست قالب آماده HTML
  • دانلود رایگان
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین
  • سفارش تدریس آنلاین
  • آموزش برنامه نویسی
  • آموزش الگوریتم
  • آموزش شبکه
  • آموزش عمومی

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • درباره ما
  • تماس با ما
  • سفارش تدریس آنلاین
پی استور
0

ورود و ثبت نام

مقالات آموزشی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپونت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
      • عمومی
      • مشاهیر و اشخاص
      • واقعیت مجازی
      • طراحی سایت
      • برنامه نویسی
      • علوم کامپیوتر
      • اینترنت اشیاء
      • سیستم عامل
      • ارز دیجیتال
      • کسب و کار
      • تکنولوژی
      • علوم
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • قالب آماده HTML
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین

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

خانهفروشگاهبرنامه نویسیسی پلاس پلاسالگوریتم جایگزینی صفحه LRU در سی پلاس پلاس ++C
https://dl.programstore.ir/files/Uploades/Previews/Cpp/LRU-CPP.mp4

در این بخش به الگوریتم جایگزینی صفحه LRU در سی پلاس پلاس ++C پرداخته می شود. جایگزینی صفحه یا Page Replacement در سیستم‌عاملی که از تکنیک صفحه‌بندی برای مدیریت حافظه مجازی استفاده می‌کند، الگوریتم‌های جایگزینی صفحه تصمیم می‌گیرند که کدام صفحه باید از حافظه اصلی خارج شده و در دیسک نوشته شود تا فضا برای اختصاص دادن صفحه جدید محیا شود.

cropped-fav2.png

برنامه‌نویس: تیم برنامه نویسی پی استور

متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی

تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.

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

الگوریتم جایگزینی صفحه LRU که مخفف Least Recently Used  یعنی اخیراً کمتر استفاده شده می باشد یکی از مهم ترین الگوریتم های جایگزینی صفحه است. صفحه‌بندی وقتی انجام می‌شود که یک خطای نقص صفحه یا Page fault اتفاق افتاده و صفحه خواسته شده را نتوان اختصاص داد. در ادامه به توضیح این الگوریتم پرداخته می شود.

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

(در بعضی از سیستم‌ها همواره تعدادی صفحه خالی در حافظه نگه‌داری می‌شود تا نیاز کمتری به فراخوانی الگوریتم جایگزینی صفحه باشد) در این حالت برای آوردن صفحه جدید به حافظه، مجبور هستیم صفحاتی را از حافظه خارج کرده و در دیسک بنویسیم تا فضای کافی برای اختصاص صفحه جدید فراهم شود.

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

بنابراین الگوریتمی از همه بهتر است که عمل ورودی/خروجی در آن اندک باشد.

الگوریتم LRU یا همان اخیراً کمتر استفاده شده هر چند که در نام مشابه NFU یا (Not Frequently Used) است اما در عمل با آن متفاوت است. تفاوت آنها در این است که LRU میزان استفاده صفحات را در یک بازه زمانی کوتاه پیگیری می‌کند اما NFU تنها به میزان استفاده صفحات در آخرین وقفه ساعت نگاه می‌کند. ایده اصلی LRU آن است که صفحاتی که در چند لحظه گذشته به شدت مورد استفاده قرار گرفته‌اند، در چند لحظه آینده هم به شدت مورد استفاده خواهند بود.

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

پرهزینه‌ترین روش، استفاده از یک لیست پیوندی است که تمام صفحات موجود در حافظه را در بر می‌گیرد. در انتهای این لیست، صفحاتی با کمترین میزان استفاده قرار دارند و در ابتدای لیست هم صفحاتی با بیشترین میزان استفاده قرار دارند. مشکل اصلی این گونه پیاده‌سازی این است که صفحات موجود در لیست باید در هر بار دستیابی به حافظه در لیست جابجا شوند که عملی بسیار هزینه بر است.

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

سورس کد lru چیست

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

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

ویدیو پیشنمایش اجرای سورس کد

Your browser does not support the video tag.

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

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

گارنتی 7 روزه بازگشت هزینه

تضمین کیفیت و گارانتی بازگشت هزینه
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:

  • ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ می‌شود.
  • و یا 80 درصد مبلغ پرداختی به حساب بانکی شما عودت داده می‌شود.

مباحث پیشنهادی در حوزه زمانبندی در سیستم عامل

کد الگوریتم زمانبندی FIFO در ++C
سورس کد الگوریتم زمانبندی FIFO در ++C
الگوریتم زمانبندی SRT در ++C سی پلاس پلاس
سورس کد الگوریتم زمانبندی SRT در ++C سی پلاس پلاس
سورس کد الگوریتم زمانبندی SJF در ++C
سورس کد الگوریتم زمانبندی SJF در ++C
سورس کد الگوریتم زمانبندی با اولویت Priority در ++C
سورس کد الگوریتم زمانبندی با اولویت Priority در ++C
امتیاز
5.00 از 2 رأی
5.00 2 رای
49,000 تومان
تاریخ انتشار: 26 آذر 1398
تاریخ بروزرسانی: 4 خرداد 1399
حجم فایل: 0.8 مگابایت
فرمت فایل CPP
نسخه: 2.0
هماهنگی با: Dev-C++ 5 و بالاتر
دانلود شده توسط: 263 نفر

تاکنون 263 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.

نظرات و دیدگاه ها
  • اسماعیل
    19 مرداد 1401
    امتیاز 5 از 5
    پاسخ

    من به دنبال سورس کدی بودم که کامنت گذاری شده باشه .امیدوارم بتونم ارائه خوبی داشته باشم

  • مدیریت و پشتیبانی
    29 بهمن 1398
    امتیاز 5 از 5
    پاسخ

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

قوانین ثبت دیدگاه

  • لطفاً دیدگاه های خود را فارسی تایپ کنید.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
  • سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.

لغو پاسخ

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

دسته‌بندی موضوعی: برنامه نویسی سی پلاس پلاس

قیمت 49,000 تومان

افزودن به علاقه مندی ها
امتیاز
5.00 از 2 رأی
5.00 2 رای
49,000 تومان

تاریخ انتشار: 26 آذر 1398
تاریخ بروزرسانی: 4 خرداد 1399
حجم فایل: 0.8 مگابایت
فرمت فایل CPP
نسخه: 2.0
هماهنگی با: Dev-C++ 5 و بالاتر
دانلود شده توسط: 263 نفر

2 بازخورد (مشاهده نظرات)

قیمت: 49,000 تومان

تماس با ما
  • دفتر پشتیبانی: 04144225175 (ساعت کاری 8:00 الی 16:00)
  • آی دی تلگرام: programerPstore
درباره پی استور

تیم توسعه پی استور با هدف ارائه مطالب مفید علمی در گرایش های مختلف پروژه های علمی مختلف را جمع آوری می کند و در قالب یک محصول تست شده و قابل اجرا همراه با توضیحات و نحوه اجرا، انتشار می دهد. امید است با عنایت الهی و کوشش اساتید و دانشجویان همراهمان بتوانیم قدم کوچکی در تولید محتوای علمی کشور داشته باشیم.

مجوز های اخذ شده
اینماد نشان ملی   پروانه نشر دیجیتال
  • حساب کاربری من
  • سوالات متداول
  • راهنمای خرید و دانلود
پی استور
  • همکاری با ما
  • قوانین و مقررات
  • حریم خصوصی
تمامی حقوق برای پی استور محفوظ است.
keyboard_arrow_up