بهبود کارایی سیستم فایل (1)
بهبود کارایی سیستم فایل (1)
دپارتمان آموزش کامپیوتر – کیش تک؛
بهبود کارایی سیستم فایل
- در بسياري از كاربردها لازم است كه فايل به صورت ترتيبي و با پيدرپي خوانده شود.
- داشتن مديريت بافرينگ كارا و امكانات تخصيص بافر، نقش مهمي در بهبود كارآيي پردازش فايل به ويژه در حالت پيدرپي ايفا ميكند.
- تكنيكهاي مختلف سختافزاري و نرمافزاري نيز منجر به بهبود كارآيي ديسك ميشوند.
- اين تكنيكها از سه طريق عمل ميكنند:
- كاهش زمان پيگرد (s)
- كاهش زمان درنگ دوراني (r)
- افزايش سرعت پردازش فايل
-
تكنيكهاي كاهش زمان استوانه جويي(پيگرد):
- سازماندهي دادهها با استفاده از سيلندرها(استوانهها)
- استفاده از ديسكها با بازوي ثابت
- استفاده از الگوريتمهاي مناسب جهت حركت هد
- توزيع فايل روي چند ديسك(RAID)
-
تكنيكهاي كاهش زمان درنگ دوراني:
- تداخل بلاكها (درهمچيني بلاكها)(interleaving)
- تغييرمكان نقطه شروع شيارها(track staggering)
- پراكنده خواني
-
تكنيكهاي افزايش سرعت پردازش فايل:
- استفاده از حافظه نهان ديسك
تكنيكهاي كاهش زمان استوانه جويي – سازماندهي دادهها با استفاده از سيلندرها (استوانهها)
- چون زمان پيگرد تقريباً نصف زمان دستيابي به بلوكهاست، بهتر است دادههايي كه با احتمال زياد باهم دستيابي ميشوند، در يك سيلندر قرار گيرند.
- اگر فضاي خالي موجود نبود، ميتوان از چند سيلندر همجوار استفاده شود.
نکته1: در واقع اگر تمام بلوكهاي يك شيار يا سيلندر را به طور ترتيبي بخوانيم، ميتوان از تمام زمانهاي پيگرد و درنگ (بجز اولين آن) صرف نظر كنيم.
- اين روش در مواردي كه بلوكها روي ديسك به ترتيب خوانده و نوشته ميشوند و فقط يك فرآيند در هرزمان از ديسك استفاده كند بسيار مفيد است.
نکته2: در مواردي با وجود چندين فرآيند موازي در استفاده از فايل اين روش مناسب نيست.
تكنيكهاي كاهش زمان استوانه جويي – استفاده از ديسكها با بازوي ثابت
- در اين ديسكها به ازاي هر شيار از رويه، يك نوك خواندن/ نوشتن به بازو متصل است و بازو حركتي ندارد.
- در اين تكنيك ايدهآل ترين حالت بوجود ميآيد به طوري كه زمان استوانهجويي صفر است.
- اين روش اصولاً سختافزاري بوده و هزينه آن بسيار بالاست.
تكنيكهاي كاهش زمان استوانه جويي – استفاده از الگوريتمهاي مناسب جهت حركت هد
- چنانچه ذكر شد با تقويت لوكاليتي، ميتوان زمان خواندن فايل را در روش انبوه كاهش داد.
- همچنين با استفاده از بافرينگ مضاعف ميتوان زمان پردازش فايلها را كم نمود.
- اما در محيطهاي چندبرنامهاي سيستمعامل بايد به حركت بر روي ديسك براي چند برنامه پاسخ دهد.
- در اين حالت امكان بينظمي در اثر حركت زياد هد وجود دارد.
- اين حركت باعث افزايش زمان استوانه جويي ميشود.
نکته: با توجه به شرايط فوق، استفاده از الگوريتمهاي مناسب جهت پاسخگويي به درخواست برنامهها جهت دسترسي به ديسك پيشنهاد ميشود.
جهت ثبت نام در دوره های کامپیوتر ما اینجا کلیک کنید.
الگوريتم FCFS يا (First In First Out-First Come First Serve) FIFO
- سادهترين شكل زمانبندي ديسك، سرويس به ترتيب ورود (FCFS) يا خروج به ترتيب ورود (FIFO) ميباشد.
- امتياز اين روش عادلانه بودن آن است زيرا درخواستها به ترتيب وارد شدن به صف پردازش ميشوند. اما اين روش غالباً سريعترين روش نيست.
- در اين روش اگر فقط چند فرآيند نياز به دستيابي داشته باشند و سكتورهاي مجاور درخواست شوند كارآيي خوبي خواهيم داشت.
- اما چنانچه فرآيندهاي زيادي بر سر ديسك رقابت كنند، اين تكنيك كارآيي مناسبي نخواهد داشت.
:مثال: شماره سيلندرهاي درخواستي موجود در صف يك ديسك به ترتيب از چپ به راست عبارتند از
98-183-37-122-14-124-65-67
اگر در ابتداي كار، هد در سيلندر 53 باشد، كل مجموع حركت هد در الگوريتم FIFO چند سيلندر خواهد بود؟
حل: هد ابتدا از سيلندر 53 به 98 ميرود با 45=53-98 حركت. به همين ترتيب از سيلندر 98 به سراغ سيلندر 183 ميرود با 85=98-183 حركت. پس:
(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=640
توجه: مشكل اين روش اين است كه هد ممكن است حركات شديدي داشته باشد. مثلا از 122 به 14 برود و مجدداً به 124 برگردد.
الگوريتم (Shortest Seek Time First) SSTF
- در اين روش در خواستهاي نزديك به محل فعلي هد زودتر اجرا ميشوند.
- به عبارت ديگر ايده اصلي اين الگوريتم، سرويس بر اساس كوتاهترين زمان پيگرد (SSTF) ميباشد.
- الگوريتم SSTF درخواستي را انتخاب ميكند كه نسبت به موقعيت زمان فعلي هد، كمترين تفاضل استوانه جويي(نزديكترين شيار) را دارد.
- چون زمان استوانهجويي با تعداد شيارهايي كه توسط هد پيموده ميشود رابطه مستقيم دارد، تعداد كمتر شيارهاي پيموده شده كارآيي بيشتري به همراه دارد.
نکته1: اين روش داراي مشكل گرسنگي (starvation) است: اگر به طور مداوم درخواستهايي نزديك به محل فعلي هد وارد صف شوند، اين امكان وجود دارد كه درخواستهاي دورتر به طور مكرر به تعويق بيفتند.
مثال: اگر شماره سيلندرهاي درخواستي 98-183-37-122-14-124-65-67 (از راست به چپ) بوده و حركت از سيلندر 53 شروع شود، ترتيب سرويسدهي و كل مجموعه حركت هد در الگوريتم SSTF چه اندازه خواهد بود؟
حل:
12+2+30+23+84+24+2+59=236
همانطور كه مشاهده ميكنيد نسبت به روش قبل با تعداد حركت 640، اين روش بهبود زيادي داشته است.
نكته2: روش SSTF بهينه نيست.
اگر مثال فوق را به صورت زير از چپ به راست سرويس دهيم كل حركات 208 خواهد شد.
53, 37, 14, 65, 67, 98, 122, 124, 183