خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را

تفاوت بین Buffer و Cache چیست

تفاوت بین Buffer و Cache چیست

کد مطلب : 4683


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



Buffering Vs Caching


تفاوت بین Buffer و Cache چیست . آموزشگاه رایگان خوش آموز

Buffer سرعت جریان داده بین فرستنده و گیرنده را با هم تطبیق می دهد(مثلا در پرینترها) و در عوض Caching برای افزایش سرعت دسترسی به اطلاعاتی که مکررا و اخیرا استفاده شده میباشد. مکان بافر در حافظه اصلی یا RAM است و Cache بر روی پردازنده اجرا می شود و می توان آن را در RAM و دیسک نیز اجرا کرد.

Definition of Buffering

در گام نخست به معرفی بافر می پردازیم. Buffer جایی در حافظه اصلیRAM است که به طور موقت داده ها را هنگام انتقال بین دو دستگاه یا بین سیستم و برنامه ذخیره می کند. بافر در تطابق دادن به سرعت جریان داده ها بین فرستنده و گیرنده واقعا کمک می کند. اگر سرعت انتقال فرستنده کندتر از گیرنده باشد، buffer در رم سیستم دریافت کننده ایجاد می شود و بایت هایی که از سوی فرستنده دریافت شده را جمع آوری می کند. هنگامی که تمام بایت های داده انتقال پیدا کردند، دیتا را برای انجام عملیات در گیرنده مهیا می کند.
Buffer همچنین در زمانی که فرستنده و گیرنده دارای data transfer size مختلفی هستند هم کمک می کند. در شبکه های کامپیوتری، بافر ها برای تکه کردن (fragmentation) و جمع آوری(reassembly) داده ها استفاده می شود. در سمت فرستنده، داده های بزرگ به بسته های کوچک تقسیم می شوند و از طریق شبکه ارسال می شوند. در سمت گیرنده، یک بافر ایجاد می شود که تمام بسته های داده را جمع آوری کند تا دوباره آن بسته را reassemble کرده و همان داده در سمت فرستنده عینا در این سمت هم وجود داشته باشد.
برای application I/O، بافر همچنین از copy semantics هم پشتیبانی می کند. اجازه دهید تا Copy Semantics را با ذکر مثالی خدمت شما توضیح دهیم. فرش کنید Application ای دارای بافری از داده ها است که باید در هارد دیسک نوشته یا رایت شوند. برای این منظور Application سیستم write را فراخوانی یا Call می کند. خب، حالا فرض کنید که application بافر خود را قبل از system call تغییر دهد، در این زمان copy semantics یک ورژن از داده را در زمان system call ارائه می دهد.
Buffers ها در 3 ظرفیت اجرا می شوند که با هم بدانها نگاهی می اندازیم:

Zero Capacity

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

Bounded Capacity

در اینجا حجم حافظه بافر محدود است. فرستنده می تواند N بلوک داده ارسال کند. اگر حافظه بافر پر شود، فرستنده مسدود می شود تا فضای موجود در حافظه قابل دسترس و available شود.

Unbounded Capacity

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

Definition of Caching

Cache حافظه ای است که در پردازنده یا CPU، کپی ای از داده را نگه می دارد. ایده Cache پنهان یا حافظه پنهان، این است که بلاکهای دیسکی که اخیرا مورد استفاده قرار گرفته شده اند باید در Cache ذخیره شوند و زمانی که کاربر مجددا نیاز به دسترسی پیدا کردن به همان بلاک های دیسک را داشته باشد می تواند از طریق Cache و بدون استفاده از ترافیک شبکه، و بصورت لوکالی قضیه را handle کند.
اندازه و سایز cached memory محدود است زیرا فقط شامل داده هایی که اخیرا استفاده شده ، می باشد. هنگامی که cache file را تغییر می دهید، می توانید این اصلاحیه را در فایل اصلی نیز مشاهده کنید. در صورتی که داده های مورد نیاز شما در cached memory قرار نداشته باشند، دیتا از منبع یا سورس خود به cached memory کپی می شوند.
cache data علاوه بر RAM می تواند روی هارد دیسک هم ذخیره شود و این خود مزیتی دارد که Cache دیسک از کش RAM قابل اعتماد تر است. در صورتی که سیستم خراب شود، اطلاعات ذخیره شده در دیسک همچنان در دسترس است و از بین نمی روند. اما داده های موجود در حافظه های فرار مثل RAM، با قطع جریان برق، از بین خواهند رفت. ولی یکی از مزایای cache کردن داده در رم سرعت بسیار بالای آن است. حتی اگر ذخیره ساز شما به جای هارد دیسک، SSD Drive هم باشد، باز هم سرعت آن با رم قابل مقایسه نیست و سرعت رم به مراتب از آن بیشتر خواهد بود.

نتیجه:
Buffer و Cache، هر دو داده ها را بصورت موقت ذخیره می کنند اما هر دو برای اهداف متفاوتی مورد استفاده قرار می گیرند. Buffer عمدتا برای تطبیق دادن بین سرعت ارسال کننده و دریافت کننده مورد استفاده است و در مقابل Cache حافظه ای است که با ذخیره سازی داده ها در خود، سرعت دسترسی بدان ها را برای دفعات بعد بیشتر می کند و همین امر موجب افزایش کارایی و Performance خواهد شد.





آموزش سالیدورکز 20-2019


دیدگاه ها(0)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.

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

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید. دیدگاه ها و سوالات متفرقۀ خود را می توانید در تالارهای گفتمان خوش آموز مطرح نمایید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟

آموزش های رایگان خوش آموز