بافر و بافرینگ
بافر ناحیه است واسط در عملیات ورودی و خروجی و در این ناحیه اقلا یک رکورد ( در حالت فایل بلاک بندی نشده ) و یا اقلا یک بلاک در حالت فایل بلاک بندی شده جای داده میشود و اساسا برای ایجاد هماهنگی بین عملیات پردازنده ورودی/ خروجی و واحد پردازش مرکزی در شرایطی تسریع این عملیات به کار میرود.
در سیستم فایل , بافر معمولا از منطقهای از حافظه اصلی به برنامه فایل پرداز تخصیص داده میشود که به آن منطقه بافر میگویند (و گاه از حافظه نهان استفاده میشود.)
بافرها به سه روش ساخته میشود.
با ایجاد ناحیهای از حافظ در برنامه و با اجرای یک ماکرو که محتوای بافر را با فایلهای تحت پردازش مرتبط میکند(در این حالت برنامهساز خود را ایجاد میکند)
یا اجرای یک ماکرو, که از سیستم در خواست ایجاد بافر میکند.
خود سیستم عامل وقتی که فایل باز میشود , اقدام به ایجاد بافر (ها) میکند و پس از بسته شدن فایل , بافر(ها) را باز پس میگیرد.
چگونگی دستیابی برنامه به محتوای بافر
برنامه به دو صورت میتواند به محتوای بافر دستیابی داشته باشد:
روش موسوم به اسلوب انتقالی
روش موسوم به اسلوب مکان نمایی یا مکان گیری (یا اسلوب تعویض)
در روش اول , رکود از بافر ورودی به ناحیه کاری برنامه انتقال داده میشو و یا از ناحیه کاری به بافر خروجی عمل بلاک بنید و بلاک گشایی توسط سیستم انجام میشود و برنامه به بافر دستیابی ندارد و بافر خاص خود را دارد .(همان ناحیه کاری کاربر)
در این حالت, یک فرمان کانال برای هریک از بافرها وجود دارد و عملیات ورودی /خروجی نمیتوانند هر دو از یک بافر انجام پذیرد و روشن است که کاربر نیاز به ناحیه کاری خاصی دارد . در روش دوم, سیستم مکان بافر حاوی رکورد نظر کاربر را به نحوی به برنامه فایل پرداز مینمایاند, مثلاً از طریق گذاشتن آدرس آن در یک ثبات قرار دادی یا در ناحیه ای تعریف شده توسط برنامه در واقع کاربر از همان بافر به عنوان ناحیه کاری استفاده میکند و عمل بلاک بندی و بلاک گشایی را خود برنامه انجام میدهد.
توجه داریم که بکارگیری دو اسلوب انتقالی و مکان نمایی , در هر یک از دو عمل ورودی یا خروجی , یا هر دو امکان پذیر است.
بافر از نطر محل ایجاد
اهمیت بافر و مدیریت آن
خالی کردن بافر
انواع بافرینگ
از نظر تعداد بافرهایی که به عملیات ورودی / خروجی برنامه فایل پرداز تخصیص می یابد , انواع زیر وجود دارد:
بافرینگ ساده
بافرینگ مضاعف
بافرینگ ساده
در این بافرینگ ,یک بافر در اختیار برنامه فایل پرداز قرار داده میشود . در بافرینگ ساده طبعاً زمان انتظار واحد پردازش مرکزی و اجرای برنامه افزایش مییابد در اثنایی که بافر پر میشود , واحد پردازش مرکزی حالت عاطل دارد . در محیط چند برنامهای میتوان از زمان برای برنامههای دیگر استفاده کرد. میبینیم که در این حالت امکان همروندی عملیات CPU و عملیات پردازشگر ورودی/ خروجی وجود ندارد . البته در اسلوب مکان نمایی , در اسلوب انتقالی چون برنامه بافر خاص خود را دارد و در صورتیکه فایل بلاک بنید نشده باشد, این همروندی تا حدی امکان پذیر است . ضمن اینکه این موضع به نوع رسانه نیز بستگی دارد
بافرینگ مضاعف
با دو بافر , میتوان در اثناء خواندن یک بلاک و انتقال ا، به یک بافر , محتوای بافر دیگر را که پر است , پردازش کرد .
در پردازش فایلها به طور پی در پی و انواع (یعنی تعداد زیادی بلاک خوانده میشوند . ) حتما لازم است دو بافر در اختیار داشته باشیم , و گر نه عملیات نه سریع خواهد بود و نه کارا.
بدیهی است زمانی را که واحد پردازش مرکزی برای پردازش محتوای یک بار, مصرف میکند باید کمتر از زمانی باشد که پردازنده ورودی خروجی و کنترل کننده دیسک برای انتقال بلاک به یک بافر لازم دارند
منبع:WWW.ROSHD.IR