منظور از Buffering & Caching چیست؟

 Buffering

 فرآیند بافرینگ نگهداری کردن داده ها در یک ناحیه از حافظه سیستم تا زمان انتقال آن به محل دیگر را بافرینگ می گوییم. این ناحیه از حافظه که در آن داده ها ذخیره می شود به عنوان بافر یا Buffer شناخته می شود. بافرینگ زمانی استفاده می شود که سرعت ارسال و دریافت در مبدا و مقصد با هم برابر نیستند و در نهایت ممکن است این وسط Bottleneck به وجود بیاید به این معنی که اطلاعات با سرعت زیاد ارسال شوند و چون سرعت دریافت و پردازش پایین است دچار مشکل شوند. فرآیند بافرینگ هم می تواند بصورت سخت افزاری و هم می تواند بصورت نرم افزاری پیاده سازی شود ، بیشتر بافرهایی که امروزه مورد استفاده قرار می گیرند بافرهای نرم افزاری هستند. بافرینگ بصورت گسترده ای امروزه در پرینترها مورد استفاده قرار می گیرد و به ویژه در فرآیند Printer Spooling بافر نقش تاثیر گذاری دارد ، از طرفی برخی از سیستم های ویدیو آنلاین یا سرویس های Video Streaming نیز از بافرینگ بصورت گسترده ای استفاده می کنند ، دقت کرده اید که هرگاه از وایبر ویدیویی را نگاه می کنید اگر سرعت شما کمتر از سرور باشد در کنار آن Buffering نوشته می شود. بیشتر اوقات بافرینگ به این شکل انجام می شود که داده های ما در یک صف یا queue با یک سرعت معین نوشته و نگهداری می شوند و از طریق یک صف یا queue دیگر با سرعت متفاوتی خوانده می شوند . بنابراین تا اینجا متوجه شدید که دوست عزیزی که عنوان کردند بافر پرینتر مشکل دارد درست گفته است و پرینتر حافظه Cache ندارد.

مطلب پیشنهادی  کش (Cache) چیست و کاربرد آن

Caching

فرآیند Caching یا کشینگ به ذخیره کردن داده ها در یک قسمت جداگانه به نام Cache در سیستم گفته می شود تا در صورت نیاز به دسترسی به داده های مورد نظر در آینده سرعت دستیابی به این داده ها زیادتر از حالت عادی باشد. زمانیکه یک داده درخواست داده می شود قبل از اینکه حافظه RAM و یا هارد دیسک جستجو شود ، محتویات Cache سیستم بازرسی می شود ، در صورتیکه داده مورد نظر در Cache سیستم وجود داشته باشد سرعت دسترسی به آن بسیار بالا خواهد بود. اگر داده درخواستی در Cache وجود داشته باشد در اصطلاح فنی به آن Cache Hit گفته می شود. بدون شک با تقاسیری که گفتیم زمانیکه داده ای از Cache سیستم خوانده می شود سرعت خواندن آن بسیار بالاتر از محل اصلی است که داده در آن ذخیره شده است ، اگر داده درخواستی در Cache وجود نداشت در اصطلاح فنی یک Cache Miss اتفاق افتاده است. در چنین حالتی داده بایستی از محل اصلی ذخیره سازی آن درخواست داده شود که ای فرآیند طبیعتا زمان بیشتری را می طلبد.

فرآیند Caching در محل های متنوعی انجام می شود ، در CPU با استفاده از فرآیند Caching شما تا حدود زیادی سرعت دسترسی به اطلاعات را بالا می برید زیرا سیستم به جای استفاده از حافظه RAM از حافظه Cache استفاده می کند ، دقت کنید که حافظه Cache در سیستم ها معمولا بین CPU و حافظه RAM قرار می گیرد و به همین دلیل سرعت دسترسی به آن توسط CPU از سرعت دسترسی به RAM بالاتر است. اما این تنها جایی نیست که در آن فرآیند Caching مورد استفاده قرار می گیرد ، شما وقتی به یک وب سایت سر می زنید محتویات موجود در آن ممکن است در سیستم شما Cache شود و در مرحله بعدی بازدید از وب سایت سرعت باز شدن صفحات شما که قبلا در سیستم شما ذخیره شده اند بسیار بالاتر خواهد رفت. با توجه به اینکه ساختار اصلی انجمن تخصصی فناوری اطلاعات ایران بر اساس شبکه و زیرساخت بنا شده است بد نیست مثال شبکه ای از این جریان هم داشته باشیم ، امروزه در شبکه های بزرگ برای صرفه جویی در مصرف اینترنت در شبکه از یک Cache Server استفاده می شود تا صفحات اینترنتی را در خود Cache کند و در صورت درخواست کاربران صفحه Cache شده را به کاربر نمایش دهد ، از Cache Server های معروف دنیا که به امید خدا در آینده ای نه چندان دور در خصوص پیاده سازی آنها صحبت خواهیم کرد می توانیم به Squid Cache Server اشاره کنیم که یک Cache Server لینوکسی است.

مطلب پیشنهادی  تفاوت بین هاردهای SATA از نوع PC و SERVER

تفاوت Caching و Buffering در چیست ؟

تنها تشابهی که در بین فرآیند Caching و Buffering وجود داشت این بود که داده ها در یک محل موقتی به غیر از محل اصلی نگهداری آنها ذخیره شوند اما تفاوت های آنها کاملا اساسی است. Caching برای افزایش سرعت دسترسی به داده ها در زمانیکه از دستگاه های ذخیره سازی کند استفاده می کنیم بکار می رود، ایده اصلی Caching این است که داده هایی که بصورت مکرر مورد استفاده قرار می گیرند بایستی در محلی قرار بگیرند که سریعتر در دسترس قرار بگیرند ، برای مثال شما در یک Cache Server ای به نام Squid وب سایت های پر بازدید را Cache می کنید نه همه وب سایت ها را ، اما Buffering برای تنظیم کردن سرعت ارسال و دریافت اطلاعات در دو نوع ارتباط با سرعت های مختلف مورد استفاده قرار می گرفت تا مشکل Bottleneck در این میان پیش نیاید و مهمترین کاربرد آن نیز همانطور که عنوان کردیم در پرینتر Spooler است.

 

منبع:Itpro.ir