مبحث لوکالیتی و مدیریت فضای آزاد دیسک
مبحث لوکالیتی و مدیریت فضای آزاد دیسک
دپارتمان آموزش کامپیوتر – کیش تک؛
مدیریت فضای آزاد دیسک
- فضاي آزاد نيز همانند فضاي تخصيص يافته به فايل بايد مديريت شود.
- براي اجراي هريك از تكنيكهاي تخصيص فايل، اطلاعات كافي درباره بلوكهاي روي ديسك ضروري است.
- لذا، علاوه برجدول تخصيص فايل به جدول تخصيص ديسك نيز نياز داريم. بعضي از تكنيك هاي پياده سازي شده را بررسي مي كنيم.
1. روش جدولهاي بيتي: اين روش از برداري استفاده ميكند كه به ازاي هربلوك يك بيت دارد. مقدار «صفر» نشان دهنده بلوك آزاد و مقدار «يك» نشان دهنده بلوك استفاده شده است. براي طرح شكل مربوط به تخصيص فايل پيوسته، به برداري با طول 35 نياز است كه مقدارش در زير آمده است:
مزاياي روش جدولهاي بيتي
ميزان حافظه مورد نياز (بايت) براي بلوك بيتي به صورت زير محاسبه ميشود:
براي ديسك 16 گيگابايتي با بلوكهاي 512 بيتي، جدول تقريبا 4 مكابايت فضا نياز دارد.
16*(1024)3/(512*8)=4194304≈ 4 MB
2. روش بخش هاي آزاد زنجيره ای: بخش هاي آزاد ممكن است با استفاده از اشارهگر و مقدار طول درهر بخش، با هم زنجير شوند.
- اين روش سربار فضاي كوچكي دارد، زيرا نياز به جدول تخصيص ديسك نيست و فقط نياز به اشاره گر ابتداي زنجير و طول اولين بخش است.
- اين روش براي تمام روشهاي تخصيص فايل مناسب است.
- چنانچه هربار يك بلوك تخصيص يابد، بلوك آزاد ابتداي زنجير انتخاب ميشود و اولين اشارهگر با مقدار طول تنظيم ميگردد.
- اگر تخصيص براي بخشهايي با طول متغير انجام شود، ممكن است از الگوريتم اولين برازش استفاده شود: هربار سرآيندهاي هر بخش بررسي ميشوند تا بخش آزاد مناسب بعدي در زنجير پيدا شود. سپس اشارهگرها و مقادير طول تنظيم ميشوند.
مشكلات روش بخش هاي آزاد زنجيرهاي:
- پس از مدتي استفاده ديسك كاملاً تكهتكه ميشود و طول بسياري از بخشها به اندازه يك بلوك ميشود.
- توجه كنيد كه زماني كه يك بلوك به فايلي تخصيص مييابد، قبل از نوشتن دادههاي فايل در آن بلوك، ابتدا بايد آن بلوك خوانده شود تا اشارهگر به اولين بلوك آزاد جديد تعيين گردد.
- در اين روش چنانچه قرار باشد براي عمليات فايلي چند بلوك داده به طور همزمان تخصيص داده شوند، ايجاد فايل كند خواهد شد.
- به طور مشابه، حذف فايلي كه تكهتكه شده است زمانبر خواهد بود.
سیستم های مدیریت فایل
3. روش شاخصبندي: روش شاخص بندي، بافضاي خالي مثل فايل رفتار ميكند و همان طور كه در تخصيص فايل گفته شد، ازجدول شاخص استفاده مي شود.
- لذا براي هر بخش آزاد روي ديسك، يك وارده در جدول وجود دارد.
- اين راهبرد از تمام روشهاي تخصيص فايل پشتيباني ميكند.
نکته1: دقت كنيد كه اين روش يك پيادهسازي ديگر از تكنيك ليست پيوندي با جدول راهنما است.
چگالي لود اوليه (loading density)
- اگر محيط ذخيره سازي به گونهاي باشد كه بتوان در آينده ميزان رشد فايل را پيش بيني نمود ميتوان قسمتي از فضاي بلاك را در هنگام لوداوليه (زماني كه فايل براي اولين بار نوشته مي شود) را خالي گذاشت يعني تمام بلاك را پر نكرد (يك نوع حافظه هرز) تا بعداً در مدت طول حيات فايل مورد استفاده قرار بگيرد.
- چگالي لود اوليه توسط درصدي از اندازه بلاك مشخص ميشود كه از رابطه زير بدست ميآيد:
مزایا و معایب چگالي لود اوليه (loading density)
مزايا:
- اين روش باعث افزايش لوكاليتي فايل ميشود و از پراكندگي نشست ركوردها روي رسانه ذخيره سازي تا حدودي جلوگيري ميكند. (ميزان پراكندگي فايل در زمان دستيابي تصادفي و زمان پردازش فايل نقش دارد)
- موجب تسهيل عمليات روي فايل ميگردد (درج ركورد جديد و…)
معايب:
- حافظه رزو شده، نوعي حافظه هرز است و سبب افزايش طول خطي فايل ميشود ودرنتيجه خواندن تمام فايل زمانگيرتر است.
- در صورتيكه توزيع ركوردها يكنواخت نباشد،موجب باقي ماندن حافظه هرز در انتهاي برخي از بلاكها خواهد شد.
جهت ثبت نام در دوره های کامپیوتر ما اینجا کلیک کنید.
لوكاليتي؛ ميزان همسايگي ركوردها در فايل
- ميزان همسايگي (نزديكي)ركورد منطقاً بعدي، نسبت به ركورد فعلي روي رسانه ذخيره سازي را لوكاليتي گويند.
- ركورد منطقاً بعدي ركوردي است كه از ديد برنامه بعد از ركورد فعلي بايد مورد پردازش قرار بگيرد اما درهنگام ذخيرهسازي عموماً اين امر اتفاق نميافتد و ركوردهاي منطقي پشت سرهم ذخيره نميشوند.
نكته2: همجواري منطقي لزوماً در محيط فيزيكي پيادهسازي نميشود؛ بلكه بستگي به ساختار فايل و نحوه تخصيص فضاي ذخيرهسازي فايل دارد.
نكته3: هرچه لوكاليتي ركوردها قويتر باشد، زمان پردازش سريال آنها كمتر خواهد بود. چرا كه زمان كمتري براي انتقال هد به جلو و عقب براي خواندن ركورد بعدي صرف خواهد شد.
- مطلوبترين حالت آن است كه همجواري منطقي با همجواري فيزيكي پياده سازي شود.
درجات لوكاليتي
لوكاليتي از قوي به ضعيف درجهبندي ميشود:
1- ركورد بعدي در همان بلاكي است كه ركورد جاري قرار دارد و بلاك در بافر باشد. بنابراين در اين حالت: I/O نداريم، r=0 و s=0 و كمترين حالت براي به دست آوردن ركورد بعدي صرف مي شود.
r: زمان درنگ دوراني – s: زمان استوانه جويي
2- ركورد بعدي در بلاكي است كه اين بلاك بلافاصله بعد از بلاك جاري از همان شيار قرار دارد: I/O داريم اما r=0 و s=0
3- ركورد بعدي در همان استوانهاي است كه ركورد فعلي قرار دارد: I/Oداريم، S=0 و r>0
4-ركورد بعدي در استوانهي همجوار ركورد فعلي باشد: I/O داريم، r>0 و s>0
5- ركورد بعدي روي يك استوانه شناخته شده باشد : I/O داريم، r>0 و s>0
6- ركورد بعدي روي استوانه اي ناشناخته باشد كه آدرس آن از روي محاسبات بدست آيد: I/O داريم، r>0 وs>0
7- ركورد بعدي روي استوانه اي ناشناخته باشد كه مكان آن با مراجعه به يك فايل ديگر بدست آيد: I/O داريم، r>0 و s>0
8- ركورد بعدي روي رسانهاي است كه در حال حاضر در درايو نيست: I/O داريم، r>0 و s>0