با سلام خدمت کاربران هشت آ هشت امروز با بررسی مبانی Caching با شما خواهیم بود.
Caching يک نکنولوژی استفاده شده برای زير سيستم های حافظه ، در کامپيوتر است . مهمترين هدف يک Cache افزايش سرعت و عملکرد کامپيوتر بدون تحميل هزينه های اضافی برای تهيه سيستم است .
با استفاده از Cache عمليات کاربران با سرعت بيشتری انجام خواهد شد.
کتابداری را در نظر بگيريد که در يک کتابخانه مسئول تحويل کتاب به متقاضيان است . فرض کنيد در سيستم فوق ( درخواست و تحويل کتاب ) از مفهوم Cache استفاده نمی گردد.
اولين متقاصی کتابی را درخواست می نمايد( فرض شده است که متقاضی خود نمی تواند مستقيما” کتاب مورد نظر را از قفسه مربوطه ،بردارد) ، کتابدار، کتاب مورد نظر را از قفسه مربوطه پيدا و در ادامه آن را تحويل متقاضی می نمايد.
متقاضی پس از ساعاتی مراجعه و کتاب را تحويل می دهد. کتابدار، کتاب تحويلی را مجددا” در قفسه مربوطه قرار می دهد.
پس از لحظاتی يک متقاضی ديگر مراجعه و همان کتاب قبلی را درخواست می نمايد ، کتابدار مجددا” می بايست به بخش مربوطه در کتابخانه مراجعه و پس از بازيابی کتاب ، آن را در اختيار متقاضی دوم قرار دهد.
همانگونه که ملاحظه می گردد ، کتابدار مکلف است برای تحويل هر کتاب ( ولو کتاب هائی که فرکانس استفاده از آنان توسط متقاضيان زياد باشد ) به بخش مربوطه مراجعه و پس از يافتن کتاب آن را در اختيار متقاضيان قرار دهد. آيا روشی وجود دارد که با استناد به آن بتوان عملکرد و کارآئی کتابدار را بهبود بخشيد ؟
در پاسخ به سوال فوق می توان با ايجاد يک سيستم Cache برای کتابدار ، کارآئی آن را افزايش داد. فرض کنيد بخشی را با ظرفيت حداکثر ده کتاب در مجاورت ( نزديکی ) کتابدار آماده نمائيم . کتاب هائی که توسط متقاضيان برگردانده می شود، در بخش فوق ذخيره خواهند شد.
مثال فوق را با در نظر گرفتن سيستم Cache ايجاد شده برای کتابدار مجددا” دنبال می نمائيم . در ابتدای فعاليت روزانه ، بخش Cache خالی بوده و هنوز در آن کتابی قرار نگرفته است . اولين متفقاصی مراجعه و کتابی را درخواست می نمايد .
کتابدار می بايست به بخش مربوطه مراجعه و کتاب را از قفسه مربوطه براشته و در اختيار متقاضی قرار دهد.
متقاضی پس از تحويل کتاب ، چند ساعت بعد مراجعه و کتاب را تجويل کتابدار خواهد داد. کتابدار، کتاب تحويلی را در بخش پيش بينی شده برای Cache قرار می دهد. لحظاتی بعد متقاضی ديگر مراجعه و درخواست همان کتاب را می نمايد .
کتابدار در ابتدا بخش مربوط به Cache را جستجو و در صورت يافتن کتاب ، آن را به متقاضی تحويل خواهد داد. در اين حالت ضرورتی به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود.
در روش فوق زمان تحويل کتاب به متقاضی بهبود چشمگيری پيدا خواهد کرد. در صورتيکه کتاب درخواستی توسط متقاضی در بخش Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟
در ابتدا مدت زمانی صرف خواهد شد که کتابدار به اين اطمينان برسد که کتاب درخواستی در بخش Cache موجود نمی باشد ( جستجو) يکی از چالش های اصلی در رابطه با طراحی Cache به حداقل رساندن زمان جستجو در Cache است .سخت افزارهای جديد ، زمان فوق را به صفر نزديک کرده اند.
پس از حصول اطمينان از عدم وجود کتاب در بخش Cache ، کتابدار می بايست با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختيار متقاضی قرار دهد.
با توجه به مثال فوق ، چندين نکته مهم در رابطه با Cache استنباط می گردد:
– تکنولوژی Cache ، استفاده از حافظه های سريع ولی کوچک ، بمنظور افزايش سرعت يک حافظه کند ولی با حجم بالا است
– زمانيکه از Cache استفاده می گردد ، در ابتدا می بايست محتويات آن بمنظور يافتن اطلاعات مورد نظر بررسی گردد.
فرآيند فوق را Cache hit می گويند. در صورتيکه اطلاعات مورد نظر در Cache موجود نباشند (Cache miss) ، کامپيوتر می بايست در انتظار تامين داده های خود از حافظه اصلی سيستم باشد ( حافظه ای کند ولی با حجم بالا )
– اندازه Cache محدود بوده وسعی می گردد که ظرفيت فوق حتی المقدور زياد باشد ، ولی بهرحال اندازه آن نسبت به رسانه های ذخيره سازی ديگر بسيار کم است .
– اين امکان وجود خواهد داشت که از چندين لايه Cache استفاده گردد.