درباره وبلاگ


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

Y! ID : Kingmojtaba2006
Mojtaba.Karimi010@gmail.com
دنیا را با دیدی بازتر ببینیم
جایی برای بحث و تبادل نظر در مورد موضوعات مختلف
شنبه بیست و چهارم تیر 1385 :: 18:23 ::  نويسنده : Mojtaba Karimi

 

سیستم فایل :

 

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

 

در یک دید کلی لایه های یک سیستم را می توان مشابه شکل زیر در نظر گرفت :

 

                                                      لایه های یک سیستم

 

معماری کل سیستم فایل را می توان مشابه شکل کلی زیر در نظر گرفت :

 

 

                                               معماری کلی سیستم فایل

 

درایور :

 

در قسمت پایین این معماری قرار داشته و به طور مستقیم با کانال و کنترلر دیسک در ارتباط است.

 

سیستم فایل فیزیکی یا PFS  ( Physical File System ) :

 

این لایه اغلب با محتویات بلاک ها  و ساختار فایل ها سروکار دارد. همچنین مسئول ذخیره کردن بلاک ها روی دیسک و منتقل ساختن آنها از دیسک به بافر و برعکس است. ممکن  است این لایه بخشی از خود سیستم عامل باشد.

 

سیستم فایل منطقی یا LFS ( Logical File System ) :

 

این لایه این امکان را می دهد که کاربران به رکوردها دستیابی داشته باشند. برنامه کاربر از طریق یک شیوه دستیابی یا AM ( Access Method ) با این لایه در ارتباط بوده و این لایه درخواست های کاربر را انجام می دهد.

 

شیوه دستیابی یا AM ( Access Method ) :

 

این قسمت بالاترین لایه سیستم فایل بوده و واسط روابط بین کاربر و سیستم فایل منطقی است.

 

سیستم فایل مجازی یا VFS ( Virtual File System ) :

 

کاربران غیر برنامه ساز اغلب از طریق این لایه با سیسم فایل کار می کنند. سیستم فایل مجازی ساختاری برای فایل قائل نبوده و فایل را به صورت دنباله ای از کاراکترها و بایتها می بیند. کاربران غیر برنامه ساز از طریق مجموعه ای از دستورات خاص نیازهای خود را انجام می دهند.

 

 

فایل :

 

منظور اصلی از فایل مجموعه ای نامدار و اغلب دارای یک ساختار مشخص از نمونه های مختلف یک نوع رکورد ( فایل تک نوعی ) یا چند نوع رکورد ( فایل چند نوعی ) است. ولی فایل ممکن است تنها دنباله ای بی ساختار از کاراکنرها باشد و مجموعه ای از رکوردها نباشد.

 

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

 

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

 

فایل 3 ویژگی اصلی دارد :

 

1.       به اندازه ای بزرگ است که به طور کامل در حافظه قرار نمی گیرد.

2.       پایایی دارند یعنی داده ها از بین نمی روند.

3.       می توانند بین چند کاربر مجاز به صورت اشتراکی دستیابی شوند.

 

به طور کلی فایل ها از دید کاربر به دو دسته تقسیم می شوند:

 

1.       فایل عادی که حاوی اطلاعات کاربر بوده و خود به دو نوع اسکی یا دودویی تقسیم می شود.

2.       فایل راهنما ( Directory ) یا فایل سیستمی  که حاوی اطلاعات خود سیستم فایل لست.

 

 

نکته :  جدول راهنمای فایل ( File Directory )

 

در سیستم فایل نوعی جدول وجود دارد که در آن اطلاعات مربوط به فایل ها ذخیره می شود. به طور کلی اطلاعات نمونه ای زیر در جدول برای هر فایل ثبت می شود :

نام فایل ، آدرس اولین بلاک آن ، طور رکورد ، تعداد رکوردها ، نام صاحب فایل ، طول فایل ، تاریخ ایجاد ، تاریخ اصلاح فایل و غیره.

 

 

نشست فایل در محیط فیزیکی  :

 

به طور کلی فایل به دو صورت می تواند در دیسک ذخیره شود :  

 

1.       نشست پیوسته

2.       نشست ناپیوسته

 

نشست پیوسته :

 

در این روش فایل در بلاکهای فیزیکی پیوسته و همجوار ذخیره می شود.

 

مزایا  :

1.       پیاده سازی آن ساده است و تنها با داشتن آدرس اولین بلاک و نیز تعداد بلاکها می توان به اطلاعات دسترسی داشت.

2.       -  آنکه کارایی و سرعت آن بالا است ، چرا که فایل را می توان در یک عمل واحد خواند.

 

معایب  :

1.       اندازه فایل در زمان ایجاد آن باید معلوم باشد.

2.       این روش مشکل بند بند شدگی خارجی ( External Fragmentation ) را دارد.

 

نشست ناپیوسته  :

 

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

 

مزایا  :

1.       با داشتن آدرس اولین بلاک، بقیه بلاکها با پیمایش این زنجیر دستیابی می شوند.

2.       مشکل بند بند شدگی خارجی وجود ندارد.

3.       خواندن پی در پی ( Sequential ) فایل کار ساده ای است.

 

معایب  :

1.       دستیابی مستقیم و تصادفی در آن بسیار کند است.

 

 

نکته :

 

برای آنکه دستیابی تصادفی در نشست ناپیوسته سریع تر گردد می توان از لیست پیوندی مجهز به جدول راهنما استفاده کرد، مشابه جدول FAT ( File Allocation Table ) در سیستم عامل DOS .

 

 

مدیریت بلاکهای آزاد :

 

دو روش برای مدیریت بلاکهای آزاد وجود دارد :

 

1.       لیست پیوندی :

 

در روش لیست پیوندی لیستی از چند بلاک دیسک پدید می آید که هر بلاک حاوی شماره  بلاک های آزاد است.

 

2.     نگاشت بیتی یا Bitmap  :

 

در روش بیت نقش برای دیسکی با n بلاک از n بیت استفاده می شود. بیت متناظر با بلاک آزاد برابر 1 و بیت متناظر با بلاک استفاده شده 0 منظور می شود.

 

 

 

 

روش های تولید نسخه پشتیبان  :

 

در موارد زیادی برای پشتیبان گیری از اطلاعات دیسک ، از نوار ، دیسکت ، CD و غیره استفاده می شود. چند روش دیگر برای این کار عبارتند از :

 

1.  استفاده از نیمه دو دیسک  :

 

در این روش از دو هارد دیسک استفاده شده که فضای هر کدام به دو قسمت تقسیم می شود. اغلب در انتهای هر روز کاری نیمه داده ای هر دیسک روی نیمه پشتیان دیسک دیگر کپی می شود :

 

                                             استفاده از دو نیمه دیسک

 

2.  تولید دامپ های تدریجی ( Incremental dumps )  :

 

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

 

3.  آینه سازی ( Mirroring )  :

 

در این روش از دو یا چند دیسک استفاده می گردد. مثلاً در حالتی که دو دیسک داریم عمل نوشتن در دو دیسک صورت گرفته که به آن آینه سازی می گوییم. البته عمل نوشتن دوم در دیسک قدری با تأخیر صورت می گیرد. در این روش عمل خواندن از روی یک دیسک انجام می شود و اگر دیسکی خراب شود، داده ها را می توان از دیسک دیگر خواند.

 

                                                                  

لوکالیتی ( Locality )  :

 

رکورد منطقی بعدی رکوردی است که از دید برنامه باید پس از رکورد فعلی مورد پردازش قرار بگیرد . به عبارتی دیگر رکورد منطقاً همجوار رکورد فعلی می باشد. همجواری منطقی رکوردها بر اساس نظمی است که برنامه تعریف می کنند. ( مانند نظم نزولی معدل)

میزان همسایگی رکورد منطقی بعدی ، نسبت به رکورد فعلی روی حافظه جانبی را لوکالیتی می گویند. درجات لوکالیتی از قوی به ضعیف به ترتیب عبارتند از :

 

توجه :

 ( s  یا seek time  : زمان استوانه جویی  ؛   r  یا rotational latency   :  زمان درنگ دورانی   )

 

1.  رکورد بعدی در همان بلاکی است که رکورد جاری هست و این بلاک در بافر قرار دارد. در این وضعیت عمل I/O نداریم .

s=0  ;  r=0  ;  I/O=0

2.  رکورد بعدی در بلاک بلافاصله بعدی رکورد جاری از همان استوانه است. در این وضعیت عمل I/O داریم.

s=0  ;  r=0  ;  I/O>0

3.  رکورد بعدی در همان استوانه ای است که رکورد فعلی قرار دارد.

s=0  ;  r>0  ;  I/O>0

 

4.  رکورد بعدی روی استوانه ای با همان شماره ولی روی دیسکی دیگر است، یعنی فایل روی چند دیسک توزیع شده است.

s=0  ;  r>0  ;  I/O>0

5.  رکورد بعدی در استوانه ای همجوار است.

s= smin > 0  ;  r>0  ;  I/O>0

6.  رکورد بعدی روی استوانه ای دیگر است که آدرس آن از پردازش رکورد جاری بدست می آید.

s>0  ;  r>0  ;  I/O>0

7.  رکورد بعدی روی استوانه ای ناشناخته است که آدرس آن با انجام محاسباتی خاص بدست می آید.

 

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

 

9.  رکورد بعدی روی رسانه ای است که در حال حاضر روی درایور وجود ندارد.

 

چگالی لود اولیه  :

 

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

 

                               

                                 

مزایا :

 

1.       وجود ناحیه هرز باعث می شود لوکالیتی رکوردهای فایل بهتر حفظ شود.

2.       این تکنیک برخی عملیات روی فایل را ساده تر و سریع تر می سازد.

 

معایب  :

 

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

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

 

 

سطوح مختلف آدزس دهی :

 

در یک دید کلی می توان سیستم فایل را مشابه شکل زیر به دو بخش فیزیکی و منطقی تقسیم بندی کرد :

 

طرح کلی آدرس دهی در سیستم فایل 

 

 

بخش منطقی سیستم فایل دستورات کاربر نظیر باز و بسته کردن و خواندن و نوشتن فایلها را انجام می دهد.

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

با توجه به شکل و تو ضیحات فوق سطوح مختلف آدرس دهی عبارتند از :

 

1.       در سطح کاربر (برنامه) 

2.       در سطح منطقی سیستم فایل

3.       در سطح فیزیکی سیستم فایل

 

1. آدرس دهی در سطح برنامه  :

 

در این سطح آدرس دهی می تواند به صورتهای زیر باشد :

 

الف ) محتوایی یا مقداری :

کاربر مقدار یک یا چند صفت خاصه را جهت جستجو می دهد. این صفت خاصه می تواند کلید باشد یا نباشد.

 

ب)  آدرس دهی نسبی :

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

 

ج) آدرس دهی نمادین ( Symbolic ) :

در اینحالت رکورد دلخواه توسط یک نام مشخص آدرسدهی می شود.

 

2.  آدرس دهی در سطح منطقی سیستم فایل  :

 

بخش منطقی سیستم فایل کل فضای رسانه را به صورت یک آرایه از بلاکها می بیند. هر بلاک یک شماره یکتا دارد که به آن آدرس نسبی بلاک یا RBA ( Relative Block Address ) گفته می شود. شماره RBA از صفر شروع می شود. قسمت منطقی سیستم فایل آدرس تولید شده در سطح برنامه را دریافت نموده و آن را به آدرس RBA تبدیل می کند و سپس این RBA را به سمت بخش فیزیکی می فرستد.

 

3.  آدرس دهی در سطح فیزیکی سیستم فایل  :

 

بخش فیزیکی سیستم فایل آدرس RBA را از بخش منطقی دریافت کرده و آن را به آدرس دهی خاص رسانه ذخیره سازی تبدیل می کند. مثلاً در مورد دیسک، آدرس RBA را به شماره سیلندر، شماره شیار در سیلندر و شماره بلاک در شیار تبدیل می کند.