جلسه 5 روشهاي تخصیص فضا در دیسک پیوسته و ناپیوسته مزایا و معایب
در این بخش، دو روش اصلی تخصیص فضا در سیستمهای فایل دیسک را بررسی میکنیم: تخصیص پیوسته (Contiguous Allocation) و تخصیص ناپیوسته (Non-contiguous Allocation). هر کدام از این روشها مزایا و معایب خاص خود را دارند که بر عملکرد سیستم فایل تأثیر میگذارند.
۱. تخصیص پیوسته (Contiguous Allocation)
در این روش، هر فایل به صورت مجموعهای از بلاکهای پیوسته (بدون فاصله) روی دیسک ذخیره میشود. به عبارت دیگر، تمام سکتورهای یک فایل پشت سر هم قرار میگیرند.
نحوه عملکرد:
- هنگام ایجاد یا گسترش یک فایل، سیستم عامل فضایی پیوسته به اندازه کافی روی دیسک برای آن پیدا میکند.
- اطلاعات مربوط به شروع و پایان هر فایل (یا طول فایل) در ساختار دایرکتوری ذخیره میشود.
مزایا:
- سادگی پیادهسازی: مدیریت این روش نسبتاً ساده است.
- کارایی بالا در خواندن ترتیبی (Sequential Read): چون بلاکها پشت سر هم هستند، خواندن کل فایل به صورت ترتیبی بسیار سریع است و نیاز به جستجوی کمتری دارد.
- مناسب برای فایلهای با دسترسی ترتیبی: مانند فایلهای صوتی و تصویری که به صورت پیوسته خوانده میشوند.
معایب:
- مشکل تکهتکه شدن (External Fragmentation): با گذشت زمان و ایجاد و حذف فایلها، فضاهای خالی کوچکی بین فایلهای موجود ایجاد میشوند که ممکن است برای تخصیص به فایلهای جدید کافی نباشند، حتی اگر مجموع فضاهای خالی زیاد باشد.
- مشکل در گسترش فایل: اگر یک فایل نیاز به گسترش داشته باشد و فضای پیوسته کافی در کنار آن موجود نباشد، کل فایل باید به مکان دیگری منتقل شود که عملیات زمانبر و پرهزینهای است.
- مدیریت پیچیده تخصیص: یافتن یک قطعه فضای پیوسته به اندازه کافی بزرگ برای فایلهای جدید میتواند چالشبرانگیز باشد.
۲. تخصیص ناپیوسته (Non-contiguous Allocation)
در این روش، یک فایل میتواند در بلاکهای پراکنده و غیرپیوسته روی دیسک ذخیره شود. سیستم عامل، اطلاعات لازم برای یافتن تمام بلاکهای تشکیلدهنده یک فایل را مدیریت میکند.
نحوه عملکرد:
فایلها به واحدهایی (مثلاً بلاک یا صفحه) تقسیم میشوند.
هر بلاک فایل میتواند در هر جای خالی دیسک ذخیره شود.
برای ردیابی بلاکهای هر فایل، از روشهای مختلفی استفاده میشود:
الف) تخصیص مبتنی بر دایرکتوری (Directory-based Allocation):
هر مدخل در دایرکتوری، اشارهگری به یک لیست (یا ساختار دادهای مشابه) دارد که آدرس تمام بلاکهای فایل را در خود نگه میدارد.
مزایا: مشکل تکهتکه شدن خارجی (External Fragmentation) را ندارد. گسترش فایل آسان است.
معایب: فضای زیادی برای ذخیره لیست اشارهگرها در دایرکتوری لازم است. دسترسی به فایل کندتر است چون نیاز به خواندن لیست اشارهگرها دارد.
ب) تخصیص مبتنی بر پیوند (Linked Allocation):
هر بلاک از فایل حاوی آدرس بلاک بعدی است. بلاک اول در دایرکتوری ذخیره میشود.
مزایا: مشکل تکهتکه شدن خارجی ندارد. گسترش فایل بسیار آسان است.
معایب: دسترسی به بلاکهای میانی فایل بسیار کند است (نیاز به پیمایش از ابتدا). احتمال از دست رفتن فایل با خراب شدن یک اشارهگر زیاد است. حجم بالایی از اطلاعات اشارهگری درون خود بلاکها ذخیره میشود (Overhead).
ج) تخصیص مبتنی بر شاخص (Indexed Allocation):
هر فایل یک بلاک شاخص (Index Block) مخصوص به خود دارد که شامل آدرس تمام بلاکهای داده فایل است.
مزایا: مشکل تکهتکه شدن خارجی ندارد. دسترسی به هر بلاک از فایل به صورت مستقیم (Random Access) امکانپذیر است و سریع است. گسترش فایل آسان است.
معایب: حجم فضای مورد نیاز برای بلاک شاخص میتواند زیاد باشد (به خصوص برای فایلهای بزرگ). ساختار مدیریت پیچیدهتر است.
مزایای کلی تخصیص ناپیوسته:
- عدم وجود تکهتکه شدن خارجی (External Fragmentation): این بزرگترین مزیت آن است. هر فضای خالی موجود قابل استفاده است.
- انعطافپذیری بالا: تخصیص و گسترش فایلها به راحتی انجام میشود.
معایب کلی تخصیص ناپیوسته:
- پیچیدگی پیادهسازی: مدیریت بلاکهای پراکنده نسبت به بلاکهای پیوسته پیچیدهتر است.
- هزینه سربار (Overhead): نیاز به فضای اضافی برای ذخیره اطلاعات مربوط به اشارهگرها یا شاخصها وجود دارد.
- کندی دسترسی به فایل (به خصوص در تخصیص پیوندی): ممکن است برای یافتن یک بلاک نیاز به پیمایش یا جستجوی بیشتری باشد.
خلاصه نکات کلیدی برای دانشجویان
- تخصیص پیوسته: ساده، سریع برای خواندن ترتیبی، اما دچار تکهتکه شدن خارجی و مشکل در گسترش فایل میشود.
- تخصیص ناپیوسته: انعطافپذیر، بدون تکهتکه شدن خارجی، اما پیادهسازی پیچیدهتر و سربار بیشتری دارد.
- روشهای ناپیوسته: مبتنی بر دایرکتوری، پیوندی و شاخص هر کدام با مکانیزم مدیریت متفاوت، مزایا و معایب خاص خود را دارند. تخصیص شاخصی معمولاً بهترین تعادل بین کارایی و انعطافپذیری را فراهم میکند.
- انتخاب روش: به نوع کاربرد سیستم عامل و اولویتها (سرعت دسترسی، فضای ذخیرهسازی، سادگی مدیریت) بستگی دارد. سیستمعاملهای مدرن معمولاً از روشهای ترکیبی یا تخصیص ناپیوسته (مانند مبتنی بر شاخص) استفاده میکنند.