در بعضی از کاربردها، لازم است که فایل به صورت پی در پی و یا

Download Report

Transcript در بعضی از کاربردها، لازم است که فایل به صورت پی در پی و یا

‫مقدمه‬
‫‪ ‬در بعضی از کاربردها‪ ،‬الزم است که فایل به صورت پی در پی و‬
‫یا ترتیبی خوانده شود‪.‬‬
‫‪ ‬داشتن مدیریت بافرینگ کارآ و امکانات تخصیص بافر‪ ،‬نقش‬
‫مهمی در بهبود کارآیی پردازش تمام فایل‪ ،‬به ویژه در حالت پی‬
‫در پی ایفا می کند‪.‬‬
‫‪ ‬عالوه بر آن تکنیکهای متعددی‪ ،‬چه نرم افزاری و چه سخت‬
‫افزاری وجود دارند که منجر به بهبود کارآیی دیسک می شوند‪.‬‬
‫‪ ‬این تکنیکها زمان پیگرد(‪ )s‬و درنگ دورانی (‪ )r‬را کاهش می دهند و‬
‫یا سرعت پردازش فایل را افزایش می دهند‪.‬‬
‫‪ ‬در این قسمت به بررسی این تکنیکها می پردازیم‪.‬‬
‫‪1‬‬
‫‪ -1‬سازماندهی داده ها با استفاده از‬
‫سیلندرها‬
‫‪ ‬چون استوانه جویی تقریباً نصف میانگین زمان دستیابی به‬
‫بلوکها را شامل می شود‪ ،‬در بسیاری از کاربردها بهتر است‬
‫داده هایی که با احتمال زیادی با هم دستیابی می شوند‪ ،‬در‬
‫یک سیلندر قرار داده شوند‪.‬‬
‫‪ ‬اگر فضای کافی وجود نداشته باشد‪ ،‬می توان از چند سیلندر‬
‫همجوار استفاده کرد‪.‬‬
‫‪ ‬در واقع اگر تمام بلوکهای موجود در یک شیار یا یک سیلندر را‬
‫بطور ترتیبی بخوانیم‪ ،‬می توانیم از تمام زمانهای پیگرد و درنگ‬
‫دورانی( به جز اولین پیگرد برای انتقال به سیلندر و اولین درنگ‬
‫دورانی جهت انتقال بر روی اولین بالک در سیلندر) صرف نظر‬
‫کرد‪.‬‬
‫‪2‬‬
‫‪ -2‬استفاده از الگوریتمهای مناسب‬
‫جهت حرکت هد خواندن ‪ /‬نوشتن‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در یک محیط چند برنامه ای که امکان اجرای چند برنامه بطور‬
‫همزمان بر روی ‪ CPU‬وجود دارد‪ ،‬سیستم عامل باید به حرکت‬
‫بر روی دیسک برای چند برنامه پاسخ دهد‬
‫بنابراین امکان بی نظمی در اثر حرکت زیاد هد وجود دارد‬
‫بی نظمی باعث افزایش زمان استوانه جویی می شود‪.‬‬
‫بهتر است در چنین سیستمهایی از الگوریتمهای مناسب برای‬
‫پاسخگویی به درخواستهای برنامه ها برای دسترسی به‬
‫دیسک استفاده کرد‪.‬‬
‫به این الگوریتمها‪ ،‬الگوریتمهای زمان بندی دیسک می گویند‪.‬‬
‫‪3‬‬
‫الگوریتمهای زمان بندی دیسک(‪)1/5‬‬
‫‪ ‬الگوریتم ‪ FCFS‬یا ‪:FIFO‬‬
‫‪ ‬درخواستها به ترتیب ورود سرویس داده می شوند‬
‫‪ ‬مثال‪ :‬اگر هد خواندن‪ /‬نوشتن بر روی استوانه ی ‪ 80‬باشد و درخواستها‬
‫به ترتیب زیر به هد ارسال شوند‪ ،‬در صورت استفاده از الگوریتم ‪FCFS‬‬
‫میانگین حرکت هد چقدر خواهد بود؟‬
‫‪: 30,55,95,70,150,120,180,25‬در خواستها ‪‬‬
‫‪ ‬حل‪:‬‬
‫)‪80−30 + 55−30 + 95−55 + 95−70 + 150−70 + 150−120 + 180−120 +(180−25‬‬
‫‪8‬‬
‫‪=58.13‬‬
‫‪4‬‬
‫الگوریتمهای زمان بندی دیسک(‪)2/5‬‬
‫‪ ‬الگوریتم ‪:(Shortest Seek Time First) SSTF‬‬
‫‪ ‬به درخواستهایی که به مکان فعلی هد نزدیکتر است زودتر پاسخ می‬
‫دهد‬
‫‪ ‬مثال‪ :‬اگر هد خواندن‪ /‬نوشتن بر روی استوانه ی ‪ 80‬باشد و درخواستها‬
‫به ترتیب زیر به هد ارسال شوند‪ ،‬در صورت استفاده از الگوریتم‬
‫‪SSTF‬میانگین حرکت هد چقدر خواهد بود؟‬
‫‪: 30,55,95,70,150,120,180,25‬در خواستها ‪‬‬
‫‪ ‬حل‪:‬‬
‫)‪80−70 + 95−70 + 120−95 + 120−150 + 150−180 + 180−55 + 55−30 +(30−25‬‬
‫‪8‬‬
‫‪=34.38‬‬
‫‪ ‬مشکل این روش آن است که امکان گرسنگی وجود دارد‪.‬‬
‫‪5‬‬
‫الگوریتمهای زمان بندی دیسک(‪)3/5‬‬
‫‪ ‬الگوریتم پیمایش(‪ )SCAN‬یا آسانسور‪:‬‬
‫‪ ‬در این روش هد از یک طرف دیسک به طرف دیگر مدام در حال‬
‫حرکت است و در این بین به درخواستها پاسخ می دهد وقتی به‬
‫یک انتها می رسد حرکت را به طرف انتهایی دیگر در جهت عکس‬
‫تکرار می کند‪.‬‬
‫‪ ‬مثال‪ :‬اگر هد خواندن‪ /‬نوشتن بر روی استوانه ی ‪ 80‬باشد و‬
‫درخواستها به ترتیب زیر به هد ارسال شوند‪ ،‬در صورت استفاده از‬
‫الگوریتم ‪ SCAN‬میانگین حرکت هد چقدر خواهد بود؟(حرکت به‬
‫سمت شیارهای خارجی است و تعداد شیارها ‪ 200‬است )‬
‫‪: 30,55,95,70,150,120,180,25‬در خواستها ‪‬‬
‫‪200−80+200−25‬‬
‫‪ ‬حل‪= 39.38 :‬‬
‫‪8‬‬
‫‪6‬‬
‫الگوریتمهای زمان بندی دیسک(‪)4/5‬‬
‫‪ ‬الگوریتم پیمایش حلقوی )‪:(C-SCAN‬‬
‫‪ ‬در این روش هد تنها در یک جهت حرکت می کند تا به انتهای دیسک‬
‫برسد و در این بین به درخواستهای مسیر پاسخ می دهد‪ .‬وقتی به انتها‬
‫رسید سریعاً به شیار ابتدایی برمی گردد و این کار را تکرار می کند( زمان‬
‫بازگشت به شیار ابتدایی را صفر در نظر می گیریم)‬
‫‪ ‬مثال‪ :‬اگر هد خواندن‪ /‬نوشتن بر روی استوانه ی ‪ 80‬باشد و درخواستها‬
‫به ترتیب زیر به هد ارسال شوند‪ ،‬در صورت استفاده از الگوریتم ‪C-SCAN‬‬
‫میانگین حرکت هد چقدر خواهد بود؟(حرکت به سمت شیارهای خارجی‬
‫است و تعداد شیارها ‪ 200‬است )‬
‫‪: 30,55,95,70,150,120,180,25‬در خواستها ‪‬‬
‫‪200−80+0+70‬‬
‫‪ ‬حل‪= 23.75 :‬‬
‫‪8‬‬
‫‪7‬‬
‫الگوریتمهای زمان بندی دیسک(‪)5/5‬‬
‫‪ ‬الگوریتم پیمایش ‪:LOOK‬‬
‫‪ ‬مانند الگوریتم ‪ C-SCAN‬است با این تفاوت که تا آخرین درخواست در یک‬
‫جهت پیش می رود‬
‫‪ ‬مثال‪ :‬اگر هد خواندن‪ /‬نوشتن بر روی استوانه ی ‪ 80‬باشد و درخواستها‬
‫به ترتیب زیر به هد ارسال شوند‪ ،‬در صورت استفاده از الگوریتم ‪C-SCAN‬‬
‫میانگین حرکت هد چقدر خواهد بود؟(حرکت به سمت شیارهای خارجی‬
‫است و تعداد شیارها ‪ 200‬است )‬
‫‪: 30,55,95,70,150,120,180,25‬در خواستها ‪‬‬
‫‪180−80+0+70‬‬
‫‪ ‬حل‪= 21.27 :‬‬
‫‪8‬‬
‫‪ ‬الگوریتم ‪:LIFO‬‬
‫‪ ‬در خواستها را به ترتیب عکس ورود پاسخ می دهد‬
‫‪8‬‬
‫‪ -3‬استفاده از سیستم ‪RAID‬‬
‫‪Redundant Array of Inexpensive Disks : RAID ‬‬
‫‪ ‬آرایه ای از دیسکهای مستقل است که بطور موازی عملیات‬
‫‪ I/O‬را انجام می دهند‬
‫‪ ‬بدین ترتیب باعث بهبود کارآیی در ورودی و خروجی سیستم می‬
‫شوند‪.‬‬
‫‪ ‬ایده ی اصلی‪ RAID‬ترکیب چندین هارد دیسک مستقل‪ ،‬ارزان و‬
‫با ظرفیت پایین و استفاده از آنها به عنوان یک هارد دیسک‬
‫بزرگ و سریع است‬
‫‪ RAID ‬شامل هفت سطح است که بین ‪ 0‬تا ‪ 6‬شماره گذاری‬
‫می شوند‪.‬‬
‫‪ ‬این سطوح دارای معماری (طراحی) مختلفی اند‬
‫‪9‬‬
‫‪ -3‬استفاده از سیستم ‪(RAID‬ادامه)‬
‫‪ ‬ویژگیهای مشترک سطوح ‪:RAID‬‬
‫‪ RAID .1‬مجموعهای از گرداننده های دیسک فیزیکی است‪.‬‬
‫سیستم عامل آنرا یک درایو منطقی می بیند‪.‬‬
‫‪ .2‬داده ها بر روی گرداننده های فیزیکی هر آرایه توزیع می شوند‬
‫‪ .3‬ظرفیت افزونگی دیسک‪ ،‬برای ذخیره اطالعات توازن (‪ )parity‬به‬
‫کار می رود که قابلیت ترمیم داده ها در صورت خرابی دیسک را‬
‫تضمین می کند‬
‫‪ ‬جزئیات ویژگیهای ‪ 1‬و ‪ 2‬برای هر سطح ‪ RAID‬متفاوت است‬
‫‪ ‬سطح صفر از ویژگی ‪ 3‬پشتیبانی نمی کند‪.‬‬
‫‪10‬‬
‫‪ -4‬حافظه ی نهان دیسک‬
‫‪ ‬حافظه نهان دیسک حافظه ای سریعتر و کوچکتر نسبت به دیسک‬
‫است‪.‬‬
‫‪ ‬حاوی نسخه ای از چند قطاع دیسک می باشد‬
‫‪ ‬وقتی درخواستی برای داده خاصی صورت می گیرد بررسی می‬
‫شود که آیا آن داده در حافظه ی نهان قرار دارد یا نه‪.‬‬
‫‪ ‬اگر وجود داشته باشد درخواست از طریق حافظه ی نهان برآورده می‬
‫شود‬
‫‪ ‬در غیر اینصورت درخواست به دیسک ارجاع داده می شود تا داده خوانده‬
‫شده و به حافظه ی نهان منتقل شود‬
‫‪ ‬به دلیل محلی بودن ارجاعات وقتی بلوکی از داده ها به حافظه ی‬
‫نهان واکشی می شود احتماال ً درخواستهای بعدی نیز در همان بلوک‬
‫داده ای منتقل شده می باشد‪.‬‬
‫‪11‬‬
‫‪ -5‬تکنیک در هم یا تداخل بالکها‬
‫‪ ‬بالکها بصورتی قرار می گیرند که هد پس از خواندن بالک فعلی‬
‫و پردازش آن دقیقاً بر روی بالک قبلی قرار گیرد‬
‫قرار گیری بالکها بدون تکنیک در هم‬
‫قرار گیری بالکها با تکنیک در هم‬
‫‪12‬‬
‫‪-6‬تغییر در نقطه ی آغازین شیارها‬
‫‪ ‬در حالت معمولی نقطه ی آغازین شیارها به صورتی است که در یک راستا می‬
‫باشند‬
‫‪ ‬در این صورت اگر بخواهیم پس از خواندن آخرین بلوک شیار‪ ،‬اولین بالک شیار بعدی‬
‫خوانده شود باید یک دور کامل منتظر بمانیم‬
‫‪ ‬در روش تغییر نقطه ی آغازین شیارها‪ ،‬نقطه ی آغاز هر شیار نسبت به شیار‬
‫قبلی زاویه ی ‪ ϕ‬می سازد( مقدار این زاویه بستگی به سرعت چرخش دیسک‬
‫دارد)‬
‫‪ ‬بدین ترتیب با عبور از یک شیار به شیار بعدی هد دقیقاً بر روی اول بالک قرار می‬
‫گیرد‪.‬‬
‫‪13‬‬