منظور از Buffering & Caching

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

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

 Buffering

 فرآيند بافرينگ نگهداري کردن داده ها در يک ناحيه از حافظه سيستم تا زمان انتقال آن به محل ديگر را بافرينگ مي گوييم. اين ناحيه از حافظه که در آن داده ها ذخيره مي شود به عنوان بافر يا Buffer شناخته مي شود. بافرينگ زماني استفاده مي شود که سرعت ارسال و دريافت در مبدا و مقصد با هم برابر نيستند و در نهايت ممکن است اين وسط Bottleneck به وجود بيايد به اين معني که اطلاعات با سرعت زياد ارسال شوند و چون سرعت دريافت و پردازش پايين است دچار مشکل شوند. فرآيند بافرينگ هم مي تواند بصورت سخت افزاري و هم مي تواند بصورت نرم افزاري پياده سازي شود ، بيشتر بافرهايي که امروزه مورد استفاده قرار مي گيرند بافرهاي نرم افزاري هستند. بافرينگ بصورت گسترده اي امروزه در پرينترها مورد استفاده قرار مي گيرد و به ويژه در فرآيند Printer Spooling بافر نقش تاثير گذاري دارد ، از طرفي برخي از سيستم هاي ويديو آنلاين يا سرويس هاي Video Streaming نيز از بافرينگ بصورت گسترده اي استفاده مي کنند ، دقت کرده ايد که هرگاه از وايبر ويديويي را نگاه مي کنيد اگر سرعت شما کمتر از سرور باشد در کنار آن Buffering نوشته مي شود. بيشتر اوقات بافرينگ به اين شکل انجام مي شود که داده هاي ما در يک صف يا queue با يک سرعت معين نوشته و نگهداري مي شوند و از طريق يک صف يا queue ديگر با سرعت متفاوتي خوانده مي شوند . بنابراين تا اينجا متوجه شديد که دوست عزيزي که عنوان کردند بافر پرينتر مشکل دارد درست گفته است و پرينتر حافظه 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 لينوکسي است.

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

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

 

منبع:Itpro.ir