جستجوی این وبلاگ

جزوه فصل 2


     فصل دوم : سیستم فایل
     
تعاریف اولیه :
نوع موجودیت :
 
 به فرد، شیء، پدیده یا مفهومی که می خواهیم در مورد آن «اطلاع» داشته باشیم، موجودیت       گفته می شود.

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

فیلد:
مکان ذخیره شدن یک واحد معنایی ( semantic data unit ) یا یک فقره اطلاع را فیلد گویند. فیلد کوچکترین واحد اطلاع در فایل است که معنایی منطقی دارد. واحد معنایی داده ، حالت اتوماتیک یا تجزیه ناپذیری دارد. طول فیلد می تواند یک کاراکتر یا حتی یک بیت باشد.

اطلاع :
هر صفت خاصه از دو مؤلفه تشکیل شده است: یکی اسم صفت خاصه و دیگری مقدار صفت خاصه.
به مجموعه این دو مؤلفه «اطلاع» گفته می شود.
مثال :
«نام خانوادگی» صفت خاصه و «عظیمی» مقدار صفت خاصه است. حال عبارت زیر یک اطلاع است.
عظیمی=نام خانوادگی

رکورد :

رکورد را از 3 جنبه می توان بررسی کرد : 1- رکورد در سطح انتزاعی ( Abstractive ) ، 2- رکورد در سطح کاربر ( سطح منطقی ) ، 3- رکورد در سطح فیزیکی ( محیط ذخیره سازی )

1- رکورد در سطح انتزاعی ( Abstractive )
در سطح انتزاعی، رکورد را مستقل از جنبه های نمایشی آن بصورت کلی می بینیم. مثلاً می گوییم برای موجودیت دانشجو صفات خاصه نام، فامیلی و معدل را می خواهیم . رکورد در این سطح یک شیء انتزاعی است.

۲- رکورد منطقی ( Logical Record ) :
در این سطح رکورد از دیدگاه برنامه نویس مشخص می شود. و به این دلیل به آن رکورد برنامه ساز هم می گویند. به عبارتی دیگر رکورد منطقی مجموعه ای از تعدادی فیلد است که دارای ساختار مشخص و مبتنی بر طرحی خاص و نامدار می باشد.

دو طرح کلی برای ساختار رکورد داریم : 1- طرح با قالب ثابت مکان ( Fixed Positional ) ، 2- طرح با قالب غیر ثابت مکان ( Non Fixed - Non Positional )

1- در نوع ثابت مکان, مکان هر فیلد در رکورد ثابت بوده و بنابراین نیازی به ذخیره سازی اسم صفت خاصه در مقدار آن نیست. در این ساختار معمولاً تعداد فیلدها و طول هر کدام از آنها در تمام نمونه های رکورد ثابت است.

 در نوع غیر ثابت مکان، در هر نمونه هم اسم صفت خاصه و هم مقدار آن ذخیره می گردد. مکان فیلد در رکورد ثابت نمی باشد. تعداد فیلدها و طول آنها نیز ممکن است در رکورد های مختلف متفاوت باشد. فرم کلی این رکوردها به صورت زیر است :
                                                                                A1=V1 , A2=V2 , ....
Ai اسم صفت خاصه و Vi مقدار صفت خاصه است مثل :
          نام=علی ، فامیلی=کریمی ، رشته=برق
          نام=حسین ، رشته=فیزیک

از یک جنبه دیگر رکوردها را می توان به دو دسته کلی با طول ثابت و طول متغیر تقسیم بندی کرد. در حالت کلی در هر دو ساختار ثابت مکان و غیر ثابت مکان، طول رکورد می تواند ثابت یا متغیر باشد ولی اغلب در نوع اول ثابت و در نوع دوم متغیر است.

علل متغیر شدن طول رکورد عبارتند از :

1- طول بعضی فیلدها ( مثل آدرس ) ممکن است متغیر باشد.
2- تعداد فیلدهای نمونه های مختلف یک نوع موجودیت ممکن است متغیر باشد.
3- به علت فقره اطلاع تکرار شونده یا گروه اطلاع تکرارشونده به عبارتی دیگر ممکن است صفت خاصه ساده یا مرکب چند مقداری باشد.

3- رکورد فیزیکی یا رکورد ذخیره شده ( Stored Record )
رکورد فیزیکی هنگام ذخیره شدن رکورد در سطح حافظه جانبی ( مثل دیسک ) ذخیره می شود و ممکن است اطلاعات دیگری نیز به آن اضافه شود و یا ساختار آن قدری تغییر کند. معمولاً رکورد ذخیره شده ( فیزیکی ) دارای دو بخش مجزای داده ای و کنترلی می باشد. به بخش کنترلی بخش پیشوندی، بخش غیر داده ای یا Meta Section نیز می گویند. بخش کنترلی اغلب توسط سیستم فایل استفاده شده و از دید برنامه مخفی است.

اغلب در بخش کنترلی اطلاعات زیر ذخیره می شود :
1- طول رکورد ، 2- نوع رکورد ، 3- اشاره گرها ، 4- پرچمهای ( Flags ) عملیاتی و حفاظتی ، 5- اطلاعات خاص برای بعضی ساختارها

کلید ( Key ) :
صفت خاصه یا ترکیبی از چند صفت خاصه که در تمام نمونه های مختلف یک مجودیت, مقدار یکتایی داشته باشد را کلید گویند. طول کلید حتی الامکان باید کوتاه باشد. یک فایل ممکن است چند کلید داشته باشد. آن کلیدی که طول کوتاه داشته باشد و از نظر برنامه نویس مهم باشد را کلید اصلی ( Primary Key ) و بقیه را کلید ثانوی ( Secondary Key ) گویند.

بلاک بندی ( Blocking ) :
بلاک واحد رد و بدل اطلاعات بین حافظه جانبی و حافظه اصلی ( RAM ) توسط سیستم فایل است. البته در یک عمل I/O ممکن است چندین بلوک یکباره خوانده و یا نوشته شوند. از نظر برنامه پردازشگر ، فایل مجموعه ای از رکوردها با ساختار مشخص است ولی از نظر سیستم فایل، یک فایل از تعدادی بلاک تشکیل شده است . نمایش ساده بلاک به صورت زیر است :
FPRIVATE "TYPE=PICT;ALT="


به تعداد رکوردهای موجود در هر بلاک ضریب بلاک بندی گفته می شود آن را با Bf ( Blocking Factor ) نمایش می دهیم. ما بین بلاکها یک فضای بلا استفاده ( Gap ) یا IBG ( Inter Block Gap ) وجود دارد که باعث هدر رفتن فضای ذخیره سازی می شود. طول بلاک یا Bf تأثیر بسزایی روی میزان استفاده از فضا و سرعت عملیات دارد.

بلاک در دیسک می تواند یک سکنور یا ترکیبی از چند سکتور سخت افزاری ، یک شیار یا بخشی از یک شیار باشد. یک بلوک را نمی توان بین دو یا چند شیار تقسیم کرد.

بعضی دیسک گردان ها ( Drivers ) از آدرس دهی سکتوری و بعضی دیگر از آدرس دهی بلوکی ( و یا هر دو ) استفاده می کنند.

اغلب در سازماندهی سکتوری، اندازه سکتورها ثابت است ولی در آدرس دهی بلوکی، اندازه بلوکها می تواند متغیر باشد.

تعیین درست اندازه بلاک و یا به عبارتی تعیین ضریب Bf توسط پردازشگر فایل از دو جنبه بسیار مهم است :

الف) بلاک بندی باید بگونه ای باشد که برای خواندن یک رکورد حتی الامکان فقط یک بلاک بازیابی شود.

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

با افزایش طول بلاک مشکل پراکندگی داخلی ( Internal Fragmentation ) در سطح شیار نیز افزایش می یابد و فضای بیشتری در انتهای شیار به هدر می رود.

روشهای تعیین محدوده رکورد در بلاک :

اگر طول رکوردهای فایل ثابت و معین باشد می توان طول رکورد را مثلاً در راهنمای فایل و یا در مکانی در خود فایل ذخیره کرد. هنگامی که طول رکوردها متغیر باشد برای معین کردن محدوده آنها در بلاک می توان از روشهای زیر استفاده کرد :
1) ذخیره یک علامت ویژه ( مثلاً علامت s در شکل زیر ) که انتهای رکورد را نشان دهد :

2) ذخیره طول رکورد در ابتدای آن

3) ذخیره آدرس نسبی هر رکورد نسبت به ابتدای بلاک در یک جدول مکان نما.

4) استفاده از یک روش ترکیبی برای بالا بردن کارایی(ترکیب روش های 2 و 3)


روشهاي مختلف بلاك بندي :

روشهاي معروف بلاك يندي عبارتند از :

1- بلاك بندي ركوردهاي با طول ثابت : كه معمولاً يكپاره يا unspanned هستند.

پارامترهاي مورد استفاده :
 W : ميزان حافظه هرز
 WB : ميزان حافظه هرز با ازاء هر بلاك
 WR : ميزان حافظه هرز با ازاء هر ركورد
  Tf : تعداد بلاكها در شيار يا فاكتور تراكينگ
 W1 : حافظه هرز ناشي از گپ
 W2 : حافظه هرز ناشي از نگنجيدن ركورد آخر در بلاك
 W3 : حافظه هرز ناشي از نگنجيدن بلاك آخر در شيار

 مقدار متوسط W2 برابر R/2 مي باشد.