فایل در محیط فیزیکی
فایل دارای تقسیمات در چند سطح است :
فیلد ،
رکورد ،
بلاک ،
باکت و... ما در این بحث با توجه به مفهوم اصلی بلاک ، چگونگی نشست فایل روی رسانه (و در این بحث : دیسک) را بررسی میکنیم. روشن است که سیستم فایل باید فضای لازم را به فایل تخصیص دهد . چگونگی نشست فایل در محیط فیزیکی به چگونگی تخصیص فضا به فایل بستگی دارد. در هر حال ، بلاکهای هر
فایل باید در بلاکهایی از دیسک جای داده شوند.
فضای حافظه خارجی هم مثل حافظه اصلی ، در اساس به دو روش تخصیص داده میشود:
- تخصص پیوسته
- تخصیص ناپیوسته
با توجه به این دو نوع کلی تخصیص فضا، میتوان گفت که فایل هم بطور کلی به یکی از دو صورت زیر ذخیره میشود:
- نشست پیوسته
- نشست ناپیوسته
در زیر این دو نوع نشست رابررسی میکنیم:
نشست پیوسته
در این طرح نشست ،فایل در بلاکهای فیزیکی همجوار (پیوسته) روی دیسک ذخیره میشود.مثلاً در دیسک با بلاکهای فیزیکی 1k بایتی ، یکی 50k بایتی ،50بلاک بهم پیوسته را اشغال میکند.
این طرح نشست دو مزیت مهم دارد:
1-پیاده سازی آن ساده است . با داشتن آدرس اولین بلاک روی دیسک، میتوان به بقیه بلاکها هم دستیابی داشت.
2-کارایی سیستم بالا است زیرا کل فایل را میتوان طی یک عمل واحد از روی دیسک خواند.
اما این طرح معایب قابل توجهی هم دارد از جمله:
1-حداکثر اندازه باید در مرحله ایجاد فایل ، معلوم باشد .
2-بروز پدیده بندبند شدگی در فضای دیسک به یان معنا که جای جای فضای
هرز پدید میآید که باید با تکنیک یکپارچه سازی یا فشرده سازی این پدیده را از بین برد .
نشست ناپیوسته
در این طرح نشست ، سیستم تعدادی بلاک ناهمجوار را به فایل تخصیص میدهد. برای پیاده سازی این طرح روشهایی وجود دارد که در زیر بررسی میکنیم.
ایجاد لیست پیوندی مجهز به جدول راهنما
در این روش ، جدولی در
حافظه اصلی نگهداری میشود. برای هر بلاک فیزیکی (روی دیسک) یک مدخل در جدول وجود دارد. با مشخص کردن مدخل مربوط به اولین بلاک فایل ، شماره بلاک بعدی فایل در مدخل مربوط به بلاک قبل گذشته میشود.
در این روش ، دستیابی تصادفی سریعتر است (جدول راهنما در حافظه اصلی است).
در اینجا نیز ، با داشتن آدرس اولین بلاک ، میتوان به بلاکهای دیگر هم دستیابی داشت ( در سیستم MS-DOS از این روش استفاده میشود.)
عیب مهم این روش این است که تمام جدول باید در حافظه اصلی مقیم باشد . مثلاً برای دیسکی با 500000بلاک 1k بایتی (M500)، به جدولی با 500000 مدخل، هر یک حداقل 3 بایت نیاز است . در نتیجه خود جدول حداقل M5/1 حافظه اشغال میکد ( در MS-DOS با استفاده از بلاکهای بزرگ k32 بایتی در دیسکهای با ظرفیت بالا ، اندازه جدول کاهش مییابد.)
استفاده از تکنیک (گره I)
در این روش ، برای تعیین اینکه کدام
بلاک فیزیکی روی دیسک مربوط به کدام بلاک از یک فایل است . برای هر فایل ، جدول کوچکی به نام I ایجاد میشود. در این جدول صفات خاصه فایل و آدرس بلاکهای فیزیکی فایل قرار دارد . اگر فایل کوچک باشد همین گره I کفایت میکند. اما برای فایلهای بزرگ ، در مدخلی از این گره ، آدرس بلاکی از دیسک قرار میگیرد که حاوی آدرس فیزیکی بلاکهای دیگر فایل است . اگر باز هم فایل بزرگتر باشد . مدخل دیگری ایجاد میشود و..(این روش در سیستم یونیکس استفاده شده است )
تخصیص فضای ناپیوسته البته مطلوبتر است ، زیرا علاوه بر مزایایی که دارد، معمولا یافتن یک فضای یکپارچه روی دیسک دشوار است ، حال آنکه یافتن فضای خالی کوچکتر، معمولا امکان پذیر است .
نشست فایل بطور ناپیوسته حتی ممکن است روی چند دیسک (
آرایهای از دیسکها) باشد، به بیان دیگر فایل روی چند نوع
دیسک توزیع شده باشد به چنین فایلی ، فایل توزیع شده یا فایل چند پاره یا اوراق شده گفته میشود. البته تکنیک اوراق کردن در سطوح مختلف پیاده سازی میشود(سطح کاراکتر، رکورد ،بلاک و ..)مثلا در سطح کاراکتر ، بیتهایش را روی یک دیسک از یک آرایه هشت دیسکی پخش میکنند.
همچنین ببینید