خانه / جزوه های آموزشی / تخصیص فضا به فایل ها

تخصیص فضا به فایل ها

برای اینکه بتوان به فایل های ذخیره شده در دیسک سخت به خوبی فضا اختصاص داد و هنگام نیاز به راحتی به آن ها دسترسی داشت برخی سیستم عامل ها 3روش پشتیبانی میکنند.اما معمولا هر سیستم یک روش خاص را برای دسترسی به کلیه فایلهایش به کار می برد.

  • تخصیص همجوار:

در این روش لازم می باشد هر فایل در مجموعه ای از بلوکهای همجوار دیسک قرار گیرد. این نحوه قرار گیری یک ترتیب خطی آدرس دهی دیسک را سبب می شود. در این روش دسترسی به بلوک b+1 که بلافاصله بعد از بلوک b قرار دارد نیاز به جا به جایی هد نخواهد داشت. همچنین زمانی که لازم باشد هد جا به جا شود، این جا به جایی فقط به اندازه یک شیار خواهد بود. بنابراین در این روش زمان استوانه جویی به کمترین حد خود می رسد. در این روش آدرس شروع فایل و مشخص بودن تعداد بلوکهای آن برای دسترسی کافی می باشد به عنوان نمونه در صورتی که بدانیم فایلی از آدرس b شروع می شود و دارای n بلوک است میدانیم که این فایل بلوکهای b,b+1,b+2,….,bn-1 را اشغال نموده است.

مشکلی که در این روش با آن روبرو هستیم یافتن فضای کافی برای فایل جدید می باشد. همانطور که در فصول گذشته بیان شد می توان توسط هر یک از الگوریتمهای تخصیص فضای آزاد، فضای مناسب را برای تخصیص پیوسته به دست آورد. بعضی از این الگوریتمها کند عمل می کنند.از روشهای رایج تخصیص فضای آزاد می توان الگوریتم های First Fit و Best Fit را نام برد. از بین این دو الگوریتم، الگوریتم First Fit  سریع تر عمل می کند. اما همانطور که قبلا نیز بیان شد مسئله قطعه قطعه شدن خارجی می تواند به عنوان مشکل جدی مورد توجه قرار گیرد. برای پیشگیری از قطعه قطعه شدن خارجی می توان از فشردگی استفاده نمود. این عمل زمان گیر و پر هزینه می باشد. و سیستم در حین انجام این عمل قادر به انجام کار دیگری نمی باشد. مشکل دیگر این روش آن است که اولا تعیین مقدار فضای لازم برای یک فایل خروجی قابل تخمین نمی باشد. دوما حتی در صورتی که بدانیم حجم فایل چه میزان است در صورتی که بعد از مدتی فایل توسعه یابد ممکن است فضای بیشتر نیاز داشته باشد.

بنابراین برای رفع این مشکل ابتدا فضای پیوسته ای به فایل تخصیص داده میشود. معمولا این فضا بزرگتر از فضای لازم فایل می باشد. سپس زمانی که فایل توسعه یافت و میزان فضای اختصاص به آن کافی نبود فضای دیگری بعنوان فضای توسعه آن فایل که توسط یک اشاره گر به فضای اولیه پیوند داده شده، اختصاص می یابد. در صورتی که فضای اختصاص یافته بزرگتر باشد مسئله قطعه قطعه شدن داخلی در سیستم بوجود می آید و به دلیل تخصیص و باز پس گیری فضا با طول متغیر به فایلها همچنان قطعه قطعه شدن خارجی در سیستم وجود خواهد داشت.

  • تخصیص پیوندی:

این روش برای مرتفع شدن مشکلات تخصیص همجوار بوجود آمده است در این روش هر فایل یک لیست پیوندی از بلوکهای دیسک می باشد. این بلوکها می توانند در هر جای دیسک قرار گرفته باشند. دایرکتوری شامل اشاره گری به اولین و آخرین بلوک فایل است. هر بلوک فایل اشاره گری به بلوک بعدی فایل دارد.

در این روش چون هر بلوک خالی موجود در حافظه می تواند به فایلها اختصاص پیدا کند پدیده قطعه قطعه شدن خارجی وجود ندارد. در زمان ایجاد فایل نیازی به اطلاع از اندازه فایل نمی باشد و فایل تا زمانی می تواند به رشد خود ادامه دهد که بلوک آزاد در فضای دیسک وجود داشته باشد. مشکل عمده این روش دسترسی ترتیبی به اطلاعات می باشد. در واقع در این ساختار برای دسترسی به بلوک nام از فایل لازم است از ابتدای فایل شروع به خواندن فایل کرده و با دنبال کردن اشاره گرهای هر بلوک به بلوک بعدی دسترسی پیدا کرد. در دسترسی به هر بلوک احتیاج به صرف زمانی جهت عمل استوانه جویی می باشد. بنابراین روش کارا  برای دسترسی مستقیم نمی باشد. مشکل دیگر میزان فضای اشغالی توسط اشاره گرها می باشد(مثلا 1% از فضای دیسک) یک راه حل برای این مشکل آن است که بلوک ها را گروه بندی کرده و در قالب یک خوشه به کار بریم. سپس به هر فایل به جای تخصیص بلوک از تخصیص خوشه استفاده نماییم. مشکل این روش بروز پدیده قطعه قطعه شدن داخلی می باشد. چون فضای بیشتری از حافظه در اثر پر نشدن خوشه اختصاصی به فایل هدر میرود.

مشکل دیگر ساختار، عدم قابلیت اطمینان می باشد. بخش های مختلف یک فایل توسط اشاره گرها به یکدیگر مرتبط شده اند در صورتی که یکی از این اشاره گرها دچار مشکل شود دیگر امکان دسترسی به بخشی از فایل که ممکن است بخش بزرگی از آن باشد امکان پذیر نخواهد بود. برای حل این مشکل از جدولی به نام جدول تخصیص فایل FAT استفاده شده است.در این روش بخشی از ابتدای هر پارتیشن برای این جدول کنار گذاشته می شود. در این جدول برای هر بلوک دیسک یک مدخل وجود دارد که بر حسب شماره بلوک شماره گذاری شده است. جدول FAT سعی میکند ساختار پیوندی را شبیه سازی نماید. به این ترتیب که به ازای هر فایل شماره اولین بلوک فایل در دایرکتوری مربوطه نگهداری می شود سپس شماره بلوکهای بعدی در جدول FAT نگهداری می شود. این زنجیره تا آخرین بلوک که مقدار پایان فایل را نشان دهد ادامه می یابد.

به دلیل آنکه جستوجوی هد دیسک در این روش بالاست سربار زیادی دارد. برای کاهش این سربار بهتر است جدول FAT را در حافظه بار نمود. با این روش زمان دسترسی تصادفی به بلوکهای فایل بهبود می یابد. هر دیسک میتواند با خواندن اطلاعات جدول FAT به مکان هر بلوک دست یابد.

  • تخصیص شاخص دار:

در روش تخصیص پیوندی مشکلات قطعه قطعه شدن خارجی و تعیین اندازه تخصیص پیوسته حل شد. اما این روش دسترسی مستقیم سودمندی به بلوکهای داخلی فایلها ندارد. به دلیل آنکه اشاره گرهای هر بلوک در سرتاسر دیسک همراه خود بلوک پراکنده شده اند و لازم است به صورت ترتیبی دستیابی شوند. در روش تخصیص شاخص برای حل این مشکل تمام اشاره گرها در یک مکان به نام بلوک شاخص جمع شده اند. هر فایلی در این روش یک بلوک شاخص دارد که آرایه ای از آدرسهای بلوک دیسک می باشد. دایرکتوری، شامل آدرس بلوک اندیس می باشد. بلوک Iام فایل توسط سطر Iام جدول اندیس قابل دسترسی می باشد. این روش دسترسی مستقیم را پشتیبانی کرده و از قطعه قطعه شدن خارجی رهایی یافته است. اما مشکل این روش سرباری است که اشاره گر بلوک شاخص به سیستم تحمیل میکند. این سربار معمولا از سربار اشاره گرهای تخصیص پیوندی بیشتر است. چرا که به ازای هر فایل کوچکی نیز باید بلوک شاخص ایجاد شود. بنابراین همانطور که مشخص است در صورتی که بلوک شاخص خیلی بزرگ باشد فضای زیادی هدر خواهد رفت و در صورتی که شاخص کوچک باشد در مورد فایلهای بزرگ با کمبود فضا روبرو خواهیم شد. روشی که برای حل این مشکل ارائه شده است آن است که برای مدیریت فایلهای بزرگ از شاخص چند سطحی استفاده شود.

درباره‌ی ادمین سایت

همچنین ببینید

انواع سیستم

با پیشرفت علم و احساس نیاز بیشتر به سیستم های کامپیوتری تغییراتی در طراحی سخت …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *