PDA

نسخه کامل مشاهده نسخه کامل : آشنايي با جدول اسكان فايل (Fat)



habibi
31-10-2004, 14:09
آشنایی با جدول اسكان فایل (FAT):

همانطور كه می‌دانید هارد دیسك هنگامی كه در كارخانه ساخته می‌شود كاملا خام است. پس از طی شدن فرآیند تولید عمل فرمت سطح پایین با همان Low level Format روی آن انجام می‌شود. با این عمل هارد به صورت شیار شیار و در حالتی كه هر شیار از چندین سكتور تشكیل شده قالب بندی و وضعیت بدسكتور‌ها مشخص می شود. مابین شیارها شكافی برنامه ریزی شده وجود دارد كه به آن Gap یا گوه گفته می شود. وظیفه این گوه‌ها این است كه آدرس سكتورهای فیزیكی دوطرف خود را نگهداری كرده و برای اطلاع كنترل‌گر هارد دیسك علامت لازم را فراهم كنند. معمولا هارد‌های فعلی در كارخانه فرمت سطح پایین می‌شوند و نیازی به این كار توسط كاربر نیست.

بعد از اینكه هارد فرمت سطح پایین شد لازم است پارتیشن بندی شود. پارتیشن بندی شامل: ایجاد جدول پارتیشین (كه وظیفه نگهداری آدرس پارتیشنها) یا همان Master Boot Record (MBR) را دارد) و خود قطعاتی كه بعدا به صورت درایو‌های هارد دیسك شناخته می‌شود و بوت ركورد پارتیشن‌هاست.

پس از پایان پارتیشن بندی هارد، فرمت سطح بالا (یا همان فرمت معمولی) لازم است. در این نوع فرمت هر پارتیشن به صورت مجزا از دیگران قابل بندی شده و علاوه بر بوت ركورد و سكتورهای منطقی (كه با سكتور‌های مرحله فرمت سطح پایین متفاوت است) دو سكتور نیز جهت جدول اسكان فایل یا همان فت كه مبحث اصلی ماست، تشكیل می‌شود. قابل ذكر است كه دو نسخه تكراری از یك جدول در هر هارد قرار می‌گیرد به جهت افزایش اطمینان از اینكه حذف یا خراب نمی‌شوند. این جدول مهمترین جدول برای اطلاعات موجود در هارد است.

هنگامی كه كاربر در سطح سیستم عامل با كامپیوتر كار می‌كند، در واقغ با داده‌هایی سر و كار دارد كه به صورت منطقی در فایلهای مختلف سازماندهی شده‌اند. یعنی سكتور‌های منفرد به صورت مستقیم مورد استفاده قرار نمی‌گیرند. اما سیستم عامل با سكتورها سروكار داشته و به علت بعضی محدودیتها در هنگام طراحی، هر بار می‌تواند با مجموعه‌ای از سكتور‌های متوالی كه به آتها كلاستر یا خوشه گفته می‌شود می گویند. این كلاستر ها با توچه به اینكه به هم پیوسته هستند واحدهای تخصیص یافته یا Allocation Unit نیز نامیده می‌شوند. برای اینكه سیستم عامل بتواند عمل درست خود را انجام دهد تعداد سكتورها در هر كلاستر باید توانی از ۲ باشد. (مثلا ۴، ۸، ۱۶، ۳۲ و ...)

در حال استفاده از كامپیوتر دایما فایل‌ها ایجاد یا حذف شده و یا تغییر داده می‌شوند. به همین دلیل به سختی می‌توان كلاستر‌های مربوط به یك فایل را در كنار هم نگه داشت. مثلا فرض كنید كه دیسكی حاوی ۳ فایل باشد. اولین فایل خوشه ۳ خوشه، دومی ۲ خوشه و فایل سوم ۳ خوشه اشغال كرده باشند. حالا فرض كنید فایل دوم از روی دیسك پاك شود بنابراین به اندازه ۲ خوشه مابین فایل‌های اول و سوم (كه الان دومی شده است) فاصله می‌افتد. خالا اگر فایلی كه ۴ خوشه دارد به دیسك اضافه شود، دو امكان پیش می‌آید: اول اینكه فایل جدید بعد از فایل دوم قرار گیرد و دوم اینكه قسمتی از فایل در دوخوشه آزاد قبلی نوشته شود و بقیه آن در ادامه فایل دوم ذخیره شود. به دلیل كاهش شدید سرعت دسترسی به فایل استفاده از روش اول مقرون به صرفه نیست. بنا براین فایل سوم فعلی ما در دو خوشه مجزا (دو كلاستر غیر متوالی) ذخیره می شود. به این حالت پراكندگی فایل گفته می شود. نكته قابل ذكر اینكه برنامه‌هایی همچون Defrag جهت رفع این حالت به كار برده می‌شود.

در صورتی كه فایل پراكنده نمی‌شد، مشخص كردن خوشه تمام فایل‌ها به سادگی صورت می‌گرفت زیرا كافی بود آدرس خوشه ابتدایی و تعداد خوشه‌های استفاده شده نگهداری شود ولی به دلیل پراكندگی این كار امكان نخواهد داشت.

به همین علت است كه جدول اسكان فایل یا FAT ایجاد شده. در حال حاضر ۳ نوع فت استاندارد وجود دارد: ۱۲، ۱۶ و ۳۲ بیتی. فت ۱۲ بینی جهت فلاپی دیسك، فت ۱۶ استاندارد قدیمی هارد‌ها و فت ۳۲ جهت استفاده در سیستم‌های عامل ویندوز ۹۸ و xp در نظر گرفته شده است. فت زنجیره خوشه‌ها را مشخص می‌كند. به ازاء هز شماره خوشه یك داده ثبت شده در FAT وجود دارد. همچنین هریك از این داده‌های ثبت شده شماره خوشه بعدی را در زنجیره خوشه‌ها مشخص می‌كند. اگر خوشه‌ای در این زنجیره قرار نداشته باشد یعنی آزاد بوده و می‌توان از آن برای ذخیره استفاده كرد.

در فت ۱۶ طول هریك از داده‌های ثبت شده ۱۶ بیت می‌باشد. بعنی هریك از داده‌های ثبت شده حداكثر می‌تواند به دو به توان شانزده یا ۶۵۵۳۶ كلاستر آدرس‌دهی كند. به عبارت بهتر دیسكی كه از فت ۱۶ استفاده می‌كند حداكثر می‌تواند ۶۵۵۳۶ كلاستر داشته باشد. بنابراین با یك محاسبه ساده مشخص می شود كه هر كلاستر هارد عبارت از چند بایت یا چند سكتور خواهد بود. (قابل ذكر اینكه هر سكتور ۵۱۲ بایت است)
مثلا برای یك هارد ۱ گیگابایتی (۲ به توان ۳۰ به طور واقعی) اندازه كلاستر ۱۶ كیلو بایتی بدست می‌آید. اما از آنجا كه در هارد اطلاعات دیگری مثل بوت سكتور و فت‌ها ذخیره می‌شود ظرفیت به طور واقعی ۱ گیكابایت نخواهد بود. از طرف دیگر حجم خوشه‌ها باید همواره توانی از ۲ باشد. بنابراین در هارد ۱ گیگابایتی هر كلاستر ۳۲ كیلوبایت خواهد بود.

از آنجایی كه ۲ فایل نمی‌توانند از یك كلاستر مشترك استفاده كنند، اگر فایلی حتی ۱ بایت ظرفیت داشنه باشد یك كلاستر كامل را اشغال خواهد كرد. بنابراین یك فایل ۱ بایتی در چنین هاردی ۳۲ كیلوبایت از ظرفیت هارد كم خواهد كرد. این مساله را Wasting یا تلفات می‌نامند. این روش در نهایت ممكن است به هدر دادن مقدار زیادی از ظرفیت هارد منجر شود. یك روش مقابله با این مشكل این است كه پارتیشنها را مقدار كوجكتری در نظر بگیریم. در این حالت هر پارتیشن، بوت سكتور و فت خاص خودش را خواهد داشت. هرچه این اندازه كوچكتر باشد مقداری كمتری از فقای هر خوشه هدر خواهد رفت. روش غیر رسمی‌ای كه برای مقابله با این وضعیت وجود دارد این است كه فایل‌ها را فشرده سازی كرد. در این صورت از آنجا كه هر فایل زیپ به هر حال (یك) فایل است، تعداد كلاستر كمتری تلف خواهد كرد.

همانطور كه قبلا ذكر شد ۲ نسخه از فت روی هر دیسك وجود دارد. در حقیقت اگر فت موجود در درایوی خراب شود، ممكن است تمام داده‌های موجود در هارد از بین بروند. حتی اگر داده‌ها هنمچنان بر روی هارد وجود داشته باشند، راهی برای بازسازی زنجیره كلاستر‌ها و دستیابی به آنها وجود نخواهد داشت.

مواردی پیش می‌آید كه ممكن است موجب بروز اشكال در فت شوند. اصلی ترین مشكل معمولا به این صورت بروز می‌كند كه برنامه‌ای فایلی را باز می‌كند و در آن تغییراتی می دهد بنابراین اندازه فایل نیز تغییر می‌كند با افزایش یا كاهش داده‌ها آدرس فت نیز تغییر می‌كند ولی تا زمانی كه فایل بسته نشود، این تغییرات در فت ثبت نمی‌شود. بنابراین اگر به علتی (مثلا قفل كردن برنامه یا قطع برق و ...)برنامه به صورت معمول بسته نشود، فت به روز نشده و آدرسهای اشتباهی خواهد داشت. ممكن است جایی خالی باشد و فت به آن اشاره كند و یا بالعكس و یا مورد بدتر اینكه آدرس محتویات دو فایل تداخل كند. (كه در این صورت هر دو فایل آسیب خواهند دید.)

برنامه‌ای كه جهت رفع اشكالات فت تهیه شده در داس chkdsk یا Scandisk و در ویندوز Scandisk نام دارد.

فت ۳۲ آخرین نسخه استاندارد می‌باشد در سیستمهای عامل ۹۵ (البته سرویس پك ۲ آن، سیستم عامل ویندوز ۹۸ و ام ای، ویندوز ان تی ۵ به بعد و البته ویندوز xp استفاده می‌شود.

ویژگی‌های اصلی فت ۳۲ عبارتند از:

1- فت ۳۲ می‌تواند هارد‌های بزرگتر از ۲ ترابایت (۲۰۰۰ گیگابایت) را تیز پشتیبانی كند. بنابراین می‌توان گفت كه دست كم در آینده نزدیك با مشكل محدودیت ظرفیت هارد مواجه نخواهیم بود.
۲- ار آنجا كه در Fat32 برای مشخص كردن هر كلاستر از ۴ بایت اسفاده شده می‌توان به تعداد كلاسترهای بیشتری دسترسی پیدا كرد. (در فت ۱۶ ۲ بایت برای این كار در نظر گرفته شده بود.) فت ۳۲ می‌تواند تا ۲ به توان ۲۸ (یا 268435156) كلاستر را شناسایی كند. بنابراین فت ۳۲ در مقایسه با فت ۱۶ كلاسترهای كوچكتری را مورد استفاده قرار می‌دهد بنابراین تلفات به مقدار قابل ملاحظه‌ای كاهش پیدا می‌كند.
و ...
البته به عنوان آخرین توصیه: اگر از چند سیستم عامل در دستگاه خود استفاده می‌كنید (مثل لینوكس، مك یا داس و غیره) مراقب سارگاری فت آنها باشید!

pedramonline
17-11-2004, 01:02
وقت نكردم
كامل بخونم
بعد اگه سوالي داشتك مطرح ميكنم
از اين مقاله مفيد ممنون

Rooz
28-08-2005, 00:02
ما هم كه اصلا نحونده مفيد تلقي ميكنيم
:mrgreen:

feremerz
23-04-2008, 17:20
بنده كامل خوندم

اما يه سري سوال دارم

1- 2 سكتور 512 بايتي براي جدول فت كافيه؟ (طبق گفته هاي خودتون)
2-تعداد سكتور در هر كلاستر گفتيد بايد حتما تواني از 2 باشه. خوب حالا فرض كنيد فايل ما چند گيگ باشه. اولا اين فايل رو بايد به چند كلاستر تقسيم كرد؟. و اينكه حداكثر حجم كلاستر چقدر ميتونه باشه؟.

3-جدول فت فقط آدرس اولين كلاستر رو نگه ميداره و در آخر كلاستر اول آدرس كلاستر دوم و به همين شكل تا آخرين كلاستر قرار داره؟ يا اينكه تو همون فت آدرس كل كلاستر هاي يك فايل قرار داره

4-براي يك فايل 1 بايتي بايد يك كلاستر كه حد اقل حجم اون 2*512 بايت هست رو حروم كرد؟

5-شما گفتيد كه

اصلی ترین مشكل معمولا به این صورت بروز می‌كند كه برنامه‌ای فایلی را باز می‌كند و در آن تغییراتی می دهد بنابراین اندازه فایل نیز تغییر می‌كند با افزایش یا كاهش داده‌ها آدرس فت نیز تغییر می‌كند ولی تا زمانی كه فایل بسته نشود، این تغییرات در فت ثبت نمی‌شود. بنابراین اگر به علتی (مثلا قفل كردن برنامه یا قطع برق و ...)برنامه به صورت معمول بسته نشود، فت به روز نشده و آدرسهای اشتباهی خواهد داشت. ممكن است جایی خالی باشد و فت به آن اشاره كند و یا بالعكس و یا مورد بدتر اینكه آدرس محتویات دو فایل تداخل كند. (كه در این صورت هر دو فایل آسیب خواهند دید.)


ما وقتي فايل رو باز ميكنيم تغييرات روي رم انجام ميشه و هيچ كاري با هرد ديسك نداره تا زماني كه فايل رو ذخيره كنيم. آيا منظورتون همين نبود؟



ممنون ميشم اگر به سوالات جواب داده و در مورد Ntfs هم نكاتي مطرح بفرماييد

با تشكر