بافر چرخشی

دانشنامه عمومی

بافِر چرخشی ( به انگلیسی: Circular buffer ) یا بافر حلقه ای ( به انگلیسی: Ring buffer ) یک ساختمان داده است که از یک حافظه میانگیر با حجم ثابت به گونه ای استفاده می کند که گویا ابتدا و انتهای آن به هم وصل شده اند. این ساختمان در ذخیره کردن روانه ی داده ها ( داده های در حال دریافت ) کمک می کند.
یکی از کاربردهای بافر چرخشی این است که نیازی نیست هنگامی که یکی از عناصر حذف شد، مکان بقیهٔ عناصر را تغییر دهیم. به عبارت دیگر، بافر چرخشی برای FIFO ( خروج به ترتیب ورود ) مناسب است در حالی که بافرهای معمولی برای LIFO ( هر داده ای که آخر آمد، اول خارج می شود ) مناسب هستند.
بافر چرخشی راهبرد خوبی برای اجرای یک صف با حجم ثابت است. باید برای صف ابتدا یک حجم مشخص کنیم، آنگاه بافر چرخشی کاملاً به صورت ایده آل رفتار خواهد کرد.
در بعضی مواقع، رونویسی یک بافر حلقوی می تواند برای مثال در مولتی مدیا ( چندرسانه ای ) استفاده شود. اگر این بافر به عنوان بافر احاطه شده در مسئله تولیدکننده - مصرف کننده استفاده شود، پس احتمالاً دلخواه مصرف کننده است ( برای مثال یک مولد صوتی ) که داده های قدیمی را رونویسی کند اگر مصرف کننده ( برای مثال کارت صدا ) نتواند به طور لحظه ای خودش را برساند و ادامه دهد همچنین خانواده LZ77 از الگوریتم های فشرده سازی بدون ازدست رفتن داده بر این فرض عمل می کند که رشته هایی که اخیراً بیشتر در جریان داده دید شده اند بیشتر احتمال دارند که به زودی در جریان رخ دهند. پیاده سازی این اخیرترین داده ها را در یک بافر حلقوی ذخیره می کند.
نخست، بافر چرخشی با طولی از پیش تعیین شده و خالی از داده شروع به کار می کند. برای نمونه، در اینجا یک بافر ۷ خانه ای می بینیم:
به عنوان مثال، عدد ۱ را در یکی از خانه های بافر قرار می دهیم ( موقعیت اولین داده مهم نیست ) :
سپس برای نمونه اعداد ۲ و ۳ را به بافر اضافه می کنیم که آنگاه پس از ۱ قرار می گیرند:
اگر بخواهیم دو داده را از بافر حذف کنیم، قدیمی ترین داده ها حذف خواهند شد، برای نمونه در اینجا ۱ و ۲ حذف می شوند:
اگر بافر درون خود ۷ عنصر ( به اندازهٔ ظرفیت خود ) داشت، یعنی کاملاً پر شده است:
حال اگر بخواهیم دو دادهٔ تازه به بافر اضافه کنیم - درحالی که پر شده است - شروع به جای نوشتن ( overwrite ) قدیمی ترین داده ها می کند. برای مثال در اینجا اگر دو دادهٔ A و B را اضافه کنیم، جای ۳ و ۴ که قدیمی ترین داده ها هستند می آیند:
عکس بافر چرخشیعکس بافر چرخشیعکس بافر چرخشیعکس بافر چرخشیعکس بافر چرخشیعکس بافر چرخشی
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس