کامپیوتر و IT و اینترنتعلوم مهندسی

پیاده سازی سیستم فایل

صفحه 1:

صفحه 2:

صفحه 3:

صفحه 4:

صفحه 5:
مقدمه همانطور که درفصل 11 دیسیم. سیستم فلیل راهکاری رابرای حافظه و دستیابی به داده ها و برنامه ها فراهم عی کند.سیستم فلیل در حافظه انهیه ذخیره می شود. حافظه ثانویه اطلاعات زیادی را به طور دائمی ذخیره می کند. 1-2 ساختار سیستم فایل دیسک. حافظه انبوهی است که سیستم فایل در آن نگهداری می شود. 2ویژگی مهم فابلها: انوشتن درجا امکان پذیر است. ابه هر بلوکی از اطلاعات می توانیم مستقیما دستیابی داشته باشیم.

صفحه 6:
آأبرای بهبود کارلیی 1/00. انتقال 1/0 بین حافظه و دیسک بر حسب واحدهایی از بلوک صورت ی گیرد. که هر بلوک ازیک یا چند قطاع تشکیل می شود. اندازه قطاع از 32 بلیت تا 4096 بلیت است و بستگیبه گرداننده دیسک دارد. معمولا اندازه قطاع 2 بایت است. آ/برای دستیابی کارآمد و راحت‌به دیسک. سیستم علمل از یک سیستم فلیل استفاده می کند. سیستم فایل برای ذخیره. ‎GEL‏ و بازیابی سریع اطلاعات مناسب است.

صفحه 7:
سیستم فایل دو مسئله عمده طراحی دارد: 7 جكونكى سیستم فایل از دیدگاه کاربر #ایجاد الگوریتمها و ساختمان داده هایی برای نگاشت سیستم فایل منطقی به دستگاه حافظه فیزیکی ثانویه خود سیستم فایل هم از چند سطح تشکیل می شود

صفحه 8:
۳ وز "بزنامه ها کاربردی ۲ ۳ سیستم فایل منطقی پیمانه سازمان دهی فایل سیستم فایل اصلی کنترل ۱/0 8 دستگاهها

صفحه 9:
‎caw pF‏ در این طراحی با استفاده از ویژگیهای سطوح پایین تر. ویژگیهای جدیدی را ایجاد می کند که توسط لابه های بالاتر به کار گرفته می شود. ‎ches oi) ony‏ یعنی کنترل 1/0 متشکل از گرداننده های دستگاه و پردازنده وقفه برای انتقال اطلاعات بین حافظه و سیستم دیسک است.گرداننده دستگاه را مى توان به عنوان یک انتقال دهنده در نظر گرفت. ورودی آّن فرمانهای سطح بالا است.خروجی ‎ald ol‏ دستورات سطح پایین وبئّه سخت افزاری بکار گرفته می شود که واسط دستگاه 1/00 و بقیه سیستم است. ‎9

صفحه 10:
تا بلوکهای فیزیکی را از روی دیسک بخوانند و بنوبسند.هر بلوک فیزیکی با آدرس عددی روی دیسک مشخص می شود. 7"پیملنه سازمان دهی فلیل. اطلاعلتی راجع‌به فایلها. بلوکهای منطقی و فیزیکی آنها در اختیار دارد.با دانستن نوع تخصیص فایل و محل وجود فلیل. پیملنه سازمان دهی فلیل می تولند آدرسهای بلوک منطقی رابه آدرسهای بلوک فیزیکی تبدیل کند.پیملنه سازمان دهی فلیل شامل مدیر فضای آزاد است که بلوکهای تخصیص نیافته را نگهداری ی کند و در صورت نیاز در اختیار پیملنه سازمان دهی فایل قرار هی دهد.

صفحه 11:
آ#"سیستم فلیل منطقی. اطلاعات شبه داده را مدیریت می کند. شبه داده حاوی ساختار سیستم فلیل. به جز داده واقعی است. سیستم فلیل منطقی سلختار دایرکتوری را مدیریت عی کندتا اطلاعلتی را در اختیار پیملنه سازمان دهی فایل قرار دهدتا بعدا از آنها استفاده شود.ساختار فلیل را از طریق بلوکهای کنترل فایل نگهداری می کند.سیستم فایل منطقی مسئول حفاظت و امنیت است. 11

صفحه 12:

صفحه 13:
2-2 پیاده سازی سیستم فابل سیستم عامل فراخوانهای سیستم 0۳612 و 01056 را برای فرآیندها پیاده سازی می کند تا به محتویات فایل دستیابی داشته باشد. 1-2-2 مرور کلی چندین ساختار بر روی دیسک و حافظه برای پیاده سازی سیستم فابل مورد استفاده قرار عى كيرند. لين موضوع بسته‌به سیستم علمل و سیستم فلیل فرق می کند. ولی قواعد کلی برای لین کار وجود دارد. سیستم فلیل بر روی دیسک. ممکن است حاوی اطلاعلتی راجع‌به چگونگی راه اندازی سیستم علمل. تعداد کل بلوکها. رتعداد و محل بلوکهای آزاد. ساختار دایرکتوری و فایل باشد.

صفحه 14:
ساختارهای روی دیسک: آ[بلوک کنترل راه اندازی حاوی اطلاعلتی است که سیستم برای راه اندازی سیستم عامل از آن پارتیشن استفاده‌می کند. اگر دبسک فلقد سیستم علمل باشد. این بلوک عی تولند خللی باشد. لین بلوک. معمولا اولین بلوک دیسک است . در 7۳۴85 . نامش بلوک راه اندازی است. در 1۳5 1۷ نامش قطاع راه انداز پارتیشن است. 7 بلوک کنترل پارتیشن حاوی جزئیات پارتیشن است. در 7195 نلمش سوير بلوى و در 1۳۴5 نامش جدول فایل اصلی است. 14

صفحه 15:
7 ساختار دایرکتوری برای سازمان دهی فایل بکار می رود. ‎cule ۳09‏ جزئیات ف ایللست‌در ۳]8] نامش‌گره شاخص‌لست‌در 5 لير طلاعات در جدولفايلإصلىذخيره موشود كه از ساختار بلنى لطلهلتی‌وجود دارد. 15

صفحه 16:
اطلاعات موجود در حافظه برای مدبربت سیستم فلیل و بهبود کارایی از طریق حافظه پنهان بکار می رود.این ساختار شامل موارد زیر است: آآجدول پارتیشن موجود در حافظه حاوی اطلاعلتی راجع به هر پارتیشن سوار شده است. جدول فلیل باز در سیستط سیستم حاوییک کپی از 8783[ مربوطبه هر فایل باز و سایر اطلاعات است. 7 جدول فلیل باز در سطح فرآیند حاوی اشاره گربه ورودیهای مناسبی در جدول فایل باز سطح سیستم است و اطلاعات دیگری را نیز در بر می گیرد. 16

صفحه 17:
را فراخولنی می کند.سیستم فلیل منطقی فرمت ساختارهای دایرکتوری را می داند. برای ایجاد فلیل جدید.یک ۳/12 جدید ایجاد عی کند. دایرکتوری مناسبی را در حافظه می خولند. آن رابا نام فلیل و ۳613 جدید نوسازی می کند ون را بر روی دیسک می نویسد. 17

صفحه 18:
مجوزهای فایل تاریخهای فایل (ایجاد. دستیابی» نوشتن) مالک فایل» گروه» و ۸۱ اندازه فایل بلوک های داده فایل 18

صفحه 19:
اليس از لين كه فایلی ابتدا بايد باز شود. جاد شد. می تولند براى 1/00 مورد استفاده قرار كيرد. 7" فراخوان 0211 نام فليل راجه سیستم فلیل می فرستد. وقتی فلیل باز شد. ساختار دایرکتوری برای آّن نام فایل جستجو می شود. بخشهایی از ساختار دایرکتوری در حافظه قرار می گیرند تا عملیات دایرکتوری سریع شود. آآوقتی فایلی پیدا شد. ‎FCB‏ 59 جدول فایل باز سطح سیستم کپی می شود. این جدول‌نه تنها ‎FCB‏ را ذخیره عی کند. بلکه تعداد فرآیندهلیی که ن فایل را باز وکرده اند. نگهداری می نماید.

صفحه 20:
ِ 17 (PR PATRAS ‏7آپس یک ورودی در جدول فایل باز در سطح فرآیند‎ ‏ایجاد می شود که به ورودیی در جدول باز در سطح‎ ‏سیستم اشاره می کند و فیلدهای دیگری هم دارد.‎ این فیلدها می توانند موقعیت فعلی در داخل فایل را نگهداری کنند تا عملیات ۲6۵0 و ۷۲:۲۵ انجام شوند.علاوه براین» حالت دستیابی فایل نيز در اين فيلد مشخص مى گردد. 0فراخوانی 0۳6 اشاره گری به ورودی مناسبی در

صفحه 21:
آآنام فلیل‌به عنوان بخشی از جدول فلیل باز نباشد. زیرا وقتی 16013 مناسبی بر روی دیسک قرار دارد. سیستم از نام فایل استفاده نمی کند. نامج که به اندیس داده می شود. در سیستمهای عامل مختلف فرق می کند. یونیکس آن را توصیفگر فایل و ویندوز 2000 آن را دستگیره فایل می نامد. آآوقتی فرآیندی فایلی را عی بندد. ورودی آن از جدول سطح فرآیند حذف می شود و از تعدافایلهای باز در سطح سیستم یک واحد کم می شود. 21

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

صفحه 23:
"در بعضی از سیستمها , از سیستم فایل به عنوان واسطی به جنبه های دیگر سیستم استفاده می کنند و در جنبه ذخیره سازی در حافظه پنهان سرباری ندارد. 23

صفحه 24:
4 ساختارهای سیستم فایل ر موجود در حافظه بلوک کنترل فایل حافظه نانویه بلوکهای داد Sob woah | ساختار دایرکتوزی حافظه هسته باز كردن فايل جدول فايل باز در جدول فایل باز درا سطح سیستم سطح فرآیند حافظه هسته خواندن فایل rs = open(filename) Spel ‏ساختار‎ فضای کاربر read(index) فضای کاربر ۱

صفحه 25:
2-2-2 پارتیشن ها و سوار کردن آنها طرح بندی دبسک بسیار متنوع است وبه سیستم عامل بستگی دارد. دبسک می تولند به چند پارتیشن تقسیم شود یایک پارتیشن عى تولند چند دیسک را در بر گیرد. حالت اول: هر پارتیشن می تواند خام باشد یا آماده و حاوی سیستم فایل باشد. دیسک خام وقتی مورد استفاده قرار می گیرد که هیچ سیستم فایلی مناسب نباشد.فضای مبادله یونیکس می تواند زر بارتيشن خام استفاده كند. بعضى از بانكهاى اطلاعاتى از ديسك خام استفاده مى كنند.

صفحه 26:
#دیسک خام می تولند حاوی اطلاعلنی باشد که موردنیاز سیستمهای 13۸10 است. مثل نقشه های بیتی که مشخص حی کنند کدام بلوکها آینه ای شدند و کدامها تغییر دارند تا آیینه ای شوند. #"اطلاعات راه اندازی سیستم می تولند در پارتیشن جداگلنه ای قرار گیرد. فرمت اطلاعات. وییه است. زیرا در هنگام راه اندازی. گرداننده دستگاه سیستم فایل بار نشده است و نمی تواند فرمت سیستم فایل را تفسیر کند. بصورت دنبلله ای از بلوکها است که‌به شکل تصویربه حافظه باررحی شوند. اجرای این تصویر از محل خاصی مثل اولین بلیت تصویر شروع حی شودلین تصویر راه اندازی می تولند دستوراتی بیش از دستورات لازم برای راه اندازی سیستم علمل را در بر داشته ‎de‏

صفحه 27:
آآدر چنین سیستمهایی, چندین سیستم عامل را می توان نصب |أباركننده راه انداز که سیستمهای فلیل چندگلنه و سیستمهای علمل چندگلنه را می فهمد. می تولند فضای راه اندازی را اشغال کند. هنگامی که بار می شود. می تواند یکی از سیستمهای عامل موجود در دیسک را راه اندازی کند. [أدیسک می تولند چندین پارتیشن داشته باشد و هر کدام دارای سیستم فایل و سیستم عامل متفاوتی باشند. [آپارتیشن ريشه که حاوی هسته سیستم عامل و سایر فایلهای سیستم است» در زمان راه اندازی سوار می شود. | سایر پارتیشن ها می توانند بطور خودکار در زمان راه اندازی یا بعدا بطور دستی پبوار شوند. این موضوع به سیستم عامل بستگی دارد.

صفحه 28:
أابه عنوان بخشی از عملیات موفق سوار کردن. سیستم عامل کنترل می کند که آیا دستگاه حاوی سیستم فایل معتبری است پا خیر. اگر فرمت نامعتبر باشد, پارتیشن باید از نظر سازگاری تست و درست شود. سرانجام. سیستم عامل در ساختار جدول سوار كردن خود يادداشت: مى كند كه يك سيستم فايل سوار شده است و نوع سيستم فايل را نيز ذخيره مى كند. 28

صفحه 29:
لأدر يونيكس. سيستمهآى فليل مى توانند در هر دایرکتوری سوار شوند. برای ببلدهسازى آن. يك برجم در كره شاخص مربوط به آن دايركتورى كه در حافظه قرار دارد. مقئار مى كيرد. ‎ool]‏ يرجم نشان حى دهد كه دايركتورى.يك نقطه سوار كردن است. سبس فيلدى به يك ورودى در جدول سوار كردن اشاره مى كند و مشخص مى كند كه كدام دستكاه در اينجا سوار شده است. ‏لأ ورودى جدول سوار كردن حاوى اشاره كرى .به سوير بلوى سيستم فليل در آن ويستكاه است.

صفحه 30:
3-2-2 سیستمهای فایل مجازی لأسيستمهاى عامل مدرن. همزمان باید چندین نوع سیستم فایل راپشتیبانی کنند. آأبرای انجام لین کار.بیک روش پیاده سازی انواع مختلفی از سیستمهای فلیل لین است که برای هر نوع . روالهای دابرکتوری و یفایل جداگانه ای نوشته شود. [ اغلب سیستمهای عامل. ازجمله یونیکس: برای سهولت. سازمان دهی. و پیمانه ای كردن پیاده سازی . از شی گرایی استفاده می کند. 30

صفحه 31:
‎ul‏ استفاده از این روشها می توان سیستمهای فایل متفاوت را در یک ساختار پیاده سازی کرد. کاربران می توانندبه فایلهای موجود در سیستمهای فلیل مختلف در ‏دیسک محلی . يا سیستمهای فایل شبکه دستیابی داشته باشند. ‎ ‎ ‏آابرای تفکیک عملکرد فراخوان سیستم اصلی از جزئیات پیاده سازی. از ساختمان داده ها و رویه هلیی استفاده عی شود. لذا. پیاده سازی سیستم فلیل شامل 3 لابه اصلی است. ‎31

صفحه 32:
_ سیستم فایل مجازی واسط سیستم واسط ۷۴5 سیستم فایل ‎ol,‏ سیستم فایل سیستم فایل دور نوع 1 محلی نوع 2 محلی نوع 1 < < NY “32

صفحه 33:

صفحه 34:
3-2 پیاده سازی دای رکتوری انتخاب الگوربتمهای تخصیص دایرکتوری و مدیریت بر دایرکتوری, اثر زبادی بر کارلیی و قابلیت اعتماد سیستم فلیل دارد.لذاء بین لین الگوریتمها باید توازن برقرار باشد. 1-3-2 ليست خطی ساده ترين روش بياده سازى دايركتورى استفاده ازيك ليست خطى از اسامى فایلها و اشاره گرهایی به بلوک داده ها است. برای یافتن ورودى خاصى از دایرکتوری. نیازبه جستجوی خطی است. برنلمه نویسی لین روش ساده است ولی اجرای آن به زمان زیادی نیاز دارد. 34

صفحه 35:
موجود نباشد. سپس ورودی جدیدی در انتهای دایرکتوری قرا می دهیم. برای حذف فلیل. آنرا در دایرکتوری جستجومی کنیم و فضای تخصیص یافته‌به آن را آزاد مى کنیم. برای استفاده مجدد از دایرکتوری. چندین کار را می توان انجام داد: لأمى توانیم آن ورودی را علامتگذاری کنیم که به معنای حذف باشد. لأمی توانیم لیستی از ورودیهای آزاد دایرکتوری را به آن وصل کنیم. لأمى توانيم آخرين ورودى دايركتورى را در لين محل خللى كيى كنيم تا طول ایرکتوری کاهش یابد. دایرکتوری ان یاف

صفحه 36:
عيب لیست خطی برای وروّدیهای دایرکتوری,جستجوی خطی رای یافتن فابل است. أ اطلاعات دای رکتوری‌به وفور بکار می شوند و چنانچه الگوریتم دستیابی کند باشد از دیدگاه کاربر مشهود است. 7 در واقع. اغلب سیستمهای عامل یک حافظه پنهان نرم افزاری را برای ذخیره اطلاعلتی از دایرکتوری که اخیرا مورد استفاده قرار گرفته لند. بکار می گیرند.بدین تر تیب اطلاعات دوباره از دیسک خوانده نمی شود. آآلگر لیست مرتب باشد. جستجوى دودويى از میانگین زمان جستجو عی کاهد. اما مرتب بودن خطی. حذف و اضلفه فلیل را مشکل حی کند. زیرا فایلهای زیادی از لیست بيد جا به جا شوند.

صفحه 37:
2-3-2 جدول در هم سازی در لین روش یک لیست خطی ورودیهای دایرکتوری را ذخیره می کند ولی از ساختمان داده در هم سازی نیز استفاده می شود. أجدول در هم سازی. مقداری را که از نام فلیل محاسبه می شود می گیرد و اشاره گر به نام فلیل را در لیست خطی برمی كرداند.بدبين ترتیب زمان جستجو در دایرکتوری کاهش می پابد. أ افزودن فلیل جدید و حذف فلیل نیز ساده است. گر چه بلید تمهیداتی برای برخوردها اندیشیده شود. منظور از برخورد لین است که دو فلیل ممکن است 37

صفحه 38:
به اندازه جدول a ‎ol,‏ دیگر لین است که از جدول در هم سازی سرریز استفاده شود. یعنی هر ورودی در هم سازی می تولندبه ‎cle‏ یک مقدار.یک لیست پیوندی باشد و برای ‏رفع برخورد . ورودی جدیدی را در لیست پیوندی قرار می دهیم. ‏7 جستجو ممکن است کمی طول بکشد ولی از جستجوی خطی در سراسر دایرکتوری سریعتر است. ‎38

صفحه 39:
Pree) ‏مدیریت فضای ازاد‎

صفحه 40:
4-2 روشهای تخصیص فضا به فایل ماهیت دستیابی مستقیم دیسکها منجربه قابلیت انعطاف در پیاده سازی فابلها می شود. بر روی هر دیسک چندین فلیل ذخیره می شود.مسئله اصلی چگونگی تخصیص فضابه این فایلها است. بطوری که فضای دیسک بطئر کار آمد مورد استفاده قرار گیرد و فایلها نیز سریعا دستیابی شوند. 3 روش متداول برای تخصیص فضای دبسک وجود دارد: 1. تخصیص همجوار پیوندی كلل شاخص دار 40

صفحه 41:
1-4-2 تخصیص همجوار در روش تخصیص همجوار, هر فایل مجموعه پیوسته ای از بلوکهای دیسک را اشغال می کند. آدرسهای دیسک یک ترتیب خطی را روی دبسک تعریف می کند. [أ توجه کنید که در این ترتیب. با فرض اینکه فقط یک کار به دیسک دستیابی دارد. دستيابى .به بلوى 1 +9پس از بلوک 0 نیازبه حرکت هد ندارد. در صورت نیاز به حرکت هد. فقط یک شیار حرکت خواهد کرد. [] لذاء تعداد بيكردهاى مورد نیاز برای دستیابی به فایلهلیی که تخصیص همجوار 1ارند. اندك است.

صفحه 42:
تخصیص همجوار فایل توسط آدرس دیسک و طول اولین بلوک تعریف می شود. اگر طول فایل - 9 بلوک محل شروع - 1 آنكاه بلوكهاى 33-1+ («1,... ,2 + 1,19 +10 را اشغال خواهد کرد آآورودی دایرکتوری برای هر فایل آدرس بلوک اول فایل و طول ناحیه ای راکمبه آن تخصیص یافته است مشخص می کند. 42

صفحه 43:
43 دایرکتوری طول شروع فایل count 0 tr 14 mail 19 list 28 f 6 NPOWN count ۰] 6 9 ۰] 6 ‏و‎ 5 ۰ 3 ill ih) Bk) | 9 16 ۰71 ۰۰ 13 mail 2013 2118 2: 23 24 0 ‏ات‎ 271 2 9 9 ‏ال‎ |

صفحه 44:
أدستیابی به فایلی که بطور همجوار تخصیص يافته است آسان است. در دستیابی ترتیبی. سیستم فلیل با استفاده از آدرس آخرین بلوکی که‌به آن مراجعه شده است. بلوک بعدی را می خواند. برای دستیابی مستقیم به بلوى 1 مربروط به فایلی که از بلوک 0 شروع می شود. می توانیم فورا به بلوى 1+1 دستیابی داشته باشد. یکی از مشکلات تخصیص همجوار. یافتن فضای کافی برای فایل جدید است. المسئله تخصیص فضای دیسک به صورت همجوار. به عنوان کاربرد خاصی از پرهسئله کلی تخصیص حافظه پویا است.

صفحه 45:
چگونگی تخصیص حافظه به طول 9 از لیستی از حفره های آزاد: اولین جای مناسب و بهترین جای مناسب. دو روش متداول برای انتخاب حفره آزاد از بين مجموعه اى از بين مجموعه ای از حفره های آزاد هستند. 7 شبیه سازیها نشان دادند که این دو روش کارآمدتر از روش بدترین جای مناسب 5 هيجكدام از دو روش اولین جای مناسب و بهترین جای مناسب. در بهره وری از حافظه بر دیگری ارجح نیست ولی روش اولین جای مناسب . سریعتر است. 45

صفحه 46:
با ایجاد و حذف فلیل. فضای آزاد دیسک به چند تکه کوچک شکسته می شود. ‎ast‏ تکه شدن خارجی وقتی بوجود می آید که فضای دیسک به قطعات کوچکی ‏تقسیم گردد. ‏گر قطعات موجود در حافظه برای تخصیص همجوار فایلی مناسب نباشند. این مسئله جدی است.یعنی حافظه به تعدادی حفره تقسیم می شود که هیچکدام ‏ازآنها به تنهایی نمی توانند پاسخگوی درخواست باشند. ‏[أبسته بهمیزان کل حافظه دیسک و میانگین اندازه فلیل . تکه تکه شدن خارجی 6مکن است اندک یا زباد باشد.

صفحه 47:
7" بعضی از سیستمهای ریز کامپیوتر قدیمی. در دیسک فالپی آز تخصیص همجوار استفاده کرده اند. آآبرای جلوگیری از هدر رفتن فضای دیسک در لثر تکه تکه شدن خارجی کاربر بلید روللی را اجرا کند که کل سیستم فلیل را در فللپی دیگر یا نوار کپی نماید. سپس دیسک فللپی اصلی آزاد می شود ویک فضای خللی همجوار بوجود می آید. سپس لین روال. فایلها راجه لين دیسک می آورد و حافظه همجواری راجه آنها تخصیص عی دهد. لین الگو. کل فضای آزاد را دریک فضای همجوار فشرده عی ‎WS‏ ‏و تکه تکه شدن خارجی را حل می کند. 47

صفحه 48:
[آهزینه لین الگو. زملنی است که برای ن مصرف می شود. لین هزینه برای دیسکهای سخت بزرگ. بسیار زیاد است. در این مدت. کار عادی سیستم صورت نمی گیرد. آأمسئله اصلی دیگر در مورد تخصیص همجوار. تعیین میزان فضای لازم برای فایل است. برای ایجاد فایل. کل فضای مورد نیاز آن باید تعبین شود و تخصیص یابد. لأدر بعضى از موارد. تعيين اندازه فلیل ممکن است آسان باشد. اما بطور کلی تعیین اندازه فایل دشوار است. 48

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

صفحه 50:
۰2 یافتن حفره بزرگتر و کپی محتویات فلیل در ن حفره و حذف فضای قبلی است. لین کار منجر به اتلاف وقت عی شود.در لین حللت. لازم نیست کاربر از آنچه که اتفاق می افتد باخبر باشد. خود سیستم اینکار را انجام می دهد. ‎aol‏ اگر کل فضای مورد نیاز فلیل از قبل مشخص باشد. تخصیص زودرس ممکن ‏است کار آمد نباشد. ‏فایلی کمبه تدریج در طول زمان رشد پیداحی کند. تخصیص کل فضابه‌ن منجر جه اتلاف حافظه می شود. زیرا مقدار زیادی از فضای لن مدتها مورد استفاده واقع ‏نمی شود. بدین ترتیب . تکه تکه شدن داخلی بوجود می آید.

صفحه 51:
‎FB‏ برای حل مسئله. بعضی از سیستمهای عامل از الگوی تخصیص همجوار اصلاح شده ای استفاده ی کنند که در ن. در آغاز.یک قطعه همجوار از فضا تخصیص می ‏یابد و چنانچه آن فضا کافی نبود. قطعه دیگری به آن اضافه می شود. ‏بدین ترتیب. محل بلوکهای فابل به صورت محل و شماره بلوک ذخیره می شود.علاوه براين به اولین بلوک قطعه جدیدی نگهداری می شود. ‏در بعضی از سیستمها. اگر مللک فلیل واقعی نباشد. لین تخصیص ممکن است ناکار آمد باشد. در این حالت تکه تکه شدن داخلی بوجود می آید. ‎51

صفحه 52:
2-4-2 تخصیص پیوندی تخصیص پوندی به 2 روش انجام می گیرد: روش اول: تخصیص پیوندی مسائل مربوطبه تخصیص همجوار را حل حی کند.در لین روش . هر فلیل یک لیست پیوندی از بلوکهای دیسک را دارد. بطوری که بلوکهای دیسک می توانند در هر جلیی از دیسک باشند. دایرکتوری حاوی اشاره گرهلیی جه اولین وآخرین بلوک فایل است. 52

صفحه 53:
| و 22 121 20 [_۱27 ۱25626 24 | 30_|31| |28_|29 53

صفحه 54:
2 براى ایجاد فایل جدید. ورودی جدیدی را در دایرکتوری قرار می دهیم. در تخصیص پیوندی . هر ورودى دايركتورى داراى اشاره كرى به اولين بلوى فايل است. "7 اكر لين اشاره گر تهی باشد. نشان دهنده فلیل خللی است.فیلد اندازه نیز برابر با صفر می شود. 1 نوشتن در بلوک موجب ی شودتا سیستم ‎glad Cy pre‏ آزاد. ‎Sob‏ آزادی را پیدا کند و در آن نوشته شود. این بلوک به انتهای فایل پیوند زده می شود. مق برای خواندن فایل, بلوکها را از طریق اشاره گرها دنبال می کنیم.

صفحه 55:
‎Se‏ تخضیض وتف ی ککه نکه شدرم خازجی ود تارف مكلو آزاد موجوة در لیست فضای آزاد می تولند برای پاسخگویی به درخواست مورد استفاده قرار گیرد. ‏7 توجه کنید که در لين روش لازم نيست اندازه فليل در هنكام ايجاد فايل ‏مشخص باشد. تا زمانى كه بلوكهاى آزاد موجود باشند. فايل مى تواند توسعه يابد. ‏تجاعلاوه بزآین: نیاز به فشرده سازی دیسکت فیست: ‎55

صفحه 56:
معایب تخصیص پیوندی: ‎ol‏ در لین روش حی تولند برای فایلهلیی,با دستیابی ترتیبی.به خوبی مورد استفاده قرار گیرد. برای یافتن 1 امین بلوک فلیل. بليد از ابتدای فلیل شروع کرده. اشاره گر ها را دنبال کنیم اجه ّن بلوک برسیم. هر دستیابی.به اشاره گر مستلزم مراجعه‌به دیسک و گاهی پیگرد دیسک است. در نتیجه. پشتیبانی دستیابی مستقیم کارآمد نیست. عیب دیکر آن فضای مورد نیاز برای اشاره گرهاست. 56

صفحه 57:
‎cp! Jo of;‏ مسئله: ‎I‏ راه حل عادى لين است که بلوکها در کلاستر ها دسته بندی شود و بجای ‏تخصيص بلوك. كلاستر تخصيص يابد... . ‏لآ مسئله دیگر . قابلیت اعتماد است. چون بلوکها از طریق اشاره گرهابه هم وصل حی شوند که در سراسر دبسک پخش است. اگر اشاره گری خراب شود. مشکلات فراولنی بوجود می آید.خطلیی در سیستم یا خرلبی سخت افزاری دیسک منجر به انتخاب نادرستی می شود.... ‎57

صفحه 58:
شکل دیگری از روش تخصیص پیوندی استفاده از ‎Jove‏ ایجاد فلیل است.این روش ساده و کارآمد . در سیستم علمل 1]5-1(005 و 625/2 مورد استفاده قرار می گیرد. 7" بخشی از دیسک در ایتدای هر پارتیشن برای نگهداری این جدول در نظر گرفته ‎Satis‏ آآهر پلوک دیسک یک ورودی در لین جدول دارد و جدول بر حسب شماره بلوک شاخص بندی شده است. 58

صفحه 59:
اين جدول همانند لیست پیوندی بکار گرفته می شود؛ آآورودی دایرکتوری حاوی شماره اولین بلوک فایل است. آآورودی جدول برحسب شماره بلوک شاخص بندی می شود و حاوی شماره بلوک بعدی موجود در فایل است. |ألين زنجيره تا آخرین بلوک ادامه می یلبد که حاوی مقدار خاصی برای نمایش انتهای فایل است. 59

صفحه 60:
60 elec 1 217 339) 618 339 FAT ورودی دایرکتوری LE بلوک شروع نام ره بلوکهای دیسک.-1

صفحه 61:
3-4-2 تخصیص شاخص دار تخصیص پیوندی مسئله های تکه تکه شدن خارجی و اعلان اندازه فایل را در روش تخصیص همجوار حل می کند. ادر صورت عدم استفاده از ۰۴78 تخصیص پیوندی دستیابی مستقیم را بطور كارآعد يشتيبلنى نمى كند.. زيرا اشره كرهاى بلوكها همراه خود بلوكها در سراسر ديسك بخش هستند و بايد به ترتيب بازيابى شوند. 61

صفحه 62:
تخصیص شاخص دار لین مسئله را حل حی کندبرای لین منظور. تمام اشاره گرها را در محلی بنام بلوک شاخص جمع می کند. مر فلیل دارآی بلوکت شا خن مخسوس‌ببه خوجفن سب که آرلیه ای از آدوسهای بلوک دیسک است. لا امین وروذی:بلوک شاخبی به 1 ی بلوک فایل آشازهوسن کننه آادانزکتوری خاوی محتویات: آدزش بلوک شاخ اننت: 62

صفحه 63:

صفحه 64:
|أوقتى فايلى ايجاد شد. تمامى اشاره گرهای موجود در بلوک شاخص برابربا هی می شوند. آأبرای نوشتن 1 امین بلوک. بلوکی از مدیر فضای آزاد گرفته می شود و آدرس آن در امین ورودی بلوک شاخص نوشته می شود. [اتغصیص شاخص دار از دستیابی مستقیم پشتیبلنی عی کند و دچار تکه تکه شدن خارخی نعی شود: لاتخصيص شاخص دار فضاى حافظه را به هدر نمی دهد. 64

صفحه 65:
آأسربار اشاره گر در بلوک شاخص بیشتر از سربار اشاره گر تخصیص پیوندی است.حالتی را در نظر بگیرید که فایلی حاوی یک یا دو بلوک است. [آدر تخصیص شاخص دار. کل بلوک شاخ بايد تخصيص یابد. حتی اگر فقط یک یا دو اشاره گر تهی نباشند. سوال: اندزه بلوک چقدر بايد باشد؟ هر فلیل بلید دارای یک شاخص بلوک باشد. لذا مطلوب است که بلوک شاخص رحتی الامکان کوچک باشد.

صفحه 66:
66 اگر بلوک شاخص خیلی کوچک باشد نمی تولند اشاره گرهای کلفی را برای فایل بزرگ نگهداری کندو بای راهکارهایی برای حل این مسئله وجود داشته باشد. اگوی پیوندی: بلوک شاخص معمولا بر روی دیسک است و در نتیجه مستقیما قابل خواندن و نوشتن است... هس منوا فى : شکل دیگری از نملیش پیوندی لین است که بلوک شاخص سطح اول‌به مجموعه ای از بلوکهای شاخص سطح دوم اشاره می کند که اینها نیز به نوبه خود به بلوک هر فایل اشاره کنند.

صفحه 67:
67 ** برای دستیابی به بلوک ۰ سیستم با استفاده از شاخص سطح اول. بلوک شاخص دار را در سطح دوم عی بلبد وبا استفاده از لین بلوک نیز بلوک داده مطلوب را پیدا می کند. این روش می تواند بر حسب اندازه فایل از سطح سوم يا چهارم شاخص نیز استفاده کند. اگوی تر کیبی :روش دیگر لین است که چند اشاره گر اول بلوک شاخص در بلوک شاخص فلیل نگهداری شود. اسن روش در یونیکس ]5 8]استفاده می شود. توجه کنید که ورودی دایرکتوری به گره شاخص اشاره می کند.

صفحه 68:
حالت مالکین (2) مهرزمانی (3) اندازه بلوک 9 شمارش ‎fe‏ ومد مستقيم ‏,۲ غیرمستقیم ‎sa :‏ لامك دوگانه ‏رمه ‎ ‎ ‎ ‎68

صفحه 69:
4-4-2 کارایی روشهای تخصیصی که مورد بحث قرار گرفتند از نظر کارایی حافظه و زمان دستیابی به بلوى داده هابا هم فرق عى كنند . لين عولمل: معیارهای مهمی در انتخاب روش مناسبی برای پیاده سازی سیستم عامل می باشند. % *# یکی از مشکلات مقایسه کارایی سیستمهای مختلف تعیین چگونگی استفاده از % ”0“ روشی که سیستم‌با دستیابی ترتیبی بکاررمی گیرد متفاوت از روشی است که سیستمی با دستیابی تصادفی بکار می گيرد. برای هرنوع دستیابی . نخصیص وی‌همجوار برای رسیدن به یک بلوک داده. به یک دستیایی نیاز دارد.

صفحه 70:
تم مستقیما می خوانیم. ر تخصیص پیوندی . آدرس بلوک بعدی را در حافظه نگه می دایم و آن را این روش برای دستیابی تر آ#آلما در دستیابی مستقیم. برای دستیابی‌به بلوک لام. بلید 1 بار عمل خواندن از دیسک انجام شود. أ ‎an‏ از سیستمها برای پشتیبلنی از دستیابی مستقیم از تخصیص همجوار و برای پشتیبانی از دستیابی ترتیبی از تخصیص پیوندی استفاده می کنند. 6 در این سیستمها . نوع دستیابی باید هنگام ایجاد فایل مشخص شود. 70

صفحه 71:
77 فایلی که‌با دستیابی ترتیبی ایجاد شد نمی تولند برای دستیابی مستقيم بكار گرفته شود. ‎hee‏ که با دستیابی مستقیم ایجاد شد می تولند برای دستیابی ترتیبی و ‏مستقیم بکار گرفته شود. ‏براى تبديل يك نوع فايل به نوع ديكر. بايد از فایل موجود. فایل جدیدی با نوع ‏جديد ايجاد شود. ‎71

صفحه 72:
[اتخصیص شاخص دار پیچیده -تر است. اگر بلوک شاخص در حافظه باشد. دستیابی بطور مستقیم صورت می گیرد. اما نگهداری بلوک شاخص در حافظه موجب مصرف کردن فضای حافظه می شود. لأكر لين ميزان فضا موجود نباشد. ابتدا بلید بلوک شاخص و سپس بلوک داده ها را بخوانیم. لأدر شاخص دو سطحی, ممکن است بلوک شاخص دو بار خوانده شود. 72

صفحه 73:
در فایلهای خیلی بزرگ . برای دستیابی,به بلوکی که در انتهای فلیل است. باید تمام بلوکهای شاخص خوانده شهند تا زنجیر اشاره گرها برای یافتن بلوک مورد نظر, پیمایش شود. بنابراین . کارایی تخصیص شاخص به ساختار شاخص ‏ اندازه فایل. و موقعیت بلوک مورد نظر بستگی دارد. 73

صفحه 74:

صفحه 75:
6-19 مديريت فضاي آزاد [آچون فضاي ديسك محدود است. لازم است از فضاي مربوط به فايلهاي حذف شده؛ براي فايلهاي جدید استفاده گردد. |أدر ديسكهاي نوري كه يك بار قابل نوشتن هستند استفاده مجدد از فضا ممكن نيست . |أبراي نكهداري فضاي آزاد ديسك؛ سيستم از ليست فضاي آزاد استفاده مي كند. ليست فضاي آزادءهمه ي بلوكهاي آزاد ديسك را نكهداري مي كند. 75

صفحه 76:
|أبراي ايجاد فايل اين لست را جستجو مي كنيم تآ فضاي مورد نیاز را بیابیم و آن را تخصيص دهيم. اين فضا از ليست فضاي آزاد حذف مي كردد. |] وقتي فايلي حذف شد»ءفضاي ديسك آن به ليست فضاي آزاد بر مي كردد. ليست فضاي آزاد» برخلاف نامش ممكن است به صورت ليست بيام سازي نشود. 1-6-08)-برداربيتي اغلب» لیست فضاي آزاد به صورت بيتي یا بردار بيتي پیاده سازي مي شود هر بلوط توسط يك بیت نمایش داده مي شود اگر بلوك آزاد باشد آن بیت برابر با يك عوگرنه صفر است.

صفحه 77:
7 متیاز اصلي این رش سادگي و كارايي بالاي آن مي توان بلوط آزاد روي ديسك را بيدا کرد. ي كه به راحتي 7 سیستم عامل مکینتاش براي تخصیص فضاي ديسك از روش بردار بيتي استفاده مي کند. براي یافتن اولین بلوگ خالي» سيستم عامل مكينتاش براي تخصيص فضاي ديسك از روش بردار بيتي استفاده مي کند. 7 براي یافتن اولین بلوك خالي» سیستم عامل مکینتاش هر کلمه موجود در بردار بيتي را به ترتیب جستجو مي کند تا مشخص شود که صفر نیست زیرا مقدار صفر در کلیه نشان دهند مجموعه اي از بلوكهاي تخصیص يافته است. 77

صفحه 78:
"7 اولین کلمه غیر صفر جستجو مي شود تا اولین بيت يك بيدا شود. اين بيت محل اولين بلوك آزاد را مشخص مي کند. محاسبه شماره بلوك به صورت زیر است: آفست اولین بیت يك + (تعداد کلمات با مقدار صفر) * تعداد بیتها در هر کلمه) بدین ترتیب ويژگي سخت افزار بر روي عملکرد نرم افزار موثر است. 0-0 -صلیست پيرندي روش دیگر براي نگهداري لیست فضاي آزاد اين است که بلوكهاي آزاد ديسك به هم پیوند داده شوند به طوري که اشاره گر به اولین بلوك آزاد در جايي از ديسك نگهداري شود و در حافظه پنهان نیز ذخیره گردد این بلوك حاوي اشاره گري به اولین بلوك است و اين روند ادامه مي یابد. 78

صفحه 79:
79 aan

صفحه 80:
”اين الكو كارآمد نيسّت زيرا براي بيمايش ليسث بايد هر بلوگ را بخوانیم و اين كار مستلزم وقت زيادي براي 1/0 است خوشبختانه بيمايش ليست آزاد جندان تكرار نمي شود. 77 سیستم عامل بلوك آزاد را به فايلي تخصیص مي دهد زیرا اولین بلوك لیست مورد استفاده قرار مي گيرد. هگروه بندي شکل ديگري از لیست فضاي آزاد این است که آدرس ب بلوك آزاد در اولین بلوك آزاد قرار داده شود. بدین ترتیب 1ب بلوگ اول آزاد است. آخرین بلوك حاوي آدرس » بلوك آزاد بعدي است و اين روند ادامه مي یابد. اهمیت این پیاده سازي این است که مآهرس تعداد زيادي از بلوكهاي آزاد سريعاً بيدا مي شود.

صفحه 81:
6-6-1 شمارش روش ديكر اين است كه جند بلوك همجوار ممكن است به طور همزمان تخصيص يابند يا آزاد شوند. بخصوص در حالتي كه فضا از طريق الكوريتم تخصيص همجوار يا کلاسترها تخصیص مي یابند‌اين موضوع مشهود است. بنابراین به جاي نگهداري ليستي از ب آدرس بلوك ديسك» مي توانیم آدرس اولین بلوك آزا و تعددبلوكهاي آزاد همجوار بعد از اولینبلوك )@( را نگهداري کنیم 81

صفحه 82:

صفحه 83:
۵-0 اثر بخشي و كارايي دیسکها تنگناهاي زيادي را براي كارايي سيستم ايجاد مي کنند زیرا کندترین قطعه كامبيوتر هستند. 40 ار بخني استفاده کارآمد از فضاي دیسك به الگوريتمهاي تخصیص دیسك و دايركتوري بستگي دارد. به عنوان مثال گرههاي شاخص یونیکس از قبل به يك پارتیشن تخصیص مي يابند. با تخصيص زودرس كرههاي شاخص و پخش کردن آنها در پارتیشن كارايي سیستم فايل افزايش مي يابد. 53

صفحه 84:
اين كارايي بهبود يافته نتيجه الكوريتم تخصيص فضاي آزاد است که در يونيكس مورد استفاده قرار مي كيرد. "ادر اين الكوريتم سعي مي شود بلوكهاي داده فايل در نزديكي بلوك كره شاخص آن فايل نكهداري شود تا زمان بيكرد كاهش يابد. آآنتیجه نگهداري این است که وقتي فايلي خوانده شد فيلدي در ساختمان دايركتوري باید نوشته شود. اين تغییر مستلزم این است که بلوك به حافظه خوانده شود بخشي | زآن تغییر کند و بلوك دوباره بر روي ديسك نوشته شود. 84

صفحه 85:
بنابراين هر وقت قایل براي خواندن باز مي شود ورودي دايركتوري آن باید خوانده شد و پس از تغییر نوشته شود. اگر فایلها به وفور دستيابي شوند این عمل کار آمد نخواهد بود. به طور كلي اثر هر قلم داده مربوط به فایل بر روي اثر بخشي و كارايي بايد مورد بررسي قرار گيرد. آّآيكي از مشکلات انتخاب اندازه اشاره گرها یا تخصیص به اندازه ثابت در سیستم عامل» برنامه ريزي براي اثرات تغییر فناوري است.

صفحه 86:
آبآمدل أي : بي ام از مي کرد و سیستم حامل :0653000008 بر ردي آنا موه ‎pagel iy tbe GET EM Su‏ کرد وقتي ديسك سختي با ظرفیت 0000 مكابايت متداول شد ساختمان داده هاي ديسك و الگوريتمهاي 006-0006056 بايستي تغيير كنند تا سيستمهاي عامل بزركتري ايجاد شوند. ©-6-هكرايي يس از انتخاب روشهاي اصلي ديسك راههاي ديكري نيز براي بهبود كارايي وجود دارد. [] اغلب كنترل كننده هاي ديسك شامل حافظه هاي محلي اند كه به عنوان حافظه وینهان عمل مي کنند و اندازه آنها به حدي است که کل شیارها را نگهداري مي کنند

صفحه 87:
آاوقتي پيگردي صورت مي گیرد شیار به حافظه پنهاد ديسك خوانده مي شود بدین ترتیب زمان تأخیر کاهش مي يابد. ]| وقتي بلوكها از كنترل كننده ديسك به حافظه اصلي منتقل شدند سيستم عامل ممكن است آنها را در حافظه ينهان قرار دهد. آابعضي از سیستمها بخشي از حافظه اصلي را براي 7حافظه پنهان ديسك نگهداري مي کنند بعضي دیگر از

صفحه 88:
آاحافظه پنهان صفحه با استفاده از تكنيكهاي حافظه مجازي داده ها را به عنوان صفحات ذخیره مي کنند نه به عنوان بلوكهاي مبتني بر سیستم قرار دادن فایل داده ها در حافظه پنهان با استفاده از آدرسهاي مجازي کارآمدتر از بلوكهاي ديسك مغناطيسي است. لا بعضي از سیستمها از جمله سولاریس؛ نسخه هاي جدید لینوکس, و ویندوز ۱!۲ و 2000 از حافظه پنهان صفحه براي فایل داده استفاده مي کنند. این عمل را

صفحه 89:
|أبعضي از نسخه هاي يُونيكس از حافظه پنهان یکنواخت استفاده مي کنند. دو روش باز كردن و دستيابي به فايل وجود دارد : ]( استفاده از نگاشت حافظه استفاده از فراخوان سیستم استاندارد 4ج و ‎write‏ آآبدون استفاده از حافظه پنهان میانگیر» فراخوانهاي سیستم میم و عبر از طریق حافظه پنهان میانگیر انجام مي شود. 89

صفحه 90:
۳1 eel ‏رم‎ ‎()write , ()read absluuww lS 1/0 90

صفحه 91:
‎O‏ » نگاشست حافظه بلوكهاي ديسك از سیستم مي شوند. ‏حافظه ‎ule‏ میانگیر ارتباط برقرار کند هحتویات فایل در حافظه پنهان میانگیر ‎wb‏ در

صفحه 92:
| ناسازگاريهاي بین این دو حافظه پنهان منجر به خرابي فایل مي شوند. أ با ارائه حافظه پنهان میانگیر یکنواخت, نگاشت حافظه و فراخوانهاي سیستم ۲۵۵0 و ۷۲۱۷۵ از يك حافظه پنهان صفحه استفاده مي کنند. 92

صفحه 93:
93 ۵ با استفادم از حافظمه ينهان 0/! با استفادم از 1

صفحه 94:
اگوریتم همم منظورم معقوليب راي‌جايگزيني صفحه بابلوك‌است *"تکامل الكوريتمهاي حافظه پنهان صفحه در سولاریس, مشکلات انتخاب الگوریتم را روشن کرده است. سولاریس به فرآیندها و حافظه پنهان صفحات اجازه مي دهد از حافظه بلااستفاده به طور اشتراکي استفاده کنند 4 سولاریس 6/2 و سولاریس 7 صفحه بندي اولویت را

صفحه 95:
0 52 سولاريس 8 حد ثابتي را بين صفحات فرايند و حافتقة پنهآن خفخه. مربوظ.به نسیتختم فایل:ذر تقلّر مي گیردو در نتیجه با کمبود حافظه موجه نمي شود. 7 حافظه پنهان صفحه, سیستم فایل و گرداننده هاي دیسك تعاملهاي جالبي دارند. وقتي داده ها در فایل دیسك نوشته شدند صفحات در حافظه پنهان ذخیره مي شوند و گرداننده ديسك صف خروجي خود را بر 5وحسب آدرس ديسك مرتب مي كند. اين دو عمل به

صفحه 96:
به ترتيبي انجام مي شود که زیر سیستم ديسك آنها را دریافت مي کند و نوشتن ها در میانگیر قرار نمي گيرند. بنابراین» روال فراخوان باید منتظر بماند تا ده ها از ديسك خوانده شود و سپس پردازش خود را شروع کند. ]الب نوشتن ها به صورت نوشتن ناهمگام انجام مي شوند در نوشتن ناهمگان داده ها در حافظه پنهان ذخیره مي شود و کنترل به فراخوان بر مي كردد. [#اأدستيابي ترتيبي مي تواند با تكنيكي به نام آزاد سازي دیررس یا خواندن زودرس بهبود يابد. 96

صفحه 97:
7 در تکنيك آزاد سازي دیررس به محض این که صفحه بعدي در خواست شد صفحه اي را از میانگیر حذف مي کند. در تكنيك خواندن زودرس» صفحه در خواستي و چندین صفحه بعدي خوانده شده در حافظه پنهان قرار مي گيرند. این صفحات احتمالاً پس از پردازش صفحه فعلي در خواست مي شوند بازيابي این داده ها از ديسك در يك عامل انتقال و قرار دادن آنها در حافظه پنهان به میزان قابل توجهي در زمان صرفه جويي مي کند. 97

صفحه 98:
در 60 هاء روش ديگزي براي استفاده از اصلي جهت بهبود كارايي وجود دارد؛ بخشي از حافظه کنار گذاشته مي شود و به عنوان ديسك مجازي اي (ديسك 0) مورد استفاده قرار مي گیرد متأسفانه ديسكهاي 000 فقط براي ذخيره موقت مفید هستند معمولا فايلهاي موقتي مثل فايلهاي مياني کامپایلر در آن ذخیره مي شوند. تفاوت بين ديسك ‎)1٩6960(‏ و حافظه پنهان ديسك اين است که : محتویات ديسك ‎)٩690(‏ تحت کنترل کاربر است در حالي که محتویات حافظه پنهان دیسك تحت کنترل سیستم عامل است. 98

صفحه 99:
99

صفحه 100:

صفحه 101:
9 "ترمیم چون فایلها و دايركتوري ها در حافظه و ديسك ذخیره مي شوند باید تضمین شود که خرابي سیتسم به داده ها یا سازگاري داده ها آسیب نرساند. 0 بررسي سازگاري داده ها بخشي از اطلاعات دايركتوري در حافظه ‎(ley)‏ نگهداري مي شود تا سرعت دستيايي افزایش یابد. اطلاعات دايركتوري موجود در حافظه نسبت به اطلاعات دايركتوري که در ديسك ذخیره شده است جدیدتر است. 101

صفحه 102:
بازرس ناسازگاري »داده هاي موجود در ساختار دايركتوري را با بلوك داده هاي روي ديسك مقایسه مي کند و سعي مي کند ناسازگاريهاي موجود در درست کند. الگوريتمهاي تخصیص و مدیریت فضاي آزاد تعبین مي کند که بازرس چه خطاهايي را باید بیابد و آنها را برطرف نماید. آاگر در تخصیص شاخص دار وروديي از دايركتوري از بین برود» سیستم با شکست مواجه مي شود زیرا بلوكهاي داده ها از یکدیگر خبري ندارد. 102

صفحه 103:
۵-6 تهیه پشتیبان و ب چون ديسكهاي مغناطيسي در معرض خراب شدن هستند باید مواظب بود که داده ها از بين نروند. براي اين منظور از داده هاي ديسك روي دستكاه حافظه ديكري مثل ديسكت» نوار مغناطيسي يا ديسك نوري بشتيبان تهيه مي شود. بس از خرابي فايل يا ديسك اين اطلاعات بازيابي مي شود. براي جلوكيري از كبي كردن زياد مي توانيم از اطلاعات مربوط به هر ويدودي فايل استفاده كنيم.

صفحه 104:

صفحه 105:
0-0 سیستم فایل براساس ساختار سابقه اغلب الگوریتمها و فناوریها از کاربرد اولیه خود به سایر نواحي منتقل مي شوند. 7 نمونه اي از اين مورد الگوريتمهاي ترمیم براساس سابقه در بانك اطلاعاتي است این الگوریتمها به طور موفق در بازرسي سازگاري به کار گرفته شده اند. 7 پیاده سازيهاي حاصل را سیستم فایل تراکنش گراي مبتني بر سابقه (یا ثبت سابقه) مي نامند. 105

صفحه 106:
آ7آدر ساختمان داده هاي سیستم فایل روي دیسك» مثل ساختار دايركتوري» اشاره گرهاي بلوك آزاد اشاره گرهاي 069 آزاد ممکن است در اثر خرابي سیستم به حالت ناسازگاري بروند 7عملي مثل ایجاد فایل ممکن است شامل تغییرات ساختاري زيادي در سیستم فایل موجود در ديسك باشد. ساختار دايركتوري اصلاح مي ‎LA POD dp‏ تخصیص مي یابند بلوكهاي داده تخصیص مي یابند شمارنده تعداد بلوکهاي آزاد کاهش مي یابند این تغییرات ممکن است در آثر خرابي دچار وقفه شوند و نتيجه اش اين است كه ساختارها ناسازگار خواهند بود. 106

صفحه 107:

صفحه 108:
90۵ ۵ يك سیستم فایل‌شبکه لسنکه کاربرد وسيعي‌دارد و شبکه مشتري کارگزار را بسه خوبي‌پیاده سازي‌مي‌کند. 68 » پیاد سازيومشخصت مربوط به يك‌سیستم نرم. لفزاريي رايدستيابي به فايلهايرلم دور از طریق00)را(یا حتي(00000) لست 9--مرور كلي 5 » مجوعه لاز ليستكاههايكاريمتصلبه هم را به صورتمجموعه لي از ماشينهايمستقلدر نظر ميكيرد كه سيستمهاوفايللنها مستقلاز هم اسب 108

صفحه 109:
#7"هدف این است که درجه اي از اشتراك بين اين سيستمهاي فایل وجود داشته باشد. 7 اشتراك براساس رابطه مشتري - کارگزار صورت مي گیرد. 7" اشتراك بین هر جفت از ماشینها امکان پذیر است. #آبراي حصول اطمینان از این که ماشینها مستقل 9هستند اشتراك سیستم فایل راه دور فقط برماشین

صفحه 110:
يك دايركتوري راه دور در يك دايركتوري از سيستم فايل محلي سوار مي شود وقتي عمليات سواركردن كامل شدء دايركتوري سوار شده مثل يك زير درخت كامل از سيستم فايل محلي است كه به جاي جانشين زير درخت دايركتوري محلي قرار مي كيرد 77دايركتوري محلي به عنوان نام ريشه دايركتوري محلي قرار مي كيرد دايركتوري محلي به عنوان نام ريشه دايركتوريي محسوب مي شود كه اكنون سوار شده 0ست.

صفحه 111:
LI: 51: 52: usr usr local hi loca shared dir2 dir1 111

صفحه 112:
112 "با توجه به اعتبار مجوزهاي دستيابي, هر سیستم فایل يا هر دايركتوري در سیستم فایل را مي توان از راه دور بر روي دايركتوري محلي سوار کرد. در بعضي از پیاده سازيهاي ۱۴5 سوار کردن مي تواند به صورت آبشاري باشد.

صفحه 113:
usr usr local local dir dirl سوا کردنهای انشاری عملیات سوار کردن 113

صفحه 114:
۵0-0 پروتکل سوار کردن پروتکل سوارکردن اتصال منطقي اولیه را بین کارگزار و مشتري برقرار مي کند. در بياده سازي سان» هر ماشين يك فرايند كاركزار در خارج از هسته دارد كه وظايف بروتكل را انجام مي دهد. : بلوکهاي‌سازنده لي‌ستند که برایپیادم سازودستيابيفايلرلم دور موجود لستفاده قرار گرفتند.

صفحه 115:
[اعملیات سوار کردن شامل نام دايركتوري راه دوري است که باید سوار شود و نام ماشین كارگزاري است که باید آن را ذخیره کند. [] در خواست سوار كردن به 6۲۳0 متناظر نگاشت مي شود و به کارگزار سوارکننده اي ارسال مي شود |أاين كاركزار يك ليست صادراتي را نكهداري مي كند که سيستمهاي فایل محلي را مشخص مي نماید همراه این لیست» اسامي ماشينهايي مشخص مي شوند كه اجازه سوار کردن آنها را دارند. اين مشخصات مي تواند شامل مجوزهاي دستيابي مثل فقط خواندني باشد. 115

صفحه 116:
آابراي سهولت نگهداري ليستهاي صادراتي و جدولهاي سوارکردن مي توان از طرح بندي نامگذاري توزيعي استفاده کرد آن را براي مشتریان مناسبي مهیا نماید. [آهر سیستم پيكربندي ايستايي از سوار کردن دارد که هنگام راه اندازي اعمال مي شود. اما طرح بندي آن قابل تغییر است. [] پروتکل سوار کردن» علاوه بر رویه سوار کردن واقعي حاوي رویه هاي دیگر مثل برگرداندن لیست صادراتي و خنثي كردن عمل سوار كردن است. 116

صفحه 117:
0 همپررتکل پروتکل مجموعه اي از 6۲60 را براي عملیات فایل راه دور فراهم مي کند. این رویه ها از عملیات زیر پشتيباني مي کنند: -جستجوي فایل در داخل يك دايركتوري سخواندن مجموعه اي از وروديهاي دايركتوري -دستكاري پیوندها و دایرکتوریها -دستيابي به صفات فایل سخواندن و نوشتن فایلها 117

صفحه 118:
|أاين رويه ها وقتي مي توانند فراخواني شوند که دستگیره فایل براي دايركتوريي که از راه دور سوار شده است. ایجاد شود آحنف عملیات میم و حصان عمدي است. |] ويزكي مهم خدمات 00208 اين است كه بي هويت هستند كاركزاران راجع به مشتریان خود را از يك دستيابي به دستيابي دیگر» اطلاعاتي را ذخيره نمي كنند هر درخواست باید مجموعه كاملي از آرگومانها را از جمله شناسه منحصر بفرد فایل و آفست مطلق در فایل براي عملیات مناسب تعیین کند. 118

صفحه 119:
هر درخواست 06*9 داراي يك شماره بر اجازه مي دهد تا تعیین کند که آیا درخواستي تکرار شده است یا درخواستي از بین رفته است. تضمین مي شود که فراخواني رویه براي نوشتن ۸۴5 اتمي است و با سایر فراخوانهاي نوشتن براي همان فایل» مخلوط نمي شود. اما پروتکل ‎NFS‏ ‏راهكارهاي کنترل همزمان را تدارك نمي بیند. آآفراخوان سیستم ۷۷۲16۵ ممکن است به چند نوشتن ۳ تبدیل شود. خدمات خراج از ۸165 بايد عمل قفل كردن را تدارك ببيند به کاربران توصیه مي شود كه دستيابي به فايلهاي مشترك را با استفاده از راهكارهايي در خارج از حوزه ‎NES 9‏ هماهنگ کنند.

صفحه 120:
خدمات واقعي در هر کارگزار توسط چندین فرایند هسته اي انجام مي شود که يك جايگزيني موقتي را براي راهکار فرایند سبك (یا بندها) فراهم مي کند. 120

صفحه 121:

صفحه 122:
6-0-0 ترجمه نام مسیر ترجمه نام مسیر به این صورت انجام مي گیرد که مسیر به اسامي مولفه ها تبدیل مي گردد و براي هر جفت از نام مولفه و دايركتوري لحم يك فراخوان صبحاصا مربوط به 000808 انجام مي كيرد. با رسیدن به نقطعه سوار کردن»هر جستجوي مولفه منجر به 050 جداكانه اي مي شود. * این الگوي ترجمه نام مسیر» گران است» ولي ضروري است. اگر با رسیدن به نقطه سوار کردن,» نام مسیر به کارگزار تحویل شود و طحر مقصد وبازيابي گردد کارآمدتر است.

صفحه 123:
0-0 0عملیات راه دور به استثناي باز کردن و بستن فایل» بین فراخوانهاي سیستم یونیکس براي عملیات فایل و ۲0 هاي پروتکل 0008 تقريباً يك تناظر يك به يك وجود دارد. بنابراين يك عميات فايل راه دور مي تواند مستقيماً به ‎0٩0۳0‏ متناظر ترجمه شود. دو حافظه ينهان وجود دارد: ).حافظه ينهان صفت فايل (اطلاعات كره شاخص) ©.حافظه ينهان بلوكهاي فايل

صفحه 124:
| بلوكهاي فايلي که در حافظه پنهان قرار دارند فقط وقتي مورد استفاده قرار مي گیرند که صاف متناظر با آنها که در حافظه پنهان وجود دارد نوسازي شده باشد. ][ هر وقت صفت جديدي از کارگزار مي رسد. صفات موجود در حافظه پنهان نوسازي مي شود. 124

صفحه 125:

صفحه 126:

صفحه 127:

صفحه 128:
دو كار اصلی کامپیوتر عبارتند از 1/0 و پردازش. در اغلب موارد کار اصلی کامپیوتر ۱/0 است و پردازش کمتر مورد توجه است. نقش سیستم عامل در ۰1/0 مدیریت و کنترل عملیات و دستگاههای 1/0 است. 09 مرور کلی چون دستگاههای 1/0 از نظر عملکرد و سرعت متنوع اند ( ماوس » دیسک سخت و 6۳0-۴80۵0 ) » برای کنترل آنها از روش های متعددی استفاده می شود. ‎dl]‏ روش ها » زیر سیستم ۱/0 مربوط به هسته را تشکیل می دهند که تعبیه هسته را از پیچیدگی مدیریت بر دستگاههای 1/0 تفکیک می کند. ‎128

صفحه 129:

صفحه 130:
۵0 سخت افزار ۱/0 آکامپیوترها از دستگاههای متنوعی استفاده می کنند . مثل دستگاههای حافظه ( دیسک ها و نوارها ) » دستگاههای انتقال ( کارت های شبکه) و دستگاههای واسط انسان ها ( صفحه نمایش » صفحه کلید و ماوس ). اعلی رغم تنوع دستگاههای ۱/0 که می توانند در کامپیوتر مورد استفاده قرار گیرند » باید بدانیم که دستگاهها چگونه به کامپیوتر متصل می شوند و نرم افزار چگونه سخت افزار را کنترل می کند. 130

صفحه 131:
[آهر دستگاه با ارسال هايى از طريق كابل يا هوا » با سیستم کامپیوتری ارتباط برقرار می کند که نقطه ی اتصال هر دستگاه را با کامپیوتر » پورت می نامند. [ًاگر یک یا چند دستگاه از مجموعه مشترکی از سیستم ها استفاده کند » اين اتصال را گذرگاه می نامند. گذرگاه ها استفاده وسیعی در معماری کامپیوتر دارند که در شکل صفحه بعد نمونه ای از ساختار گذرگاه ۴ را نمایش می دهد. 131

صفحه 132:
‎Sas‏ کر ‎y‏ ‏= 5 پردازنده مانیتور ‎aba 8‏ = ۳ ۳ ‎are a‏ حافظه/یل ‎Sins‏ ‏گذرگاه ۴۱ صفحه واحد كذركاء کنترل کننده 132 پورت پورت ‏سری موازی

صفحه 133:
آسّاین شکل یک ۳۱ را نشان می دهد كه زیرسیستم حافظه - پردازنده را به دستگاههای سریع اتصال می دهد و یک گذرگاه توسعه را نشان می دهد که دستگاههای نسبتا کند مثل صفحه کلید و پورت های سری و موازی را اتصال می دهد. سا در سمت راست و بالای شکل ؛ چهار دیسک در گذرگاه 55۱ به هم متصل شده اندکه این گذرگاه به کنترل کننده 551 معروف است. کنترل کننده : مجموعه ای از قطعات الکترونیکی است که می توانند به روی پورت » گذرگاه »یا دستگاه عمل کند. 133

صفحه 134:
کنترل کننده ی پورت سری : نمونه ای از کنترل کننده دستگاه ساده است » این کنترل کننده تراشه ای (61010) که سیگنال های موجود در سیستم های یک پورت سری را کنترل می کند. پردازنده چگونه فرمان ها و داده ها را به کنترل کننده بدهد تا انتقال 1/0 را انجام دهد : کنترل کننده یک یا چند ثبات برای داده ها و سیگنال های کنترلی دارد. پردازنده از طریق خواندن و نوشتن بیت هایی اين ثبات ها » با کنترل کننده ارتباط برقرار می کند. *** يك روش برقراری این ارتباط » استفاده از دستورات 1/0 خاصی است که انتقال بایت کلمه را به آدرس پورت 1/0 مشخص می کند.

صفحه 135:
کنترل کننده 0۵۱۱۵ کنترل کننده وقفه تایمر کنترل کننده بازی پورت سری (ثانویه) کنترل کننده دیسک سخت پورت موازی کنترل کننده گرافیکی کنترل کننده گرداننده دیسکت پورت سری (اولیه)

صفحه 136:
پورت 1/0 معمولا از چهار ثبات به نام های وضعیت ؛ کنترلی » ورودی و خروجی تشکیل شده است : ثبات وضعیت : حاوی بیت هایی است که میزبان ( کامپبوتری که پورت 1/0 به آن وصل است ) می تواند آنرا بخواند که اين بیت ها حالت هایی را نشان می دهند. ثبات کنترل : توسط میزبان نوشته می شود تا فرمانی را شروع کند یا حالت دستگاه را تغییر دهد. ثبات ورودی : توسط میزبان خوانده می شود و میزبان در ثبات خروجی می نویسد ‎gla CLE‏ داده 0 تا 6 بایت هستند. ثبات خروجی : توسط میزبان نوشته می شود. 136

صفحه 137:
- = ۱ 5 ‏نظرسن ع‎ (O90 سنجى بروتكل كامل براى تعامل بین میزبان و کنترل کننده می تواند پیچیده باشد » اما ایده ی ‎Cul clu (Hand shaking) (sls cus‏ کنترل کننده حالت خود را از طریق بیت اشفال وضعیت اعلام می کند بيت اشغال 0 : کنترل کننده در حال انجام کاری است. بیت اشفال 60 : کنترل کنندهآماده دریافت فرمان بعدی است. میزبان خواسته هایش را زا طریق بیت آمادگی فرمان اعلان می دارد. وقتی کنترل کننده فرمانی را برای اجرا داشته باشد ؛ بیت آمادگی فرمان را یک می کند.

صفحه 138:
مثال : فروض می کنیم برای هماهنگی رابطه تولید کننده - مصرف كننده بين كنترل کننده و میزبان » از 6 بیت استفاده می شود ؛ برای اين مثال » میزبان خروجی را از طریق یک پورت می نویسد و برای این منظور » از طریق دست دادن که به صورت زير انجام می شود » با کنترل کننده هماهنگ می شود : 4. ميزبان دائما بيت اشغال را مى خواند تا زمانى كه اين بيت (0 شود. 11 .ميزبان بيت نوشتن را در ثبات فرمان ) مى كند و يك بايت را در ثبات ورودى مى نويسد. 111 .ميزبان بيت آمادكى فرمان را ) مى كند. 138

صفحه 139:
(().وقتی کنترل کننده متوجه می شود بیت آمادگی فرمان 0 است » بيت اشغال را 0 می کند. 1).کنترل کننده ثبات فرمان را می خواند و فرمان نوشتن را می بیند. ثبات خروجی را می خواند تا آن بایت را بگیرد و عمل 1/0 را در آن دستگاه انجام دهد 1).کنترل کننده بیت آمادگی فرمان را 00 می کند ؛ بیت خطا را در ثبات وضعیت پاک می کند تا موفقیت 1/0 دستگاه را نشان دهد و بیت اشغال را 9 می کند تا پایان کارش را اعلان نماید. این حلقه برای هر بایت ادامه می یابد. در مرحله ی 6 میزبان در حال انتظار مشغولی یا نظرسنجی است ۰ یعنی در حلقه ای قرار دارد که ثبات وضعیت را و می خواند تا اینکه بیت اشغال برابر 0 شود.

صفحه 140:
60-9 رققه ها روش کار وقفه به اين صورت است : ‎SP‏ سخت افزار لا 6۳ سیمی به نام خط درخواست وقفه دارد که لا6۳ پس از ‏اجرای هر دستور آن را حس می کند. ‏* گر لا۳) پی برد که کنترل کننده ای سیگنالی را در خط درخواست وقفه قرار داده است » ل 6۳ حالت فعلی » مثل مقدار اشاره گر دستور را نخیره می کند و به روال وقفه می رود. ‎140

صفحه 141:
*#*روال وققه علت وقرع وقفه را تعیین می کند » و ستور برگشت از وقفه را اجرا می نماید تا لا6۳ به حالت قبلی برود و اجرای دستوری را که دچار وقفه شده است ادامه دهد. دازش لازم را انجام می دهد » ‏گوییم کنترل کننده دستگاه با قرار دادن سیگنالی در خط درخواست وقفه‎ a SP ‏وقفه را ایجاد می کند ۰ ل81© وقفه را مى كيرد و به روال وقفه مى فرستد و‎ ‏روال وقفه به آن خدمات مى دهد و وقفه را از بين مى برد.‎ در شكل صفحه بعد جرخه 1/0 مبتنى بر وقفه را نشان مى دهد. 141

صفحه 142:
1 CPU ۱/۵ ‏گرداننده دستگاه‎ را شروع می کند ‎a‏ ۱ کنترل کننده ۱/۵ اجرای لا۳) برای برر: وقفه ها بين دستورات ۱ لا وقفه را دریافت ۲ مکند و کنترل‌را شری ۱/۵ به روالوقفه منتقل) 3 5 1 4 فم 1 12 ‎eee‏ پردازش می کید و از 2 وقفه برمی گردد ۹ لا وظیفه يم تاخير افتاده را ان سر مئكيرد 142 ل

صفحه 143:
آسانکته : اين راهکار وقفه » ۲۳۵ را قادر می سازد تا به رویداد ناهمگام » مثل آماده شدن یک دستگاه برای خدمات پاسخ دهد. اغلب لها دو خط درخواست وقفه دارند ؛ *وقفه يوشش نابذير (©210111113512311) : براى رويداد هايى مثل خطاهاى كشف نشدنى حافظه ى رزرو شده است. *وقفه بوشش بذير (©181351231) : 00000 مى تواند آنها را به تاخير اندازد و دنباله اى از دستورات مهم را اجرا نمايد. 143

صفحه 144:
ST. ‏راهكار به الا8© اجازه مى دهد كه بدون غیرفعال کردن تمام وقفه ها » وقفه های‎ ‏اولویت پایین را به تاخیر اندازد و وقفه ای با اولویت بالا می تواند اجرای وقفه ای با‎ ‏اولویت پایین را قبضه کند.‎ ‏**وققه ها برای مدیریت بر کنترل جریان در هسته به كار مى روند. به عنوان‎ : ‏مثال » پردازش لازم برای کامل شدن عمل خواندن از دیسک را در نظر بگیرید‎ *مرحله اول : کپی کردن داده از فضای هسته به بافر کاربر است. اين عمل کپی منجر به اتلاف زمان می شود ولی فوری نیست یعنی نمی تواند روال وقفه با اولویت ممیالا را مسدود کند.

صفحه 145:
*مرحله دوم : اين است که 1/0 دیگری که از آن گرداننده دیسک به تعویق افتاده است ۰ اجرا شود. این مرحله اولویت بالاتری دارد. برای اينکه دیسک بطور کارآمد مورد استفاده قرار گیرد » لازم است بلافاصله پس از کامل شدن یک عمل ‎W/O‏ بعدی شروع شود. ‎say‏ : وقفه در سیستم های عامل مدرن رویدادهای ناهمگام را پردازش می کنند و تله ای را به روال های حالت ناظر در هسته می فرستد. ‎145

صفحه 146:
‎٩-0‏ دستیابی حافظه مستقیم برای دستگاههایی مثل گرداننده ی دیسک که انتقال داده ها در آن زیاد است » استفاده از پردازنده همه ی منظوره گران » برای مشاهده بیت های وضعیت و واکشی داده ها در ثبات کنترل کننده ی دستگاه » که در اصطلاح فرآیند » 1/0 برنامه نویسی شده (۳۱) نام دارد » معقول نیست. ‏| أبسیاری از کامپیوتر ها بعضی از این کارها را به پردازنده ی خاصی به نام کنترل کننده ی دستیابی حافظه ی مستقیم ‎Direct Virtual Memory Access)‏ -) واگذار می کنند تا از مسئولیت پردازنده اصلی کاسته شود. ‎146

صفحه 147:
آآمیزبان یک بلوک فرمان 011۸ را در حافظه می نویسد اين بلوک حاوی اشاره گری به منبع انتقال » اشاره گری به مقصد انتقال » و تعداد بایت هايى است كه بايد انتقال يابد. ناظ» آدرسلينبلوكفرمازنرا در كنترلكنندم 010۸ مىنويسد و سيس به كار ديكرىمىيردازد. كنترل كننده 01/14 مستقيما بروى كذركاه حافظه عمل كند ؛ براى اين كار آدرس ها را در كذركاه قرار مى دهد تا بدون نياز به كمى لا© اصلی » انتقال را انجام دهد. تیک کنترل ‎salu DMA cs oat‏ ؛ قطعه استانداردی در ۳ است و بردهای 7 معمه لا حار ی سخت افز ار ۳۸۵ هستند.

صفحه 148:
aul ne yarljal alasl> yuyal ‏اسار‎ 1 3. كنترل كننده ديسك انتقال ا 1

صفحه 149:

صفحه 150:
‎٩-9‏ راسط ۱/0 برناقه گاربردی در اين بخش به سازماندهی تکنیکها و واسط ها برای سیستم عامل می پردازیم که توسط این سازماندهی با دستگاههای 1/0 به شکل استاندارد و یکنواخت برخورد می ‏شود. ‏“ادر اين بخش نيز مثل ساير مسائل بيجيده مهندسى نرم افزار » رهیافت انتزاعی » بسته بندى و لايه بندى نرم افزار استفاده مى شود. ‏مى توانيم جزئيات تفاوت ها دستكاههاى 1/0 را با يافتن انواع كلى » انتزاعى مكليم.

صفحه 151:
[آهر یک از اين انواع کلی » از طریق مجموعه ای از توابع استاندارد به نام واسط » دستیابی می شوند. [] تفاوت های واقعی در پیمانه های هسته به نام گرداننده های دستگاه بسته بندی می 3 شوند. شکل صفحه ی بعد نشان می دهد که بخشهای مربوط به 1/0 هسته » در لایه های نرم افزار سازماندهی شده است, 151

صفحه 152:
ساختار ۱/0 هسته زیر سیستم ۱/0 هسته ۳ 2 گردانند گردانند كردا گردانند ‎fdas] we |e,‏ * © ی اد ‎SCSI ۲ 1 ۰ ۰ 5‏ ين" گذرگاه ماوس|_ کلیر ۸۲۸۳۴۱ ۱ فلایی ‎bie a‏ © © ©

صفحه 153:
[آهدف لایه ی گرداننده ی دستگاه » مخفی کردن تفاوت های بین کنترل کننده دستگاه از زیر سیستم 1/0 هسته است, [آفراخوان های سیستم 1/0 رفتار دستگاه ها را در کلاس های کلی بسته بندی می کند تا تفاوت های سخت افزار را از برنامه های کاربردی پنهان نماید. [] استقلال زیرسیستم 1/0 از سخت افزار ۰ کار طراحی می کنند تا با واسط کنترل کننده ی میزبان موجود مثل 551-2 همساز باشد یا گرداننده های دستگاهی می نویسند که واسط سخت افزار جدید و سیستم عامل معروف باشد. 153

صفحه 154:
|أبنابراین » دستگاههای جانبی جدید می توانند بدون نیاز به نوشتن گرداننده جدید » به کامپیوتر متصل شوند. آسانکته : برای کارخانه های سازنده دستگاهها سیستم عامل ۰ استاندارد خاص خودش را برای واسط گرداننده دستگاه دارد. یک دستگاه ممکن است با چندین گرداننده دستگاه به کار افتد. به عنوان مثال می تواند با گرداننده های دستگاه در 5-5 ۰ ویندوز 060 و ویندوز ۸۱۲ کار کند. دستگاههای انواع گوناگونی دارند که در شکل صفحه بعد آمده است. 154

صفحه 155:
داده ۳ 5 ترتیبی مودم ‎Soe oe‏ تصادفی ‎CD-ROM‏ ‏زمانبندی انتقال ‎et‏ نوار ‎I‏ = ‎wo! 5‏ موار اشتراک قابل اشتراک صفح کلید سرعت دستگاه انتقال ‎CD-ROM ۳‏ فقط خواندنی ‎eRe‏ ‏6 ظ تور ‎at‏ کننده های

صفحه 156:
حالتهای دستگاهها شامل : *بلوک یا جریان کارکتری : دستگاه جریان کارکتری » اطلاعات را بایت به بایت انتقال می دهد در حالی که دستگاه بلوکی اطلاعات را بلوک به بلوک منتقل می کند. *دستیابی تصادفی یا ترتیبی : دستگاه ترتیبی داده ها را به ترتیب خاصی منتقل مى کند ( با توجه به آن دستگاه ) » در حالی که کاربر دستگاه تصادفی می تواند به آن دستور دهد که محل خاصی از داده ها را بخواند. *همگامی یا ناهمگامی : دستگاه همگام داده ها را در زمان پاسخ معینی » انتقال می دهد و دستگاه نا همگام زمان پاسخ نا منظم و غیر قابل پیشبینی دارد. 156

صفحه 157:
*قابل اشتراک یا اختصاصی : دستگاه قابل اشتراک » همزمان توسط چند بند یا فرآیند مورد استفاده قرار می گیرد و در اختصاصی اینطور نیست. *سرعت عملیات : دستگاه ها می توانند از یک بایت تا چند بایت را در ثانیه انتقال دهند. *خواندن و نوشتن ( فقط خواندنی و یا فقط نوشتنی ) : بعضی از دستگاه ها عمل ورودی خروجی را انجام می دهند و بعضی فقط عمل نوشتن و بعضی فقط عمل خواندن را انجام می دهند. 157

صفحه 158:
سیک هایی برای دستیابی به دستگاه ها وجود دارد که قراط آين دستیابی شامل 1/0 بلوک » 1/0 جریان کارکتری » دستیابی فایل با نگاشت حافظه و سوکت های شبکه است. 7 اسیستم عامل فراخوان های سیستمی را برای دستیابی به دستگاههای مثل ساعت و زمان سیستم فراهم می کند. تآبعضی از سیستم عامل ها فراخوان های سیستمی را برای دستگاههای نمایش گرافیک » تصویر و صوت فراهم می کنند. 158

صفحه 159:
فرمانهایی را از یک برنامه کاربردی به گرداننده دستگاه ارسال می کنند. در یونیکس این فراخوان سیستم 106171 نام دارد. فراخوان سیستم 10611 .یک برنامه ی کاربردی را قادر می سازد تا تمام عملیاتی که توسط هر گرداننده ی دستگاهی قابل پیاده سازی اند » دستیابی داشته باشد و دارای 6 پارامتر است که قادر می سازد برنامه کاربردی و گرداننده های دستگاه با هم ارتباط برقرار کنند : توصیف گر فایل : متصل کننده ی برنامه های کاربردی به گرداننده دستگاه یک متدار صحیح : انتخاب فرمان های پیاده سازی شده در گرداننده دستگاه ريب اشاره كر : اشاره به یک ساختمان داده ی اختیاری

صفحه 160:
6-9 دستگاههای کارکتری و بلوکی دستیابی فایل با نگاشت حافظه می تواند در بالای گرداننده های دستگاه بلولی قرار كيرد. ][ به جاى عمليات خواندن و نوشتن » واسط نگاشت حافظه » دستیابی به حافظه دیسک را از طریق آرایه ای از بایت های موجود در حافظه ی اصلی امکان پذیر می سازد. [] فراخوان سیستمی که فایلی را در حافظه نگاشت می کند ۰ آدرس حافظه مجازی آرایه ای از کارکتررها را بر می گرداند که حاوی یک کپی از فایل است. 160

صفحه 161:
‎QE‏ انتقال واقعی داده ‏شود. ‏چون راهکار انجام اين انتقال ها شبیه راهکار دستیابی حافظه ی مجازی صفحه بندی درخواستی بکار گرفته شد ۰ 1/0 نگاشت حافظه » کارآمد است. ‏انجام می شود که به تصویر حافظه انجام ‏آنگاشت حافظه برای برنامه نویسان ساده است » چون دستیابی به فایل نگاشت حافظه به سادگی خواندن و نوشتن در حافظه است. ‏50 معمولا سیستم عامل » حافظه مجازی را برای نگاشت واسط خدمات هسته فراهم وع‌می کند,

صفحه 162:
مه دستگاههای شب چون ویژگی کارایی و آدرس دهی 1/0 شبکه متفاوت از ۱/0 دیسک است » اغلب سیستمهای عامل یک واسط 1/0 شبکه را تدارک می بینند که متفاوت از واسط خواندن - نوشتن - پیگرد در دیسک است. واسطی که در بسیاری از سیستم های عامل وجود دارد » واسط سوکت شبکه است, * فراخوان سیستم در واسط سوکت ؛ برنامه کاربردی را قادر می سازد تا سوکتی را ایجاد نماید. سوکت محلی را به آدرس راه دور متصل می کند » به هر برنامه کاربردی گرش می دهد تا به سوکت محلی وصل کند ۰ و بسته ها را از طریق این اتصال » راسال و دریافت کند.

صفحه 163:
برأى أن ‎sel‏ را تدارک مى بيند كه مجموعه اى از سوكت ها را مديريت مى كند. ‎lalate‏ اطلاعاتی را بر می گرداند که مشخص می کند چه سوکتهایی منتظرند تا بسته ها را تحویل دهند » و چه سوکتی آماده دریافت بسته ها ‏است, ‏* استفاده از 5616۴ منجر به حذف نظرسنجی و انتظار مشغولی برای 1/0 شبکه می شود. این توابع رفتارهای اساسی شبکه ها را بسته بندی می کنند و ‏مخصوصا ایجاد برنامه های توزیعی را آسان می کند. 163

صفحه 164:
00 ساعت و تایمر کامپیوترها دارای ساعت و تایمر سخت افزاری اند که سه عمل را انجام مى دهند : *تعیین زمان جاری تعیین زمان تلف شده *تنظیم تایمر برای اجرای عملیات 26 در زمان ۲" این اعمال توسط سیستم عامل و برنامه های کاربردی حساس به زمان مورد استفاده قرار می گيرد. متاسفانه فراخوانهای سیستمی که اين اعمال را پیلده سازی می کنند » در سیستم های عامل استاندارد نیستند. 164

صفحه 165:
*0* سخت افزار لازم برای اندازه گیری زمان تلف شده و شروع اجرای عملیات ؛ تایمر فاصله زمانی قابل برنامه نویسی نام دارد. ‎a ۳ = 7‏ ىه ‎ter‏ ۳ * می توان تایمر را طوری تنظیم کرد که برای مدت زمانی منتظر بماند و سيس وقفه ای را صادر کند. این راهکار توسط زمانبند مورد استفاده قرار می گیرد. ‏** زمانبند وققه ای را صادر می کند که فرآیند را در انتهای برهه زمانی اش قبظه می کند. زیر سیستم 1/0 از آن استفاده می کند تا میانگرهای پنهان را در دوره های زمانی معینی بر روی دیسک بنویسد » توسط زیر سیستم شبکه مورد استفاده قرار مى كيرد تا عملیات را لغو کند که به دلیل خرابی و ترافیک شبکه بسیار کند اجرا مى شوند. 165

صفحه 166:
7 [سیستم عامل از طریق شبیه سازی ساعتهای مجازی » می تواند درخواست های تایمر بیشتری را نسبت به کانال های سخت افزاری تایمر پشتیبانی کند. آبّآبرای این کار ۰ هسته ( یا گرداننده دستگاه تایمر ) ۰ لیستی از وقفه هایی را نگهداری می کند که توسط تایمر آن درخواست شده است. آبّآوقتی تایمر وقفه ها را صادر مى كند » هسته سیگنالی رل به درخواست کننده می فرستد و قدیمیترین زمان بعدی را در تایمر قرار می دهد. 166

صفحه 167:
وم ۱/0 با انسداد و بدون انسداد وقتی برنامه کاربردی فراخوان سیستمی مسدود کننده را اجرا می کند » اجرای برنامه کاربردی به تعویق می افتد. ‎SP‏ این برنامه کاربردی از صف اجرای سیستم عامل به صف انتظار می رود. پس از کامل شدن فراخوان سیستم » آن برنامه به صف اجرا بر می گردد و برای از سر گیری اجرا مناسب است. ‎۹ ‏* در آن زمان » مقادیر برگشتی از فراخوان سیستم را دريافت مى كند. فعاليت هاى فیزیکی که به وسیله ی دستگاه های 1/0 انجام می شوند معمولا ناهمگام هستند » یعنی ‎Ola‏ مربوط به آنها متغير يا غير قابل بيشبينى است.

صفحه 168:
با این وجود اغلب سیستم عامل ها از فراخوآنهای سیستم مسدود کننده برای واسط برنامه کاربردی استفاده می کنند» زیرا درک کد برنامه کاربردی مسدود کننده نسبت به کد برنامه کاربردی بدون انسداد ساده تر است, بعضی از فرآیندهای سطح کاربر نیازمند 1/0 بدون انسداد هستند. نمونه ای از آن ۰ واسط کاربری است که هنگام پردازش و ظاهر کردن داده ها در صفحه نمایش » ورودیهای صفحه کلید و ماوس را می خواند. * فراخوانی بدون انسداد ۰ برنامه کاربردی را برای مدت زمان طولانی متوقف نمی کند بلکه سریعا خاتمه می یابد و مقداری را برمی گرداند که مشخص می کند وم چند ‎Cy‏ ملتقل شنه إستد

صفحه 169:
شکل دیگری از فراخوان سیستم بدون انسداد » فراخوان سیستم ناهمگام است. فراخوانی نا همگام ؛ فورا برگشت می کند و منتظر نمی ماند که 1/0 کامل شود. برنامه کاربردی اجراش کدش را ادامه می دهد » و کامل شدن 1/0 در زمان آینده به برنامه کاربردی ارتباط دارد. اين ارتباط ممکن است به دو صورت انجام شود : از طریق مقدار دادن به متغیری در فضای آدرس برنامه کاربردی از طریق صدور یک سیگنال یا وقه نرم افزاری یا اجرای روال فراخوانی - برگشت که در خارج از جریان کنترل خطی برنامه کاربردی اجرا می شود. 169

صفحه 170:
170

صفحه 171:
6-09 زيرسيستم 4-9 زمانبندی ۱/0 زمانبندی مجموعه ای از درخواست های 1/0 به معنای تعیین ثرئیب اجرای آنها است. زمانبندی می تواند کارایی سیستم را بهبود بخشد ۰ می تواند دستیابی اشتراکی دستگاهها را برای فرآیندها فراهم کند » و می تواند ميانگین زمان انتظار برای کامل شدن 1/0 را کاهش دهد. **توسعه دهندگان سیستم عامل برای پیاده سازی زمانبندی » برای هر دستگاه » صفی از درخواستها را نگهداری می کنند. 171

صفحه 172:
وقتی یک برنامه کازبردی » فراخوان سیستمی 1/0 با انسداد را اجرا می کند » آن درخواست در صف مربوط به آن دستگاه 1/0 قرار می ‎OS‏ 7 زمانبند 1/0 ترئیب صف را دوباره تنظیم می کند تا اثربخشی کل سیستم و میانگین و زمان پاسخ را بهبود بخشد. روش ديكر براى بهبود اثربخشى ‎٠‏ استفاده از فضای ذخیره سازی در حافظه اصلی یا دیسک » تکنیکهایی مثل میانگری » حافظه پنهان و اسپولینگ است. 172

صفحه 173:
میانگیر » ناحیه ای از حافظه است که داده ها را در حین انتقال بین دو دستكاه يا بين یک دستگاه و یک برنامه کاربردی ذخیره می کند. میانگری به سه دلیل انجام می شود : *یکسان نبودن سرعت تولید کننده و مصرف کننده ی جریان داده ها *ایجاد هماهنگی بین دستگاههایی است که اندازه انتقال داده ها در آنها متفاوت است » معمولا در شبکه های کامپیوتری پیش می آید که در آنها » میانگرها برای تکه تکه کردن و مونتاژ مجدد پیامها به کار می روند. پشتیبانی از معنای کپی برای ۱/0 است.

صفحه 174:
رگاه گیگا ‎SUS 0000000000‏ ات۳ كذركاء |25©: ‎ss 0‏ سسحصسس« 000 انرنت 511111111111117 بكر ليزرى ‎a ee ee‏ صودم ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‏0 1,000.00 100 10 1 0.1 0.01 0 ‎ae‏ ی که 174 کی ‎as‏ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 175:
***كبى كردن داده هآ بین میانگیرهای هسته و فضای داده ی برنامه کاربردی سربارهایی دارد ولی برای حفظ صحت داده ها ضروری است. 0-۳-09 ذخیره در حافظه پنهان حافظه پنهان ناحیه ای از حافظه سریع است که کپی هایی از داده ها را ذخیره می کند. دستیابی به داده های کپی شده در حافظه پنهان » کارآمدتر از داده های اصلی است. تفاوت بین میانگیر و حافظه ی پنهان این است که میانگیر تنها کپی یک قلم داده را نگهداری می کند ۰ در حالی که حافظه پنهان طبق تعریف » یک کپی از یک قلم داده را در حافظه سریع ذخیره مى كند و داده اصلی می تواند در هر جای دیگری باشد. 175

صفحه 176:
7 حافظه پنهان و میانگیری دو عمل جدا هستند » اما گاهی یک ناحیه ی حافظه می تواند برای هر دو منظور مورد استفاده قرار گيرد. 6 اسپولینگ و رزرو کردن دستگاه انباره میانگیری است که خروجی دستگاهی مثل چاپگر را که نمی تواند جریان های ورودی ناپیوسته را بپذیرد » نگهداری می کند. گرچه چاپگر می تواند در هر لحظه به یک کار خدمات دهد » ممکن است چندین برنامه کاربردی بخواهند خروجیهایی را همزمان تولید کنند ولی خروجی آنها با هم مخلوط نشود. 176

صفحه 177:
کند. این خروجی بر روی دیسک دخیره می شود. وقتی خروجی یک برنامه کاربردی تمام شد » سیستم اسپولینگ » فایل خروجی متناظر با آن را در صف چاپ قرار می دهد. لا در بعضی از سیستم های عامل » اسپولینگ توسط یک فرآیند دمون سیستم انجام می شود. در سیستمهای دیگر این کار توسط بندی در داخل هسته انجام می شود. در هر دو حالت » سیستم عامل یک واسط کنترلی را تدارک می بیند که کاربر و مدیران سیستم می توانند با استفاده از آن » صف را نمایش دهند » كارهايى را قبل راز جاب از صف خارج کنند » عمل جاب را به تعویق اندازند و غیره.

صفحه 178:
17 سیستم عامل از طريق اسپولینگ می تواند خروجی همزمان را هماهنگ کند. روش دیگر برای اداره کردن دستیابی به دستگاه همزمان » ارائه امکاناتی برای هماهنگی است. ‎٩-0‏ پردازش خطا سیستم عاملی که از حافظه ی حفاظت شده استفاده می کند ؛ در مقابل بسیاری از خطا های سخت افزاری و نرم افزاری در امان است » به طوری که خرابی کل سیستم ناشی از اشکالات مکانیکی کوچک نیست. سیستم عامل می تواند خرابی های موقتی را جبران کند. ‎178

صفحه 179:
قاس کل اين اسك 2 فراخوان دتم 0/] یک بت از گت را رلجع به وضعیت آن فراخوانی بر می گرداند که مشخص می کند با موفقیت انجام شده است یا خیر. ( به عنوان مثال ۸۸61 و >21ل برای تایید دریافت داده در جواب به دستور 0 در شبکه های کامپیوتری ) ادر سيستم عامل يونيكس ؛ يك متغير صحيح به نام ۵۳۳۲00 برای برگرداندن كد خطا مورد استفاده قرار مى كيرد و ماهيت خطا را نشان مى دهد. سخت افزار مى تواند جزئيات بيشترى از اطلاعات مربوط به خطا را ارائه كند » ولى بسيارى از سیستمهای عامل فعلی » اين اطلاعات را به برنامه کاربردی منتقل نمی کنند. 179

صفحه 180:
0-0-9 ساختمان داده هسته هسته باید اطلاعات حالت مولفه های 1/0 را نگهداری کند. اين کار را با استفاده از ساختمانهای موجود در هسته انجام می دهد ۰ مثل ساختار جدول فایل باز, 7آدر بونیکس دستیابی به نهادهای گوناگونی مثل فایلهای کاربر ؛ دستگاههای خام » و فضای آدرس فرآیندها امکان پذیر است. گرچه هر يك از اين نهادها از عمل 01 پشتیبانی می کنند ۰ معنا شناسی آنها متفاوت است. یونیکس این تفاوت را با استفاده از تکنیک شی گرا » در یک ساختار یکنواخت بسته بندی می کند, 180

صفحه 181:
جدول فرايند باز در سيدا أ ی جدول گره ‎Ets ier es‏ بن شاخص فعال اشاره ‎age‏ اخص اشاره گر به توابع خواندن و نوشتن اشاره گر به تابع 5۵۱6۶ اشاره گر به تابع 106۱ اشاره گر بی‌تابع ۱05۵ ۰ 0 رکورد [(سوکت) شبکه جدول اطلاعاتی اشاره گر به اطلاعات شبکه شبکه اشاره گر به توابع خواندن و نوشنن اشاره گر به تابع 5016۶ اشاره گر به تابع 1068۱ اشاره گر یچ تابع ۱956 1 حافظه هسته

صفحه 182:
7 بعضی از سیستمهای عامل به طور گسترده تری از تکنیک شی گرایی استفاده می کنند. به عنوان مثال » ویندوز 1۲ برای 1/0 از پیاده سازی ارسال پیام استفاده می كند. درخواست 0/ به بيامى تبديل مى شود كه از طريق هسته به مدير 1/0 و سپس به كرداننده دستكاه ارسال مى كردد كه هر كدام از آنها مى توانند محتویات پیام را تغيير دهند. 7 برای عمل خروجی ‎ply‏ حاوی داده هایی است که باید چاپ شود. برای عمل ورودی » پیام حاوی میانگیری برای دریافت داده ها است. 182

صفحه 183:
زیر سیستم 1/0 موارد یر را نظارت می کند : آآمدیریت بر فضای نام برای فایلها و دستگاهها آاکنترل دستیابی به فایلها و دستگاهها آاکنترل عملیاتی دستگاهها ( مثلا مودم نمی تواند 5661 را اجرا کند ) آتخصیص فضای سیستم فایل

صفحه 184:
| میانگیری » حافظه پنهان » اسپولینگ آ] زمانبندی ۱/0 لا نظارت بر وضعیت دستگاه » پردازش خطا و ترمیم خطا [] پیکربندی گرداننده دستگاه و مقداردهی اولیه آسانکته : سطوح بالاتر زیر سیستم ۱/0 » از طریق واسط یکنواختی که به وسیله گرداننده دستگاهها تهیه می شود » به دستگاهها دستیابی دارند. 184

صفحه 185:

صفحه 186:
9-09 تبدیل درخواستهای 1/0 به عملیات سخت افزاری در اين بخش به چگونگی درخواست سیستم عامل و اتصال برنامه های کاربردی با مجموعه ای از سیستم های شبکه یا قطاع خاصی از دیسک می پردازيم. * برای خواندن فایل از دیسک » سیستم فایل باید از طریق نام فایل نگاشتی را در دایرکتوری ها انجام دهد تا فضای تخصیص یافته به فایل را بدست آورد. *** در يونيكس نام به شماره شاخص گره نگاشت می شود و آن گره شاخص حاوی اطلاعاتی راجع به تخصیص فضا است. 186

صفحه 187:
اتصال نام فایل به کنترّل کننده دیسک : ابتدا 115-005 را در نظر مى كيريم که یک سیستم عامل ساده است. * بخشی از نام فایل در ۸15-005 که قبل از حرف : قرار دارد » رشته ای است که دستگاه سخت افزاری را مشخص می کند به عنوان مثال *0:" بخش اول نام تمام فایل های موجود در اولین دیسک سخت است. 187

صفحه 188:
“0 اگر فضای نام دستگاه به فضای نام سیستم فایل الحاق شود ( مثل بونیکس ) » خدمات عادی نام سیستم فایل به طور خودکار فراهم می شود. 7 اگر سیستم فایل کنترل دستیابی و مالکیت را به اسامی تمامی فایلها اعمال کند » آنگاه دستگاه ها دارای کنترل دستیابی و مالکیت خواهند بود. چون فایلها در دستگاهها ذخیره می شوند اين واسطهای دستیابی سیستم 1/0 را در دو سطح انجام می دهد : *اسامی برای دستیابی به خود دستگاهها *دستیابی به فایلهای ذخیره شده در دستگاهها 188

صفحه 189:
یونیکس اسامی دستگاهها را در فضای نام سیستم فایل قرار می دهد. برخلاف نام فایل در 15-005 که حرف : به عنوان جداکننده نام دستگاه است » نام مسیر در پونیکس فاقد کارکتر خاصی برای تفکیک نام دستگاه است. **بعضی از سیستمهای عامل قادرند کنترل کننده های دستگاه را برحسب نیاز بار کنند. 189

صفحه 190:
در زمان راه اندازی کامپیوتر ۰ سیستم ابتدا گذرگاه سخت افزار را جستجو می کند تا دستگاههای موجود را شناسایی کنند و سپس گرداننده های لازم را بار کند. یا فورا آنها را بار کند یا هنگامی که توسط یک درخواست 1/0 مورد نیاز واقع شود » آن را بار می کند. **سیستم یرنیکس ۷ راهکار جالبی به نام جریانها دارد که برنامه کاربردی را قادر می سازد کانالهای کد دستگاه را به طور خودکار مونتاژ کند. 190

صفحه 191:
داده های خروجی آماده برگشت از فراخوان سيستم 8 انتقال داده به فرایند, اعلان بایان کار یا خطا تعیین اینکه کدام ۱/۵ کامل شد, نمایش تغییر حالت در زیرسیستم 1/0 2 3 ميانكير كرداننده دستكاه در صورت ورودى:ارسال سيكنال براى خارج كردن وق كامل شدن ۱/0, تولید وقفه زیر سیستم ۵ هسته گرداننده دستگاه روال وقفه کنترل کننده دستگاه صفحه کلید توح درخواست را به گرداننده ارسال کن؛ درصورت لزوم فرآیند را مسدود کننده,پیکربندی کنترل کننده برای مسدود شدن تا صدور فرمانهای کنترل کننده دسنگا دستگاه ناظر, صدور وقفه پس از کامل شدن ۱/۵

صفحه 192:
این شکل بیان می کند که عملیات 1/0 در چندین مرحله انجام می شود که چرخه های زیادی از ‎CPU‏ را مصرف می کند : [). فرآیند » فراخوان سیستم ۳۵0 را به توصیفگر فایلی که قبلا باز شده است صادر می کند. (6.کد فراخران سیستم در هسته صحت پارامترها را کنترل می کند. در حالت ورودی ؛ اگر داده ها در حافظه پنهان میانگیر آماده باشند » به فرآیند برگرداننده می شوند و درخواست 1/0 کامل می شود. 192

صفحه 193:
صف انتظار آن دستگاه قرار می گیرد. سرانجام » زیر سیستم 1/0 درخواستی را به گرداننده ی دستگاه می فرستد. برحسب نوع سیستم » درخواست از طریق فراخوانی یک زیربرنامه یا پیام داخل هسته » ارسال می شود ).گرداننده دستگاه فضای میانگیر هسته را برای دریافت داده ها تخصیص می دهد و ۱/0 را زمانبندی می کند. سرانجام ۰ گرداننده از طریق نوشتن در ثباتهای کنترل دستگاه » فرمانهایی را به کنترل کننده دستگاه می فرستد. ©.كنترل دستكاه سخت افزار دستكاه را به كار می اندازد تا انتقال داده ها را انجام 3 دهد.

صفحه 194:
0.گرداننده : است_"برای برسی ها نظرسنجی شود , يا ممکن است یک انتقال ۲۱۸ را در حافظه هسته داشته باشد. وضعیت و داده 7.روال وقفه مناسب , وقفه ای را از طریق جدول بردار وقفه دریافت می کند , داده های ضروری را ذخیره می نماید , به گرداننده دستگاه سیگنال می فرستد , و از وقفه برمی گردد. مور 6»کنترل کننده دستگاه سیگنال را می گیرد و تعیین

صفحه 195:
را انتقال می دهد یا کدها را به فضای 9 .هسته داده آدرس فرآیند درخواست کننده بر می گرداند , و فرآیند را از صف انتظار به صف آمادگی می برد. 0.انتقال فرآیند به صف آمادگی , فرآیند را از حالت انسداد خارج می کند. وقتی زمانبند لا را به فرآیندی تخصیص می دهد , فرآیند اجرا را از سر می گیرد. 195

صفحه 196:

صفحه 197:
6-3 مجراها سیستم یونیکس ۷ راهکار جالبی به نام مجراها دارد که به برنامه های کاربردی اجازه می دهد تا مسیر کد یک گرداننده را به طور پویا اسمبل کند. مجرا , یک اتصال دو طزفه ی کامل بین یک گرداننده ی دستگاه و فرآیند سطح کاریر است. مجرا شامل رأآس مجرا است که با فرآیند کاربر ارتباط دارد , و شامل گرداننده پایانی است که دستگاه را کنترل ری کند , و صفر يا چند پیمانه مجرا است که بین آنها

صفحه 198:
‎gully‏ عجرا + گردانندم انان وهر كانه حاو یک بجقت ‏صف است : ‏۰ صف خواندن ‏ات زو لت ‏برای انتقال داده ها بین صفها از شیوه ارسال پیام استفاده می گردد. ‎198

صفحه 199:
پیمانه 1 ها ل صف نوشتن سب ‎ae en‏ گرداننده پایانی راس مجرا صف خواندن صف خواندن

صفحه 200:
آآپیمانه ها عملیات مربوط به پردازش مجراها را تدارک می بینند و با استفاده از فراخوان سیستم [101() در مجرا قرار می گيرد. |[أ1/0 مجرا ناهمكام ( بدونلنسداد ) لست مكر هنكاميكه فرآيند كارير با رلس مجرا ارتباط برقرار كند. هنكام نوشتن‌در مجرا » فرآيند كاربر مسدود ممشود » تا جايىبرلىكبىكردن فرلهم. شود. به همينترتيب» فرليند كاربر هنكام خولندزدادم هااز مجرا » مسدود می‌شود تسا دادم ها آمادم شوند. آگرداننده پایانی همانند رلس مجرا یا یک پیمانه است » به طوری که دارای صف خواندن و نوشتن است. 200

صفحه 201:
|أكرداننده يايانى طورى ب وققه ها ياسع دهد كد كوب وقفه اند كه قابى در شبكه آماده خواندن است. [آاگر رلس مجرا نتواند پیامی را در صف کپی کند ؛ ممکن است مسدود شود. گرداننده ها باید جریان کنترل را نیز پیشبینی کنند. وقتی صادر شده لاما اگر میانگیر دستگاهی پر باشد پیام ورودی را ارسال می کند. کارت شبکه ای را در نظر بگیرید که میانگیر ورودی آن پر است. کارت شبکه پیام های بیشتری را ارسال می کند تا فضای میانگیر برای ذخیره پیامها ورودی فراهم سود. [آفایده استفاده از مجراها این است که چارچوبی برای روش پیمانه ای و فزاینده ای در نوشتن گرداننده های دستگاه و پروتکلهای شبکه است.

صفحه 202:
سخت افزار 1/0 202

صفحه 203:
9 کارایی 0۵ عامل‌مهمی‌در کارایی‌سیستم لستٍ 1/0 تقاضا هاوزيادورا به لاط© لعالمى کند تا کد گرداننده دستگاه را لجرا نماید و فرآیندها را بسه خوبی‌زمانبندوک‌ند. تعویض بستر به [۳۸) و حافظه پنهان سخت افزاری آن فشار وارد می آورد. 1/0 ناکارآمدی را در راهکارهای پردازش وقفه در هسته ایجاد می کند ۰ و 1/0 گذرگاه حافظه را در هنگام کپی کردن داده ها بین کنترل کننده ها و حافظه فیزیکی و در اثنای كيى كردن داده ها بین میانگیرهای هسته و فضای داده ی برنامه کاربردی » اشغال می کند. 203

صفحه 204:
آساگرچه کامپیوترهای مدرن می توانند صدها وقفه را در هر ثانیه پردازش کنند ؛ پردازش وقفه کار نسبتا گرانی است ۰ زیرا هر وقفه موجب می شود سیستم تغییر وضعیت دهد تا روال ‎dilly‏ را اجرا کند » و سپس به وضعیت قبلی برگردد. آساگر تعداد چرخه های مصرف شده توسط انتظار مشغولى زياد نباشد » 1/0 برنامه نویسی شده کارآمدتر از 1/0 وقفه است. کامل شدن 1/0 موجب می شود تا فرآیندی از حالت انسداد خارج شود و منجر به سربار تعویض بستر می شود. 204

صفحه 205:
آسابعضی دیگر از سیستم ها از پایانه کمکی برای 1/0 استفاده کرده تا بار وقفه را بر الا8© كتهش دهند. به عنوان مثال » متمرکز کننده پایانه می تواند ترافیک را از صدها پایانه راه دور به یک پورت در یک کامپیوتر بزرگ تسهیم کند. کانال ۰1/0 اختصاصی است به طورى كه در كامبيوترهاى بزرك از 81 © های خاصی برای اين كار استفاده مى شود. وظیفه کانال اين است که 1/0 را از دوش 6۳ بردارد. بیان قواعدی برای بهبود عمل 1/0 *کاهش تعداد تعویض بستر *کاهش تعداد دفعات کپی داده ها در هنگام انتقال بین دستگاه و برنامه کاربردی 205

صفحه 206:
*کاهش تعداد وقفه ها با آستفاده از انتقالهای بزرگ » کنترل کننده های هوشمند » و نظرسنجی ( اگر انتظار مشغولی بتواند کمینه باشد ) *افزایش همزمانی با استفاده از کنترل کننده های دانش پذیر 01۷1۸ یا کانال ها برای کاهش عما کپی داده ها از ل۳۱» *انتقال پردازشهای اولیه به سخت افزار » تا اينکه عملیات در کنترل کننده های دستگاه با لا۳) و اعمال گذرگاه همزمان شود. *توازن (۳) ۰ زیر سیستم حافظه » گذرگاه » و کارایی ۱/0 ۰ زیرا وجود بار زیادی در هر یک از اين ناحیه ها موجب بیکاری در ناحیه دیگر می شود. 206

صفحه 207:

صفحه 208:
عملیات 1/0 در کجا باید پیاده سازی شود. در سخت افزار دستگاه » در گرداننده دستگاه یا در نرم افزار برنامه کاربردی ؟ در شکل صفحه ی بعد یک نمونه پردازش عملیات یک دستگاه را مشاهده می کنید 208

صفحه 209:
‎ " +‏ الگوریتم جدید ‏کد برنامه کاربردی ‏افزايش کارایی ‏افزایش زمان (نسلها) افزايش هزینه توسعه افزایش انتزاع ‎ny‏ کد گرداننده دستگاه ۲ کد کنترل کننده دستگاه 9 (سخت افزار) | کد دستگاه (سخت 209 افزار)

صفحه 210:
*بتدا الگوریتم 1/0 آز: 1). کد برنامه کاربردی قابل انعطاف است و معمولا خطاهای آن منجر به فروپاشی سیستم نمی شود. .با توسعه اين کد در سطح برنامه کاربردی » پس از هر تغییر در کد نیازی به راه اندازی مجدد سیستم یا بار کردن دوباره گرداننده های دستگاه نیست. [أ اما به دلیل سربار ناشی از تعویض بستر و اینکه برنامه کاربردی نمی تواند از امتیاز ساختمان داده ی داخل هسته و عملیات هسته استفاده کند » پیاده سازی سطح برنامه کاربردی می تواند نا کارآمد باشد. 210

صفحه 211:
*وقتی یک الگوریتم سطحٌ برنامه کاربردی » ارزش خود را نشان داد ؛ می توانیم آن را در هسته پیاده سازی کنیم. * این کار ممکن است منجر به بهبود کارایی شود » اما تلاشی که برای اين کار صورت می گیرد » چالش برانگیز است » زیرا : 1 هسته سیستم عامل » بزرگ و پیچیده است 11 .بياده سازی در هسته باید عاری از خطا باشد » زيرا خطا در هسته منجر به فروپاشی سیستم می شود. 211

صفحه 212:
212 پیاده سازی در سخت افزار ممکن آست منجر به کارایی بالاتری شود. عیب پیاده سازی سخت افزاری شامل دشوارى و اعمال بهبودى بيشتر يا ترميم خرابيها و افزايش زمان توسعه و كاهش قابليت انعطاف است.

:استاد دانشگاه آزاد اسالمي واحد قائمشهر آقای عسکری قاسمپور خالصه ی فصل 11 سیستم عامل ‏مهسا فرجو ‏مهشید ابراهیم نژاد 1 ‏میالد جعفری ‏رضا زاهدی ‏آذین مهرپورشاد صل دوازدهم ه سازی سیستم ف دانشگاه آزاد اسالمي واحد قائمشهر عداد اسالید فصل 2 دوازدهم 124 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 3 ‏NFS فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 4 ‏NFS مقدمه فصل دوازهم :پیاده سازی سیستم فایل همانطور که درفصل 11دیدیم ،سیستم فایل راهکاری رابرای حافظه و دستیابی به داده ها و برنامه ها فراهم می کند.سیستم فایل در حافظه ثانویه ذخیره می شود. حافظه ثانویه اطالعات زیادی را به طور دائمی ذخیره می کند. 1-12ساختار سیستم فایل دیسک ،حافظه انبوهی است که سیستم فایل در آن نگهداری می شود. 2ویژگی مهم فایلها: ‏نوشتن درجا امکان پذیر است. ‏ 5به هر بلوکی از اطالعات می توانیم مستقیما دستیابی داشته باشیم. فصل دوازهم :پیاده سازی سیستم فایل ‏برای بهبود کارایی ،I/Oانتقال I/Oبین حافظه و دیسک بر حسب واحدهایی از بلوک صورت می گیرد .که هر بلوک ازیک یا چند قطاع تشکیل می شود .اندازه قطاع از 32بایت تا 4096بایت است و بستگی به گرداننده دیسک دارد .معموال اندازه قطاع 512بایت است. ‏برای دستیابی کارآمد و راحت به دیسک ،سیستم عامل از یک سیستم فایل استفاده می کند .سیستم فایل برای ذخیره ،یافتن و بازیابی سریع اطالعات مناسب است. 6 فصل دوازهم :پیاده سازی سیستم فایل سیستم فایل دو مسئله عمده طراحی دارد: ‏چگونگی سیستم فایل از دیدگاه کاربر ‏ایجاد الگوریتمهKا و سKاختمان داده هایKی برای نگاشت سیستم فایل منطقی به دستگاه حافظه فیزیکی ثانویه خود سیستم فایل هم از چند سطح تشکیل می شود 7 فایل :پیاده سیستمدوازهم فصل الیه ای فایل سیستم سازی کاربردی برنامه های سیستم فایل منطقی پیمانه سازمان دهی فایل سیستم فایل اصلی کنترل I/O 8 دستگاهها فصل دوازهم :پیاده سازی سیستم فایل ‏هرس طح در ای ن طراح ی ب ا اس تفاده از ویژگیهای س طوح پایی ن تر ،ویژگیهای جدیدی را ایجاد می کند که توسط الیه های باالتر به کار گرفته می شود. ‏پایین ترین سطح ،یعنی کنترل I/Oمتشکل از گرداننده های دستگاه و پردازنده وقفه برای انتقال اطالعات بین حافظه و سیستم دیسک است.گرداننده دستگاه را می توان ب ه عنوان ی ک انتقال دهنده در نظ ر گرفت .ورودی آ ن فرمانهای سطح باال است.خروجی آن شامل دستورات سطح پایین ویژه سخت افزاری بکار گرفته می شود که واسط دستگاه I/Oو بقیه سیستم است. 9 فصل دوازهم :پیاده سازی سیستم فایل ‏سیستم فایل اصلی ،فرمانهای کلی را به گرداننده دستگاه مناسبی صادرمی کند تا بلوکهای فیزیکی را از روی دیسک بخوانند و بنویسند.هر بلوک فیزیکی با آدرس عددی روی دیسک مشخص می شود. ‏پیمانه سازمان دهی فایل ،اطالعاتی راجع به فایلها ،بلوکهای منطقی و فیزیکی آنها در اختیار دارد .با دانستن نوع تخصیص فایل و محل وجود فایل ،پیمانه سازمان دهی فایل می تواند آدرسهای بلوک منطقی را به آدرسهای بلوک فیزیکی تبدیل کند.پیمانه سازمان دهی فایل شامل مدیر فضای آزاد است که بلوکهای تخصیص نیافته را نگهداری می کند و در صورت نیاز در اختیار پیمانه سازمان دهی فایل قرار 10 می دهد. فصل دوازهم :پیاده سازی سیستم فایل ‏سیستم فایل منطقی ،اطالعات شبه داده را مدیریت می کند .شبه داده حاوی س اختار س یستم فای ل ،ب ه ج ز داده واقع ی اس ت .س یستم فای ل منطق ی سلختار دایرکتوری را مدیریت می کند تا اطالعاتی را در اختیار پیمانه سازمان دهی فایل قرار دهد تا بعدا از آنها استفاده شود.ساختار فایل را از طریق بلوکهای کنترل فایل نگهداری می کند.سیستم فایل منطقی مسئول حفاظت و امنیت است. 11 فصل دوازهم :پیاده سازی سیستم فایل پیاده سازی سیستم فایل ساختار سیستم فایل مرور کلی پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل پارتیشن ها و سوار کردن آنها سیستم های فایل مجازی مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 12 ‏NFS فصل دوازهم :پیاده سازی سیستم فایل 2-12پیاده سازی سیستم فایل سیستم عامل فراخوانهای سیستم openو closeرا برای فرآیندها پیاده سازی می کند تا به محتویات فایل دستیابی داشته باشد. 1-2-12مرور کلی چندی ن س اختار بر روی دیس ک و حافظ ه برای پیاده س ازی س یستم فایل مورد استفاده قرار می گیرند .این موضوع بسته به سیستم عامل و سیستم فایل فرق می کند ،ولی قواعد کلی برای این کار وجود دارد .سیستم فایل بر روی دیسک ،ممکن است حاوی اطالعاتی راجع به چگونگی راه اندازی سیستم عامل ،تعداد کل بلوکها، تعداد و محل بلوکهای آزاد ،ساختار دایرکتوری و فایل باشد. 13 فصل دوازهم :پیاده سازی سیستم فایل ساختارهای روی دیسک: ‏بلوک کنترل راه اندازی حاوی اطالعاتی است که سیستم برای راه اندازی سیستم عامل از آن پارتیشن استفاده می کند .اگر دیسک فاقد سیستم عامل باشد ،این بلوک می تواند خالی باشد .این بلوک ،معموال اولین بلوک دیسک است .در ، UFSنامش بلوک راه اندازی است .در NTFSنامش قطاع راه انداز پارتیشن است. بلوک کنترل پارتیشن حاوی جزئیات پارتیشن است .در UFSنامش سوپر بلوک و در NTFSنامش جدول فایل اصلی است. 14 فصل دوازهم :پیاده سازی سیستم فایل ‏ساختار دایرکتوری برای سازمان دهی فایل بکار می رود. FCBحاویجزئ یاتف ای لاس .ت در UFSن ام شگ ره ش اخ ص اس .ت در NTFSای ناطالعات در جدولف ای لاص لیذ خیره م یش ود ک ه از س اختار ب ان ک اطالعاتیوجود دارد. 15 فصل دوازهم :پیاده سازی سیستم فایل اطالعات موجود در حافظه برای مدیریت سیستم فایل و بهبود کارایی از طریق حافظه پنهان بکار می رود.این ساختار شامل موارد زیر است: ‏جدول پارتیشن موجود در حافظه حاوی اطالعاتی راجع به هر پارتیشن سوار شده است. ‏جدول فایل باز در سیستط سیستم حاوی یک کپی از FCBمربوط به هر فایل باز و سایر اطالعات است. ‏جدول فایل باز در سطح فرآیند حاوی اشاره گر به ورودیهای مناسبی در جدول فایل باز سطح سیستم است و اطالعات دیگری را نیز در بر می گیرد. 16 فصل دوازهم :پیاده سازی فایلرا فراخوانی می سیستم فایل منطقی برنامه کاربردی ،سیستم ‏برای ایجاد فایل جدید، کند.س یستم فایل منطق ی فرمت س اختارهای دایرکتوری را می داند .برای ایجاد فایل جدید ،یک FCBجدید ایجاد می کند ،دایرکتوری مناسبی را در حافظه می خواند ،آن را با نام فایل و FCBجدید نوسازی می کند و آن را بر روی دیسک می نویسد. 17 بلوک از ای نمونه فصل دوازهم :پیاده فایل سیستم سازی فایل کنترل مجوزهای فایل تاریخهای فایل (ایجاد، دستیابی ،نوشتن) مالک فایل ،گروه ،و ACL اندازه فایل بلوک های داده فایل 18 فصل دوازهم :پیاده فایل سیستم سازی ‏پس از این که فایلی ایجاد شد ،می تواند برای I/Oمورد استفاده قرار گیرد، ابتدا باید باز شود. ‏ فراخوان Callنام فایل را به سیستم فایل می فرستد .وقتی فایل باز شد، س اختار دایرکتوری برای آ ن نام فای ل جس تجو م ی شود .بخشهای ی از ساختار دایرکتوری در حافظه قرار می گیرند تا عملیات دایرکتوری سریع شود. ‏وقتی فایلی پیدا شد FCB ،در جدول فایل باز سطح سیستم کپی می شود .این جدول نه تنها FCBرا ذخیره می کند ،بلکه تعداد فرآیندهایی که آن فایل را باز کرده اند ،نگهداری می نماید. 19 فصل دوازهم :پیاده سازی سیستم فایل ‏پKس یKک ورودی در جدول فایKل باز در سKطح فرآیند ایجاد مKی شود کKه بKه ورودیKی در جدول باز در سطح سیستم اشاره می کند و فیلدهای دیگری هم دارد. ‏ایKن فیلدهKا مKی تواننKد موقعیKت فعلKی در داخKل فایل را نگهداری کننKKد تا عملیات read و Writeانجام شوند.عالوه برایKن ،حالKت دسKتیابی فایKل نیKز در ایKن فیلد مشخص می گردد. ‏20فراخوانKی Openاشاره گری بKه ورودی مناسبی در فصل دوازهم :پیاده سازی سیستم فایل ‏نام فایل به عنوان بخشی از جدول فایل باز نباشد ،زیرا وقتی FCBمناسبی بر روی دیسک قرار دارد ،سیستم از نام فایل استفاده نمی کند. ‏نامی که به اندیس داده می شود ،در سیستمهای عامل مختلف فرق می کند. یونیکس آن را توصیفگر فایل و ویندوز 2000آن را دستگیره فایل می نامد. ‏وقتی فرآیندی فایلی را می بندد ،ورودی آن از جدول سطح فرآیند حذف می شود و از تعدا فایلهای باز در سطح سیستم یک واحد کم می شود. 21 فصل دوازهم :پیاده سازی سیستم فایل ‏وقتی تمامی کاربرانی که فایلی را باز کردند ،آنرا ببندند ،اطالعات نوسازی شده مربوط به فایل در ساختار دایرکتوری دیسک کپی می شود و ورودی آن از جدول فایل باز در سطح سیستم حذف می شود. ‏در واقع فراخوان سیستم Openابتدا جدول فایل باز در سطح سیستم را جستجو می کند تا مشخص گردد که آیا این فایل توسط فرآیند دیگری در حال استفاده است یا خیر. اگر باشد ،یک ورودی در جدول فایل باز سطح سیستم اشاره می کند .این الگوریتم سربار ناشی ازباز کردن فالی را که فعال باز است ،کاهش می دهد. 22 فصل دوازهم :پیاده سازی سیستم فایل ‏در بعضKی از سKیستمها ،از سKیستم فایKل به عنوان واسKطی بKه جنبKه های دیگر سKیستم اسKتفاده مKی کنند و در نتیجه پیچیدگی بیشتر می شود. ‏جنبه ذخیره سازی در حافظه پنهان سرباری ندارد. 23 فایل سیستم ساختارهای فصل دوازهم :پیاده حافظه در موجود سازی سیستم فایل ساختار دایرکتوری بلوک کنترل فایل حافظه ثانویه )open(filename ساختار دایرکتوری حافظه هسته باز کردن فایل بلوکهای داده 24 بلوک کنترل ثانویه حافظه فایل فضای کاربر )read(index جدول فایل باز در جدول فایل باز در سطح فرآیند سطح سیستم حافظه هسته خواندن فایل فضای کاربر فصل دوازهم :پیاده سازی سیستم فایل 2-2-12پارتیشن ها و سوار کردن آنها طرح بندی دیسک بسیار متنوع است و به سیستم عامل بستگی دارد .دیسک می تواند به چند پارتیشن تقسیم شود یا یک پارتیشن می تواند چند دیسک را در بر گیرد. حالت اول: هر پارتیشن می تواند خام باشد یا آماده و حاوی سیستم فایل باشد .دیسک خام وقتی مورد استفاده قرار می گیرد که هیچ سیستم فایلی مناسب نباشد.فضای مبادله یونیکس می تواند از پارتیشن خام استفاده کند .بعضی از بانکهای اطالعاتی از دیسک خام استفاده می کنند. 25 فصل دوازهم :پیاده سازی سیستم فایل ‏دیس ک خام م ی توان د حاوی اطالعات ی باش د ک ه موردنیاز سیستمهای RAID است ،مثل نقشه های بیتی که مشخص می کنند کدام بلوکها آینه ای شدند و کدامها نیاز به تغییر دارند تا آیینه ای شوند. ‏اطالعات راه اندازی سیستم می تواند در پارتیشن جداگانه ای قرار گیرد .فرمت اطالعات ،ویژ ه اس ت ،زیرا در هنگام راه اندازی ،گرداننده دس تگاه س یستم فایل بار نشده است و نمی تواند فرمت سیستم فایل را تفسیر کند. بصورت دنباله ای از بلوکها است که به شکل تصویر به حافظه بار می شوند .اجرای این تصویر از محل خاصی مثل اولین بایت تصویر شروع می شود.این تصویر راه اندازی می تواند دستوراتی بیش از دستورات الزم برای راه اندازی سیستم عامل را در بر داشته باشد. 26 فصل دوازهم :پیاده فایل سیستم سازی ‏در چنین سیستمهایی ،چندین سیستم عامل را می توان نصب کرد. ‏بارکننده راه انداز که سیستمهای فایل چندگانه و سیستمهای عامل چندگانه را می فهمد ،می تواند فضای راه اندازی را اشغال کند .هنگامی که بار می شود ،می تواند یکی از سیستمهای عامل موجود در دیسک را راه اندازی کند. ‏دیسک می تواند چندین پارتیشن داشته باشد و هر کدام دارای سیستم فایل و سیستم عامل متفاوتی باشند. ‏پارتیشن ریشه که حاوی هسته سیستم عامل و سایر فایلهای سیستم است ،در زمان راه اندازی سوار می شود. ‏سایر پارتیشن ها می توانند بطور خودکار در زمان راه اندازی یا بعدا بطور دستی سوار شوند .این موضوع به سیستم عامل بستگی دارد. 27 فصل دوازهم :پیاده سازی سیستم فایل ‏بKه عنوان بخشKی از عملیات موفKق سKوار کردن ،سیستم عامKل کنترل مKی کنKد کKه آیKا دسKتگاه حاوی سKیستم فایل معتبری است یا خیر. اگKر فرمKت نامعتKبر باشKد ،پارتیشKن بایKد از نظKر سازگاری تسKت و درسKت شود .سKرانجام ،سKیستم عامKل در ساختار جدول سKوار کردن خود یادداKشKت مKی کنKد کKه یKک سیستم فایKل سKوار شده اسKت و نوع سKیستم فایKل را نیز ذخیره می کند. 28 فصل دوازهم :پیاده سازی سیستم فایل ‏در یونیک س ،س یستمهای فای ل م ی توانن د در ه ر دایرکتوری سوار شوند .برای پیلدهسازی آن ،یک پرچم در گره شاخص مربوط به آن دایرکتوری که در حافظه قرار دارد ،مقئار می گیرد. ‏این پرچم نشان می دهد که دایرکتوری یک نقطه سوار کردن است .سپس فیلدی به یک ورودی در جدول سوار کردن اشاره می کند و مشخص می کند که کدام دستگاه در اینجا سوار شده است. ورودی جدول سوار کردن حاوی اشاره گری به سوپر بلوک سیستم فایل در آن دستگاه است. 29 فصل دوازهم :پیاده سازی سیستم فایل 3-2-12سیستمهای فایل مجازی ‏سیستمهای عامل مدرن ،همزمان باید چندین نوع سیستم فایل راپشتیبانی کنند. ‏برای انجام این کار ،یک روش پیاده سازی انواع مختلفی از سیستمهای فایل این است که برای هر نوع ،روالهای دایرکتوری و یفایل جداگانه ای نوشته شود. اغلب سیستمهای عامل ،ازجمله یونیکس ،برای سهولت ،سازمان دهی ،و پیمانه ای کردن پیاده سازی ،از شئ گرایی استفاده می کند. 30 فصل دوازهم :پیاده سازی سیستم فایل ‏با استفاده از این روشها می توان سیستمهای فایل متفاوت را در یک ساختار پیاده سازی کرد .کاربران می توانند به فایلهای موجود در سیستمهای فایل مختلف در دیسک محلی ،یا سیستمهای فایل شبکه دستیابی داشته باشند. ‏برای تفکیک عملکرد فراخوان سیستم اصلی از جزئیات پیاده سازی ،از ساختمان داده ها و رویه هایی استفاده می شود .لذا ،پیاده سازی سیستم فایل شامل 3الیه اصلی است. 31 پیاده : دوازهم فصل سیستم فایل مجازی سازی سیستم فایل واسط سیستم فایل واسط VFS سیستم فایل راه دور نوع 1 شبک 32 سیستم فایل محلی نوع 2 سیستم فایل محلی نوع 1 دیس ک دیس ک فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 33 ‏NFS لیست خطی جدول در هم سازی فصل دوازهم :پیاده سازی سیستم فایل 3-12پیاده سازی دایرکتوری انتخاب الگوریتمهای تخص یص دایرکتوری و مدیری ت بر دایرکتوری ،اثر زیادی بر کارایی و قابلیت اعتماد سیستم فایل دارد .لذا ،بین این الگوریتمها باید توازن برقرار باشد. 1-3-12لیست خطی س اده تری ن روش پیاده س ازی دایرکتوری اس تفاده از ی ک لیس ت خط ی از اسامی فایله ا و اشاره گرهای ی ب ه بلوک داده ه ا اس ت .برای یافت ن ورودی خاصی از دایرکتوری ،نیاز به جستجوی خطی است .برنامه نویسی این روش ساده است ولی اجرای آن به زمان زیادی نیاز دارد. 34 فصل دوازهم :پیاده فایل سیستم فایل ی همنام ب ا آن جستجو کن ی تا سازی د دایرکتوری را ‏برای ایجاد فایل جدید ،بای موجود نباشد .سپس ورودی جدیدی در انتهای دایرکتوری قرا می دهیم .برای حذف فایل ،آنرا در دایرکتوری جستجو می کنیم و فضای تخصیص یافته به آن را آزاد می کنیم. برای استفاده مجدد از دایرکتوری ،چندین کار را می توان انجام داد: ‏می توانیم آن ورودی را عالمتگذاری کنیم که به معنای حذف باشد. ‏می توانیم لیستی از ورودیهای آزاد دایرکتوری را به آن وصل کنیم. ‏م ی توانی م آخری ن ورودی دایرکتوری را در ای ن مح ل خال ی کپ ی کنی م تا طول دایرکتوری کاهش یابد. 35 فصل دوازهم :پیاده فایل سیستم سازی عیب لیست خطی برای ورودیهای دایرکتوری،جستجوی خطی برای یافتن فایل است. اطالعات دایرکتوری به وفور بکار می شوند و چنانچه الگوریتم دستیابی کند باشد از دیدگاه کاربر مشهود است. ‏ در واقع ،اغلب س یستمهای عامل ی ک حافظه پنهان نرم افزاری را برای ذخیره اطالعاتی از دایرکتوری که اخیرا مورد استفاده قرار گرفته اند ،بکار می گیرند.بدین ترتیب اطالعات دوباره از دیسک خوانده نمی شود. ‏اگر لیست مرتب باشد ،جستجوی دودویی از میانگین زمان جستجو می کاهد .اما مرتب بودن خطی ،حذف و اضافه فایل را مشکل می کند ،زیرا فایلهای زیادی از لیست باید جا به جا شوند. 36 فصل دوازهم :پیاده تب نمایش داده می سیستمن بطور مر سازیاست ک ه محتویات آ امتیاز دایرکتوری مرتب این فایل شوند. 2-3-12جدول در هم سازی در ای ن روش ی ک لیس ت خط ی ورودیهای دایرکتوری را ذخیره م ی کن د ولی از ساختمان داده در هم سازی نیز استفاده می شود. ‏جدول در هم سازی ،مقداری را که از نام فایل محاسبه می شود می گیرد و اشاره گ ر ب ه نام فای ل را در لیس ت خط ی برم ی گرداند.بدی ن ترتی ب زمان جستجو در دایرکتوری کاهش می یابد. ‏ افزودن فایل جدی د و حذف فایل نی ز س اده اس ت ،گ ر چ ه بای د تمهیداتی برای برخورده ا اندیشیده شود .منظور از برخورد ای ن اس ت ک ه دو فای ل ممک ن است 37 فصل دوازهم :پیاده سازی سیستم فایل ‏مشکل جدول در هم سازی ،ثابت بودن اندازه آن و وابستگی به اندازه جدول است. ‏راه دیگر این است که از جدول در هم سازی سرریز استفاده شود .یعنی هر ورودی در هم سازی می تواند به جای یک مقدار ،یک لیست پیوندی باشد و برای رفع برخورد ،ورودی جدیدی را در لیست پیوندی قرار می دهیم. ‏جس تجو ممک ن اس ت کم ی طول بکش د ول ی از جس تجوی خط ی در سراسر دایرکتوری سریعتر است. 38 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 39 ‏NFS تخصیص همجوار تخصیص پیوندی تخصیص شاخص دار کارآیی فصل دوازهم :پیاده سازی سیستم فایل 4-12روشهای تخصیص فضا به فایل ماهیت دستیابی مستقیم دیسکها منجر به قابلیت انعطاف در پیاده سازی فایلها می شود .بر روی هر دیسک چندین فایل ذخیره می شود.مسئله اصلی چگونگی تخصیص فضا به این فایلها است ،بطوری که فضای دیسک بطئر کارآمد مورد استفاده قرار گیرد و فایلها نیز سریعا دستیابی شوند. 3روش متداول برای تخصیص فضای دیسک وجود دارد: .I .IIپیوندی .IIIشاخص دار تخصیص همجوار 40 فصل دوازهم :پیاده سازی سیستم فایل 1-4-12تخصیص همجوار در روش تخصیص همجوار ،هر فایل مجموعه پیوسته ای از بلوکهای دیسک را اشغال می کند .آدرسهای دیسک یک ترتیب خطی را روی دیسک تعریف می کند. توجه کنید که در این ترتیب ،با فرض اینکه فقط یک کار به دیسک دستیابی دارد، دستیابی به بلوک b+1پس از بلوک ،bنیاز به حرکت هد ندارد .در صورت نیاز به حرکت هد ،فقط یک شیار حرکت خواهد کرد. لذا ،تعداد پیگردهای مورد نیاز برای دستیابی به فایلهایی که تخصیص همجوار 41دارند ،اندک است. فصل دوازهم :پیاده سازی سیستم فایل تخصیص همجوار فایل توسط آدرس دیسک و طول اولین بلوک تعریف می شود. اگر طول فایل = nبلوک محل شروع = b آنگاه بلوکهای b,b+1,b+2,…,b+n-1را اشغال خواهد کرد ورودی دایرکتوری برای هر فایل آدرس بلوک اول فایل و طول ناحیه ای را که به آن تخصیص یافته است مشخص می کند. 42 فضای همجوارپیاده تخصیصدوازهم : فصل سیستم فایل سازی دیسک ‏count دایرکتوری 43 طول شروع 2 3 6 4 2 0 14 19 28 6 فایل ‏count ‏tr ‏mail ‏list ‏f 3 2 1 0 7 6 5 4 ‏f 11 ‏tr 10 9 8 15 14 13 12 19 18 17 16 23 22 21 20 27 26 ‏list 25 24 31 30 29 28 ‏mail فصل دوازهم :پیاده سازی سیستم فایل ‏دستیابی به فایلی که بطور همجوار تخصیص یافته است آسان است. در دستیابی ترتیبی ،سیستم فایل با استفاده از آدرس آخرین بلوکی که به آن مراجعه شده اس ت ،بلوک بعدی را م ی خواند .برای دس تیابی مس تقیم به بلوک i مربروط به فایلی که از بلوک bشروع می شود ،می توانیم فورا به بلوک b+i دستیابی داشته باشد. ‏یکی از مشکالت تخصیص همجوار ،یافتن فضای کافی برای فایل جدید است. ‏مس ئله تخص یص فضای دیس ک ب ه ص ورت همجوار ،ب ه عنوان کاربرد خاصی از 44مسئله کلی تخصیص حافظه پویا است. فصل دوازهم :پیاده سازی سیستم فایل چگونگی تخصیص حافظه به طول nاز لیستی از حفره های آزاد: اولین جای مناسب و بهترین جای مناسب ،دو روش متداول برای انتخاب حفره آزاد از بین مجموعه ای از بین مجموعه ای از حفره های آزاد هستند. شبیه سازیها نشان دادند که این دو روش کارآمدتر از روش بدترین جای مناسب هستند. ‏هیچکدام از دو روش اولین جای مناسب و بهترین جای مناسب ،در بهره وری از حافظه بر دیگری ارجح نیست ولی روش اولین جای مناسب ،سریعتر است. 45 فصل دوازهم :پیاده سیستم فایل سازی شدن خارجی می شود. این الگوریتم دچار تکه تکه ‏با ایجاد و حذف فایل ،فضای آزاد دیسک به چند تکه کوچک شکسته می شود. تکه تکه شدن خارجی وقتی بوجود می آید که فضای دیسک به قطعات کوچکی تقسیم گردد. ‏اگر قطعات موجود در حافظه برای تخصیص همجوار فایلی مناسب نباشند ،این مس ئله جدی اس ت.یعنی حافظ ه ب ه تعدادی حفره تقس یم م ی شود که هیچکدام ازآنها به تنهایی نمی توانند پاسخگوی درخواست باشند. ‏بسته بهمیزان کل حافظه دیسک و میانگین اندازه فایل ،تکه تکه شدن خارجی 46ممکن است اندک یا زیاد باشد. فصل دوازهم :پیاده سازی سیستم فایل ‏بعضی از سیستمهای ریز کامپیوتر قدیمی ،در دیسک فالپی از تخصیص همجوار استفاده کرده اند. ‏برای جلوگیری از هدر رفتن فضای دیسک در اثر تکه تکه شدن خارجی کاربر باید روالی را اجرا کند که کل سیستم فایل را در فالپی دیگر یا نوار کپی نماید. سپس دیسک فالپی اصلی آزاد می شود و یک فضای خالی همجوار بوجود می آید. سپس این روال ،فایلها را به این دیسک می آورد و حافظه همجواری را به آنها تخصیص می دهد .این الگو ،کل فضای آزاد را در یک فضای همجوار فشرده می کند و تکه تکه شدن خارجی را حل می کند. 47 فصل دوازهم :پیاده سازی سیستم فایل ‏هزینه این الگو ،زمانی است که برای آن مصرف می شود .این هزینه برای دیسکهای سخت بزرگ ،بسیار زیاد است .در این مدت ،کار عادی سیستم صورت نمی گیرد. ‏مسئله اصلی دیگر در مورد تخصیص همجوار ،تعیین میزان فضای الزم برای فایل است .برای ایجاد فایل ،کل فضای مورد نیاز آن باید تعیین شود و تخصیص یابد. ‏در بعضی از موارد ،تعیین اندازه فایل ممکن است آسان باشد ،اما بطور کلی تعیین اندازه فایل دشوار است. 48 فصل دوازهم :پیاده فایل سازی نتواند توسعه یابد. سیستمممکن است تخصیص دهیم ،آن فایل ‏اگر فضای کمی به فایل مخصوصا در راهبرد بهترین جای مناسب ،فضای هر دو طرف فایل ممکن است مورد استفاد واقع شده باشد.لذا نمی توان آن فایل را درجا توسعه داد .دو امکان وجود دارد: .1 برنامه کاربر می تواند با صدور پیامی خاتمه یابد .کاربر باید فضای بیشتری را تخصیص دهد و برنامه را دوباره اجرا کند .هزینه این کار ممکن است زیاد باشد، برای جلوگیری از آن ،کاربر فضای بیشتری در اختیار فایل قرار می دهد و منجر 49 به اتالف حافظه می شود. .2 فصل دوازهم :پیاده سازی سیستم فایل یافتن حفره بزرگتر و کپی محتویات فایل در آ ن حفره و حذف فضای قبلی است .این کار منجر به اتالف وقت می شود.در این حالت ،الزم نیست کاربر از آنچه که اتفاق می افتد باخبر باشد .خود سیستم اینکار را انجام می دهد. ‏حتی اگر کل فضای مورد نیاز فایل از قبل مشخص باشد ،تخصیص زودرس ممکن است کارآمد نباشد. فایلی که به تدریج در طول زمان رشد پیدا می کند ،تخصیص کل فضا به آن منجر به اتالف حافظه می شود ،زیرا مقدار زیادی از فضای آن مدتها مورد استفاده واقع نمی شود ،بدین ترتیب ،تکه تکه شدن داخلی بوجود می آید. 50 فصل دوازهم :پیاده سازی سیستم فایل ‏برای حل مسئله ،بعضی از سیستمهای عامل از الگوی تخصیص همجوار اصالح شده ای استفاده می کنند که در آن ،در آغاز ،یک قطعه همجوار از فضا تخصیص می یابد و چنانچه آن فضا کافی نبود ،قطعه دیگری به آن اضافه می شود. بدین ترتیب ،محل بلوکهای فایل به صورت محل و شماره بلوک ذخیره می شود.عالوه براین به اولین بلوک قطعه جدیدی نگهداری می شود. ‏در بعضی از سیستمها ،اگر مالک فایل واقعی نباشد ،این تخصیص ممکن است ناکارآمد باشد .در این حالت تکه تکه شدن داخلی بوجود می آید. 51 فصل دوازهم :پیاده سازی سیستم فایل 2-4-12تخصیص پیوندی تخصیص یوندی به 2روش انجام می گیرد: روش اول: تخصیص پیوندی مسائل مربوط به تخصیص همجوار را حل می کند.در این روش ،هر فایل یک لیست پیوندی از بلوکهای دیسک را دارد ،بطوری که بلوکهای دیسک می توانن د در ه ر جای ی از دیس ک باشند .دایرکتوری حاوی اشاره گرهای ی ب ه اولین وآخرین بلوک فایل است. 52 پیادهدیسک فضای فصلپیوندی تخصیص دوازهم : سازی سیستم فایل دایرکتوری طول شروع فایل 25 53 9 ‏jeep 1 0 3 2 5 4 7 6 9 8 15 14 13 12 19 18 17 23 22 21 20 27 26 25 24 31 30 29 28 11 25 10 10 16 -1 1 16 فصل دوازهم :پیاده سازی سیستم فایل ‏برای ایجاد فایل جدید ،ورودی جدیدی را در دایرکتوری قرار می دهیم. در تخصیص پیوندی ،هر ورودی دایرکتوری دارای اشاره گری به اولین بلوک فایل است. اگر این اشاره گر تهی باشد ،نشان دهنده فایل خالی است.فیلد اندازه نیز برابر با صفر می شود. نوشتن در بلوک موجب می شود تا سیستم مدیریت فضای آزاد ،بلوک آزادی را پیدا کند و در آن نوشته شود .این بلوک به انتهای فایل پیوند زده می شود. برای خواندن فایل ،بلوکها را از طریق اشاره گرها دنبال می کنیم. 54 فصل دوازهم :پیاده فایل سیستم سازی ‏در تخصیص پیوندی تکه تکه شدن خارجی وجود ندارد و هر بلوک آزاد موجود در لیست فضای آزاد می تواند برای پاسخگویی به درخواست مورد استفاده قرار گیرد. ‏ توج ه کنی د ک ه در ای ن روش الزم نیس ت اندازه فای ل در هنگام ایجاد فایل مشخص باشد .تا زمانی که بلوکهای آزاد موجود باشند ،فایل می تواند توسعه یابد. عالوه براین ،نیاز به فشرده سازی دیسک نیست. 55 فصل دوازهم :پیاده سازی سیستم فایل معایب تخصیص پیوندی: .I در این روش می تواند برای فایلهایی با دستیابی ترتیبی به خوبی مورد استفاده قرار گیرد. برای یافتن iامین بلوک فایل ،باید از ابتدای فایل شروع کرده ،اشاره گر ها را دنبال کنیم تا به آن بلوک برسیم .هر دستیابی به اشاره گر مستلزم مراجعه به دیسک و گاهی پیگرد دیسک است .در نتیجه ،پشتیبانی دستیابی مستقیم کارآمد نیست. .IIعیب دیگر آن فضای مورد نیاز برای اشاره گرهاست. 56 فصل دوازهم :پیاده سازی سیستم فایل راه حل این مسئله: .I راه حل عادی این است که بلوکها در کالستر ها دسته بندی شود و بجای تخصیص بلوک ،کالستر تخصیص یابد. ... .IIمسئله دیگر ،قابلیت اعتماد است .چون بلوکها از طریق اشاره گرها به هم وصل می شوند که در سراسر دیسک پخش است ،اگر اشاره گری خراب شود، مشکالت فراوانی بوجود می آید.خطایی در سیستم یا خرابی سخت افزاری دیسک منجر به انتخاب نادرستی می شود. ... 57 روش دوم: فصل دوازهم :پیاده سازی سیستم فایل شک ل دیگری از روش تخص یص پیوندی اس تفاده از جدول ایجاد فای ل است.این روش ساده و کارآمد ،در سیستم عامل MS-DOSو OS/2مورد استفاده قرار می گیرد. بخشی از دیسک در ابتدای هر پارتیشن برای نگهداری این جدول در نظر گرفته می شود. ‏هر بلوک دیسک یک ورودی در این جدول دارد و جدول بر حسب شماره بلوک شاخص بندی شده است. 58 فصل دوازهم :پیاده سازی سیستم فایل این جدول همانند لیست پیوندی بکار گرفته می شود؛ ‏ورودی دایرکتوری حاوی شماره اولین بلوک فایل است. ‏ورودی جدول برحسب شماره بلوک شاخص بندی می شود و حاوی شماره بلوک بعدی موجود در فایل است. ‏این زنجیره تا آخرین بلوک ادامه می یابد که حاوی مقدار خاصی برای نمایش انتهای فایل است. 59 تخصیص پیاده جدولدوازهم : فصل فایل سازی 0سیستم فایل ورودی دایرکتوری 217 618 217 بلوک شروع 339 end-of-file 339 618 شماره بلوکهای 60 ‏FAT … دیسک1- ‏Test نام فصل دوازهم :پیاده سازی سیستم فایل 3-4-12تخصیص شاخص دار تخصیص پیوندی مسئله های تکه تکه شدن خارجی و اعالن اندازه فایل را در روش تخصیص همجوار حل می کند. ‏در صورت عدم استفاده از ،FATتخصیص پیوندی دستیابی مستقیم را بطور کارآمد پشتیبانی نمی کند ،.زیرا اشره گرهای بلوکها همراه خود بلوکها در سراسر دیسک پخش هستند و باید به ترتیب بازیابی شوند. 61 فصل دوازهم :پیاده سازی سیستم فایل تخصیص شاخص دار این مسئله را حل می کند.برای این منظور ،تمام اشاره گرها را در محلی بنام بلوک شاخص جمع می کند. ‏هر فایل دارای بلوک شاخص مخصوص به خودش است که آرایه ای از آدرسهای بلوک دیسک است. ‏i امین ورودی بلوک شاخص به iامین بلوک فایل اشاره می کند. ‏دایرکتوری حاوی محتویات آدرس بلوک شاخص است. 62 فضای دار شاخص تخصیص فصل دوازهم :پیاده سازی دیسک سیستم فایل دایرکتوری فایل بلوک شاخص ‏jeep 19 9 16 1 10 25 11163 19 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12 19 18 17 16 23 22 21 20 27 26 25 24 31 30 29 28 فصل دوازهم :پیاده سازی سیستم فایل ‏وقتی فایلی ایجاد شد ،تمامی اشاره گرهای موجود در بلوک شاخص برابر با تهی می شوند. ‏برای نوشتن iامین بلوک ،بلوکی از مدیر فضای آزاد گرفته می شود و آدرس آن در ‏iامین ورودی بلوک شاخص نوشته می شود. ‏تخصیص شاخص دار از دستیابی مستقیم پشتیبانی می کند و دچار تکه تکه شدن خارجی نمی شود. ‏تخصیص شاخص دار فضای حافظه را به هدر نمی دهد. 64 فصل دوازهم :پیاده سازی سیستم فایل ‏سربار اشاره گر در بلوک شاخص بیشتر از سربار اشاره گر تخصیص پیوندی است.حالتی را در نظر بگیرید که فایلی حاوی یک یا دو بلوک است. ‏در تخصیص شاخص دار ،کل بلوک شاخص باید تخصیص یابد ،حتی اگر فقط یک یا دو اشاره گر تهی نباشند. سوال: اندازه بلوک چقدر باید باشد؟ هر فایل باید دارای یک شاخص بلوک باشد ،لذا مطلوب است که بلوک شاخص حتی االمکان کوچک باشد. 65 فصل دوازهم :پیاده سازی سیستم فایل اگر بلوک شاخص خیلی کوچک باشد نمی تواند اشاره گرهای کافی را برای فایل بزرگ نگهداری کندو بای راهکارهایی برای حل این مسئله وجود داشته باشد. ‏الگوی پیوندی :بلوک شاخ ص معموال بر روی دیس ک اس ت و در نتیجه مستقیما قابل خواندن و نوشتن است. ... ‏شاخص چند سطحی :شکل دیگری از نمایش پیوندی این است که بلوک شاخص سطح اول به مجموعه ای از بلوکهای شاخص سطح دوم اشاره می کند که اینها نیز به نوبه خود به بلوک هر فایل اشاره کنند. 66 فصل دوازهم :پیاده سازی سیستم فایل ‏برای دس تیابی ب ه بلوک ،س یستم ب ا اس تفاده از شاخ ص سطح اول ،بلوک شاخص دار را در سطح دوم می یابد و با استفاده از این بلوک نیز بلوک داده مطلوب را پیدا می کند. این روش می تواند بر حسب اندازه فایل از سطح سوم یا چهارم شاخص نیز استفاده کند. ‏الگوی تر کیبی :روش دیگر این است که چند اشاره گر اول بلوک شاخص در بلوک شاخص فایل نگهداری شود .اسن روش در یونیکس BSDاستفاده می شود. توجه کنید که ورودی دایرکتوری به گره شاخص اشاره می کند. 67 دوازهم :پیاده یونیکس فصلشاخص گره سازی سیستم فایل مالکین ()2 داد ه داد ه داد .ه مهرزمانی ()3 اندازه بلوک شمارش . . 68 داد ه داد ه داد ه داد . . . . . . . . . داد ه داد ه داد ه حالت ..بلوکهای مستقیم . . . . غیرمستقیم منفرد غیرمستقیم دوگانه غیرمستقیم سه فصل دوازهم :پیاده سازی سیستم فایل 4-4-12کارایی روشهای تخصیصی که مورد بحث قرار گرفتند از نظر کارایی حافظه و زمان دستیابی به بلوک داده ها با هم فرق می کنند .این عوامل ،معیارهای مهمی در انتخاب روش مناسبی برای پیاده سازی سیستم عامل می باشند. ‏یکی از مشکالت مقایسه کارایی سیستمهای مختلف تعیین چگونگی استفاده از سیستم است. روشی که سیستم با دستیابی ترتیبی بکار می گیرد متفاوت از روشی است که س یستمی ب ا دس تیابی تص ادفی بکار م ی گیرد .برای هرنوع دس تیابی ،تخصیص 69همجوار برای رسیدن به یک بلوک داده ،به یک دستیابی نیاز دارد. فصل دوازهم :پیاده سازی سیستم فایل ‏در تخصیص پیوندی ،آدرس بلوک بعدی را در حافظه نگه می داریم و آن را مستقیما می خوانیم. این روش برای دستیابی ترتیبی مفید است ‏اما در دستیابی مستقیم ،برای دستیابی به بلوک iام ،باید iبار عمل خواندن از دیسک انجام شود. ‏بعضی از سیستمها برای پشتیبانی از دستیابی مستقیم از تخصیص همجوار و برای پشتیبانی از دستیابی ترتیبی از تخصیص پیوندی استفاده می کنند. در این سیستمها ،نوع دستیابی باید هنگام ایجاد فایل مشخص شود. 70 فصل دوازهم :پیاده سازی سیستم فایل فایلی که با دستیابی ترتیبی ایجاد شد نمی تواند برای دستیابی مستقیم بکار گرفته شود. ‏فایلی که با دس تیابی مستقیم ایجاد شد می توان د برای دس تیابی ترتیبی و مستقیم بکار گرفته شود. ‏برای تبدیل یک نوع فایل به نوع دیگر ،باید از فایل موجود ،فایل جدیدی با نوع جدید ایجاد شود. 71 فصل دوازهم :پیاده سازی سیستم فایل ‏تخصیص شاخص دار پیچیده تر است .اگر بلوک شاخص در حافظه باشد ،دستیابی بطور مستقیم صورت می گیرد. ‏اما نگهداری بلوک شاخص در حافظه موجب مصرف کردن فضای حافظه می شود. ‏اگر این میزان فضا موجود نباشد ،ابتدا باید بلوک شاخص و سپس بلوک داده ها را بخوانیم. ‏در شاخص دو سطحی ،ممکن است بلوک شاخص دو بار خوانده شود. 72 فصل دوازهم :پیاده سازی سیستم فایل در فایلهای خیلی بزرگ ،برای دستیابی به بلوکی که در انتهای فایل است ،باید تمام بلوکهای شاخص خوانده شوند تا زنجیر اشاره گرها برای یافتن بلوک مورد نظر ،پیمایش شود. بنابراین ،کارایی تخصیص شاخص به ساختار شاخص ،اندازه فایل ،و موقعیت بلوک مورد نظر بستگی دارد. 73 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 74 ‏NFS بردار بیتی لیست پیوندی گروه بندی شمارش فصل دوازهم :پیاده سازی سیستم فایل -5-12مديريت فضاي آزاد ‏چون فضاي ديسك محدود است .الزم است از فضاي مربوط به فايلهاي حذف شده، براي فايلهاي جديد استفاده گردد. ‏در ديسكهاي نوري كه يك بار قابل نوشتن هستند استفاده مجدد از فضا ممكن نيست . ‏براي نگهداري فضاي آزاد ديسك ،سيستم از ليست فضاي آزاد استفاده مي كند .ليست فضاي آزاد‌،همه ي بلوكهاي آزاد ديسك را نگهداري مي كند. 75 فصل دوازهم :پیاده سازی سیستم فایل ‏براي ايجاد فايل اين ليست را جستجو مي كنيم تا فضاي مورد نياز را بيابيم و آن را تخصيص دهيم .اين فضا از ليست فضاي آزاد حذف مي گردد. ‏ وقتي فايلي حذف شد‌،فضاي ديسك آن به ليست فضاي آزاد بر مي گردد .ليست فضاي آزاد ،برخالف نامش ممكن است به صورت ليست پيام سازي نشود. -1-5-12برداربيتي اغلب ،ليست فضاي آزاد به صورت بيتي يا بردار بيتي پياده سازي مي شود هر بلوط توسط يك بيت نمايش داده مي شود اگر بلوك آزاد باشد آن بيت برابر با يك 76وگرنه صفر است. فصل دوازهم :پیاده سازی سیستم فایل ‏امتياز اصلي اين روش سادگي و كارايي باالي آن است به طوري كه به راحتي مي توان بلوط آزاد روي ديسك را پيدا كرد. ‏سيستم عامل مكينتاش براي تخصيص فضاي ديسك از روش بردار بيتي استفاده مي كند .براي يافتن اولين بلوك خالي ‌،سيستم عامل مكينتاش براي تخصيص فضاي ديسك از روش بردار بيتي استفاده مي كند. ‏ براي يافتن اولين بلوك خالي ،سيستم عامل مكينتاش هر كلمه موجود در بردار بيتي را به ترتيب جستجو مي كند تا مشخص شود كه صفر نيست زيرا مقدار صفر در كليه نشان دهند مجموعه اي از بلوكهاي تخصيص يافته است. 77 فصل دوازهم :پیاده سازی سیستم فایل ‏اولين كلمه غير صفر جستجو مي شود تا اولين بيت يك پيدا شود .اين بيت محل اولين بلوك آزاد را مشخص مي كند .محاسبه شماره بلوك به صورت زير است: آفست اولين بيت يك ( +تعداد كلمات با مقدار صفر) × تعداد بيتها در هر كلمه) بدين ترتيب ويژگي سخت افزار بر روي عملكرد نرم افزار موثر است. -2-5-12ليست پيوندي روش ديگر براي نگهداري ليست فضاي آزاد اين است كه بلوكهاي آزاد ديسك به هم پيوند داده شوند به طوري كه اشاره گر به اولين بلوك آزاد در جايي از ديسك نگهداري شود و در حافظه پنهان نيز ذخيره گردد اين بلوك حاوي اشاره گري به اولين بلوك است و اين روند ادامه مي يابد. 78 دیسک به روی آزاد لیست فصل دوازهم :پیاده پیوندی صورت فایل سیستم سازی 79 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12 19 18 17 16 23 22 21 20 27 26 25 24 31 30 29 28 راس لیست فضای آزاد فصل دوازهم :پیاده سازی سیستم فایل ‏اين الگو كارآمد نيست زيرا براي پيمايش ليست بايد هر بلوك را بخوانيم و اين كار مستلزم وقت زيادي براي I/Oاست خوشبختانه پيمايش ليست آزاد چندان تكرار نمي شود. ‏ سيستم عامل بلوك آزاد را به فايلي تخصيص مي دهد زيرا اولين بلوك ليست مورد استفاده قرار مي گيرد. -3-5-12گروه بندي شكل ديگري از ليست فضاي آزاد اين است كه آدرس nبلوك آزاد در اولين بلوك آزاد قرار داده شود .بدين ترتيب n-1بلوك اول آزاد است .آخرين بلوك حاوي آدرس n بلوك آزاد بعدي است و اين روند ادامه مي يابد .اهميت اين پياده سازي اين است كه آدرس تعداد زيادي از بلوكهاي آزاد سريعا ً پيدا مي شود. 80 فصل دوازهم :پیاده سازی سیستم فایل -4-5-12شمارش روش ديگر اين است كه چند بلوك همجوار ممكن است به طور همزمان تخصيص يابند يا آزاد شوند .بخصوص در حالتي كه فضا از طريق الگوريتم تخصيص همجوار يا كالسترها تخصيص مي يابند،اين موضوع مشهود است. بنابراين به جاي نگهداري ليستي از nآدرس بلوك ديسك ،مي توانيم آدرس اولين بلوك آزاد و تعداد بلوكهاي آزاد همجوار بعد از اولين بلوك ( )nرا نگهداري كنيم. 81 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 82 ‏NFS اثر بخشی کارآیی فصل دوازهم :پیاده سازی سیستم فایل -6-12اثر بخشي و كارايي ديسكها تنگناهاي زيادي را براي كارايي سيستم ايجاد مي كنند زيرا كندترين قطعه كامپيوتر هستند. -1-6-12اثر بخشي استفاده كارآمد از فضاي ديسك به الگوريتمهاي تخصيص ديسك و دايركتوري بستگي دارد .به عنوان مثال گرههاي شاخص يونيكس از قبل به يك پارتيشن تخصيص مي يابند. با تخصيص زودرس گرههاي شاخص و پخش كردن آنها در پارتيشن كارايي سيستم فايل افزايش مي يابد. 83  فصل دوازهم :پیاده سازی سیستم فایل اين كارايي بهبود يافت ه نتيج ه الگوريت م تخص يص فضاي آزاد اس ت كه در يونيكس مورد استفاده قرار مي گيرد. ‏در اين الگوريتم سعي مي شود بلوكهاي داده فايل در نزديكي بلوك گره شاخص آن فايل نگهداري شود تا زمان پيگرد كاهش يابد. ‏نتيج ه نگهداري اين اس ت ك ه وقت ي فايل ي خوانده ش د فيلدي در ساختمان دايركتوري بايد نوشته شود .اين تغيير مستلزم اين است كه بلوك به حافظه خوانده شود بخشي ا زآن تغيير كند و بلوك دوباره بر روي ديسك نوشته شود. 84 فصل دوازهم :پیاده سازی سیستم فایل ‏بنابراين هر وق ت فايل براي خواندن باز م ي شود ورودي دايركتوري آن بايد خوانده شد و پس از تغيير نوشته شود .اگر فايلها به وفور دستيابي شوند اين عمل كار آمد نخواهد بود. به طور كلي اثر هر قلم داده مربوط به فايل بر روي اثر بخشي و كارايي بايد مورد بررسي قرار گيرد. ‏يكي از مشكالت انتخاب اندازه اشاره گرها يا تخصيص به اندازه ثابت در سيستم عامل ،برنامه ريزي براي اثرات تغيير فناوري است. 85 فصل دوازهم :پیاده فایل سیستم سازی ‏مدل XTاي .بي .ام از ديسك سخت 10مگابايتي استفاده مي كرد و سيستم عامل MS-DOSبر روي آن موجود بود كه فقط تا 32مگابايت را پشتيباني مي كرد وقتي ديسك سختي با ظرفيت 100مگابايت متداول شد ساختمان داده هاي ديسك و الگوريتمهاي MS-DOSبايستي تغيير كنند تا سيستمهاي عامل بزرگتري ايجاد شوند. -2-6-12كارايي پ س از انتخاب روشهاي اصلي ديسك راههاي ديگري نيز براي بهبود كارايي وجود دارد. ‏ اغلب كنترل كننده هاي ديسك شامل حافظه هاي محلي اند كه به عنوان حافظه پنهان عمل مي كنند و اندازه آنها به حدي است كه كل شيارها را نگهداري مي كنند 86 فصل دوازهم :پیاده سازی سیستم فایل ‏وقتKي پيگردي صKورت مKي گيرد شيار بKه حافظه پنهاد ديسKك خوانده مKي شود بديKن ترتيKب زمان تأخيKر كاهش مي يابد. ‏ وقتKي بلوكهKا از كنترل كننده ديسKك بKه حافظKه اصلي منتقKل شدنKد سKيستم عامKل ممكKن اسKت آنها را در حافظه پنهان قرار دهد. ‏بعضKي از سKيستمها بخشKي از حافظKه اصلي را براي 87حافظKه پنهان ديسKك نگهداري مKي كننKد بعضKي ديگر از فصل دوازهم :پیاده سازی سیستم فایل ‏حافظKه پنهان صKفحه بKا اسKتفاده از تكنيكهاي حافظه مجازي داده هKا را بKه عنوان صKفحات ذخيره مKي كننKد نه بKه عنوان بلوكهاي مبتنKي بر سKيستم قرار دادن فايل داده هKا در حافظKه پنهان بKا اسKتفاده از آدرسهاي مجازي كارآمدتر از بلوكهاي ديسك مغناطيسي است. ‏ بعضKي از سKيستمها از جملKه سKوالريس ،نسخه هاي جديKد لينوكKس ،و ويندوز NTو 2000از حافظه پنهان 88صKفحه براي فايKل داده اسKتفاده مKي كنند .ايKن عمل را فصل دوازهم :پیاده سازی سیستم فایل ‏بعضي از نسخه هاي يونيكس از حافظه پنهان ميانگير يكنواخت استفاده مي كنند. دو روش باز كردن و دستيابي به فایل وجود دارد : .1استفاده از نگاشت حافظه .2استفاده از فراخوان سيستم استاندارد readو write ‏بدون استفاده از حافظه پنهان ميانگير ،فراخوانهاي سيستم readو writeاز طريق حافظه پنهان ميانگير انجام مي شود. 89 پKKنهKان ‏K ه ‏Kظ ف حا ‏Kن و بKKد ‏I/O فصل دوازهم :پیاده ‏Kخت یKKکنوا سازیKگیر مKیان فایل سیستم I/OبKKا اKسKتفادKه Kاز )(readو )(write I/OنKKگاشKتحافKظهK حافظه پنهان صفحه حافظه پنهان میانگیر 90 سیستم فایل فصل دوازهم :پیاده فایل سیستم سازی فراخوان نگاشKت حافظKه از دو حافظه پنهان استفاده مي كند: حافظه پنهان صفحه حافظه پنهان ميانگير در نگاشKت حافظKه بلوكهاي ديسKك از سيستم فايKل خوانده شده در حافظKه پنهان ميانگير ذخيره مي شوند. ‏چون سKيستم حافظKه مجازي نمKي توانKد با حافظKKه پنهان ميانگيKKر ارتباط برقرار كند، 91محتويات فايKل در حافظKه پنهان ميانگيKر بايد در  فصل دوازهم :پیاده سازی سیستم فایل ناسKازگاريهاي بين اين دو حافظه پنهان منجر به خرابي فايل مي شوند. ‏ بKا ارائKه حافظKه پنهان ميانگيKر يكنواخKت ،نگاشKت حافظه و فراخوانهاي سKيستم readو writeاز يKك حافظه پنهان صفحه استفاده مي كنند. 92 پیادهپKKKنهKان حافKظهK از ‏K ‏Kه د ‏Kتفا س ‏K ا بKKا ‏I/O فصل دوازهم : مKیانKگیر یKKکنواKخت سازی سیستم فایل I/OبKKا اKسKتفادKه Kاز )(readو )(write I/OنKKگاشKتحافKظهK حافظه پنهان میانگیر سیستم فایل 93 فصل دوازهم :پیاده سازی سیستم فایل LRUاKKلگورKيKتKم همKه KمKنظورKه KمKعقولKيبKKراKيجايKگزيKني ‏Kت صKKفحه KبKKا بKKلوكاKس . ‏تكامKKل الكوريتمهاي حافظKKه پنهان صفحه در سKوالريس ،مشكالت انتخاب الگوريتKم را روشن كرده اسKت .سKوالريس بKه فرآيندهKا و حافظKه پنهان صفحات اجازه مKي دهKد از حافظKه بالاسKتفاده بKه طور اشتراكي استفاده كنند ‏94سKوالريس 6/2و سKوالريس 7صKفحه بندي اولويت را  فصل دوازهم :پیاده سازی سیستم فایل سKوالريس 8حKد ثابتKي را بيKن صKفحات فرايند و حافظKه پنهان صKفحه مربوط بKه سKيستم فايKل در نظر مي گيردو در نتيجه با كمبود حافظه موجه نمي شود. ‏حافظKه پنهان صKفحه ،سKيستم فايل و گرداننده هاي ديسKك تعاملهاي جالKبي دارند .وقتKي داده هKا در فايل ديسKك نوشتKه شدنKد صKفحات در حافظه پنهان ذخيره مKي شونKد و گرداننده ديسKك صKف خروجي خود را بر 95حسKب آدرس ديسKك مرتKب مKي كند .ايKن دو عمKل به فصل دوازهم :پیاده فایل سیستم سازی ‏نوشت ن هاي همگام ب ه ترتيبي انجام م ي شود ك ه زير س يستم ديس ك آنها را دريافت مي كند و نوشتن ها در ميانگير قرار نمي گيرند .بنابراين ،روال فراخوان بايد منتظر بماند تا ده ها از ديسك خوانده شود و سپس پردازش خود را شروع كند. ‏اغلب نوشتن ها به صورت نوشتن ناهمگام انجام مي شوند در نوشتن ناهمگان داده ها در حافظه پنهان ذخيره مي شود و كنترل به فراخوان بر مي گردد. ‏دس تيابي ترتيبي م ي توان د ب ا تكنيك ي ب ه نام آزاد س ازي ديررس يا خواندن زودرس بهبود يابد. 96  فصل دوازهم :پیاده سازی سیستم فایل در تكنيك آزاد سازي ديررس به محض اين كه صفحه بعدي در خواست شد صفحه اي را از ميانگير حذف مي كند. ‏ در تكنيك خواندن زودرس ،صفحه در خواستي و چندين صفحه بعدي خوانده شده در حافظه پنهان قرار مي گيرند. اين صفحات احتماالً پس از پردازش صفحه فعلي در خواست مي شوند بازيابي اين داده ها از ديسك در يك عامل انتقال و قرار دادن آنها در حافظه پنهان به ميزان قابل توجهي در زمان صرفه جويي مي كند. 97 فصل دوازهم :پیاده سازی سیستم فایل در PCها ،روش ديگري براي استفاده از حافظه اصلي جهت بهبود كارايي وجود دارد؛ بخش ي از حافظ ه كنار گذاشت ه م ي شود و ب ه عنوان ديس ك مجازي اي (ديسك )RAMمورد اس تفاده قرار م ي گيرد متأس فانه ديس كهاي RAMفقط براي ذخيره موقت مفيد هستند معموالً فايلهاي موقتي مثل فايلهاي مياني كامپايلر در آن ذخيره مي شوند. تفاوت بين ديسك RAMو حافظه پنهان ديسك اين است كه : محتويات ديسك RAMتحت كنترل كاربر است در حالي كه محتويات حافظه پنهان ديسك تحت كنترل سيستم عامل است. 98 پیاده پنهان حافظه مختلف محلهای فصل دوازهم : سازی دیسک سیستم فایل دیسک RAM دیسک میانگی ر شیار جدول فایل باز کنترل کننده میانگیر بلوک حافظه اصلی 99 ‏CPU فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 100 ‏NFS بررسی سازگاری داده ها تهیه پشتیبان و بازیابی فصل دوازهم :پیاده سازی سیستم فایل -7-12ترميم چون فايلها و دايركتوري ها در حافظه و ديسك ذخيره مي شوند بايد تضمين شود كه خرابي سيتسم به داده ها يا سازگاري داده ها آسيب نرساند. -1-7-12بررسي سازگاري داده ها بخش ي از اطالعات دايركتوري در حافظ ه (پنهان) نگهداري م ي شود ت ا سرعت دس تيابي افزايش يابد .اطالعات دايركتوري موجود در حافظ ه نس بت به اطالعات دايركتوري كه در ديسك ذخيره شده است جديدتر است. 101 فصل دوازهم :پیاده سازی سیستم فایل بازرس ناسازگاري ‌،داده هاي موجود در ساختار دايركتوري را با بلوك داده هاي روي ديسك مقايسه مي كند و سعي مي كند ناسازگاريهاي موجود در درست كند. ‏ الگوريتمهاي تخصيص و مديريت فضاي آزاد تعيين مي كند كه بازرس چه خطاهايي را بايد بيابد و آنها را برطرف نمايد. ‏اگر در تخصيص شاخص دار وروديي از دايركتوري از بين برود ،سيستم با شكست مواجه مي شود زيرا بلوكهاي داده ها از يكديگر خبري ندارد. 102 فصل دوازهم :پیاده سیستم فایل سازی -2-7-12تهيه پشتيبان و بازيابي چون ديسكهاي مغناطيسي در معرض خراب شدن هستند بايد مواظب بود كه داده ها از بين نروند. ‏براي اين منظور از داده هاي ديسك روي دستگاه حافظه ديگري مثل ديسكت، نوار مغناطيسي يا ديسك نوري پشتيبان تهيه مي شود .پس از خرابي فايل يا ديسك اين اطالعات بازيابي مي شود. ‏براي جلوگيري از كپ ي كردن زياد م ي توانيم از اطالعات مربوط ب ه هر ورودي فايل استفاده كنيم. 103 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد اثر بخشی و کارآیی ترمیم سیستم فایل براساس ساختار سابقه 104 ‏NFS فصل دوازهم :پیاده سازی سیستم فایل -8-12سيستم فايل براساس ساختار سابقه اغلب الگوريتمها و فناوريها از كاربرد اوليه خود به ساير نواحي منتقل مي شوند. ‏ نمونه اي از اين مورد الگوريتمهاي ترميم براساس سابقه در بانك اطالعاتي است اين الگوريتمها به طور موفق در بازرسي سازگاري به كار گرفته شده اند. ‏ پياده سازيهاي حاصل را سيستم فايل تراكنش گراي مبتني بر سابقه (يا ثبت سابقه) مي نامند. 105 فصل دوازهم :پیاده سازی سیستم فایل ‏در س اختمان داده هاي س يستم فايل روي ديس ك ،مث ل ساختار دايركتوري ،اشاره گرهاي بلوك آزاد اشاره گرهاي FCBآزاد ممكن است در اثر خرابي سيستم به حالت ناسازگاري بروند ‏عملي مثل ايجاد فايل ممكن است شامل تغييرات ساختاري زيادي در سيستم فايل موجود در ديسك باشد. ‏ساختار دايركتوري اصالح مي شود FCBها تخصيص مي يابند بلوكهاي داده تخصيص مي يابند شمارنده تعداد بلوكهاي آزاد كاهش مي يابند اين تغييرات ممكن است در اثر خرابي دچار وقفه شوند و نتيجه اش اين است كه ساختارها ناسازگار خواهند بود. 106 فصل دوازهم :پیاده سازی سیستم فایل ساختار سیستم فایل پیاده سازی سیستم فایل 107 پیاده سازی سیستم فایل پیاده سازی دایرکتوری روشهای تخصیص فضا به فایل مدیریت فضای آزاد مرور کلی اثر بخشی و کارآیی پروتکل سوار کردن ترمیم پروتکل NFS سیستم فایل براساس ساختار سابقه ترجمه نام مسیر ‏NFS عملیات راه دور فصل دوازهم :پیاده سازی سیستم فایل 9-12NFS ي NFSيك س يستم ف ايل ش بكه استك ه ك اربرد وسيعيدارد و ش بكه مشتر - ك ارگزار را ب ه خوبيپ ياده س ازيميك ند. ، NFSپ ياد س ازيومشخصتمربوط ب ه يك س يستم ن رم افزاريب رايدستيابي است ب ه ف ايلهايراه دور از طريق(LANيا حتي. )WAN -1-9-12مرور كلي ، NFSمجوعه اياز ايستگاههايك اريمتصلب ه هم را ب ه ص ورتمجموعه اي است از ماشينهايمستقلدر ن ظر ميگ يرد ك ه س يستمهايف ايلآنها مستقلاز هم . 108 فصل دوازهم :پیاده سازی سیستم فایل ‏هدف ايKن اسKت كKه درجKه اي از اشتراك بيKن اين سيستمهاي فايل وجود داشته باشد. ‏اشتراك براسKاس رابطKه مشتري – كارگزار صKورت مي گيرد. ‏اشتراك بين هر جفت از ماشينها امكان پذير است. ‏براي حصKول اطمينان از ايKن كKه ماشينهKا مستقل 109هسKتند اشتراك سKيستم فايKل راه دور فقKط برماشين فصل دوازهم :پیاده سازی سیستم فایل ‏يKك دايركتوري راه دور در يKك دايركتوري از سيستم فايKل محلKي سKوار مKي شود وقتKي عمليات سواركردن كامل شد ‌،دايركتوري سوار شده مثل يك زير درخت كامل از سKيستم فايKل محلKي اسKت كKه بKه جاي جانشيKن زير درخت دايركتوري محلي قرار مي گيرد ‏دايركتوري محلKي بKه عنوان نام ريشKه دايركتوري محلي قرار مKي گيرد دايركتوري محلKي بKه عنوان نام ريشه دايركتوريKي محسKوب مKي شود كKه اكنون سوار شده است. 110 فایل پیاده دوازهم : سهفصل مستقل سیستم سازی سیستم فایل ‏S1: ‏S2: ‏usr ‏usr ‏dir2 ‏shared ‏dir1 111 ‏LI: ‏usr ‏local فصل دوازهم :پیاده سازی سیستم فایل ‏بKا توجKه بKه اعتبار مجوزهاي دسKتيابي ،هKر سيستم فايKل يKا هKر دايركتوري در سKيستم فايKل را مي توان از راه دور بر روي دايركتوري محلي سوار كرد. ‏در بعضKي از پياده سKازيهاي NFSسKوار كردن مي تواند به صورت آبشاري باشد. 112 در پیاده دوازهم : فصل ‏NFS سوار کردن سازی سیستم فایل ‏LI: ‏usr ‏local ‏dir1 سوار کردنهای آبشاری 113 ‏usr ‏local ‏dir1 عملیات سوار کردن ‏LI: فصل دوازهم :پیاده سازی سیستم فایل -2-9-12پروتكل سوار كردن پروتكل سواركردن اتصال منطقي اوليه را بين كارگزار و مشتري برقرار مي كند. در پياده سازي سان ،هر ماشين يك فرايند كارگزار در خارج از هسته دارد كه وظايف پروتكل را انجام مي دهد. : RPCب لوكهايس ازنده ايهستند ك ه ب رايپ ياده س ازيدستيابيف ايلراه دور موجود استفاده ق رار گ رفتند. 114 فصل دوازهم :پیاده سازی سیستم فایل ‏عمليات سوار كردن شامل نام دایركتوري راه دوري است كه بايد سوار شود و نام ماشين كارگزاري است كه بايد آن را ذخيره كند. ‏ در خواست سوار كردن به RPCمتناظر نگاشت مي شود و به كارگزار سواركننده اي ارسال مي شود ‏اين كارگزار يك ليست صادراتي را نگهداري مي كند كه سيستمهاي فايل محلي را مشخص مي نمايد همراه اين ليست ،اسامي ماشينهايي مشخص مي شوند كه اجازه سوار كردن آنها را دارند. اين مشخصات مي تواند شامل مجوزهاي دستيابي مثل فقط خواندني باشد. 115 فصل دوازهم :پیاده سازی سیستم فایل ‏براي س هولت نگهداري ليس تهاي ص ادراتي و جدولهاي س واركردن مي توان از طرح بندي نامگذاري توزيعي استفاده كرد آن را براي مشتريان مناسبي مهيا نمايد. ‏هر سيستم پيكربندي ايستايي از سوار كردن دارد كه هنگام راه اندازي اعمال مي شود .اما طرح بندي آن قابل تغيير است. ‏ پروتكل سوار كردن ،عالوه بر رويه سوار كردن واقعي حاوي رويه هاي ديگر مثل برگرداندن ليست صادراتي و خنثي كردن عمل سوار كردن است. 116 فصل دوازهم :پیاده NFSسیستم فایل سازی -3-9-12پروتكل پروتكل مجموعه اي از RPCرا براي عمليات فايل راه دور فراهم مي كند .اين رويه ها از عمليات زير پشتيباني مي كنند: جستجوي فايل در داخل يك دايركتوريخواندن مجموعه اي از وروديهاي دايركتوريدستكاري پيوندها و دايركتوريهادستيابي به صفات فايلخواندن و نوشتن فايلها117 فصل دوازهم :پیاده سازی سیستم فایل ‏اين رويه ها وقتي مي توانند فراخواني شوند كه دستگيره فايل براي دايركتوريي كه از راه دور سوار شده است .ايجاد شود ‏حذف عمليات Openو closeعمدي است. ‏ ويژگي مهم خدمات NFSاين است كه بي هويت هستند كارگزاران راجع به مشتريان خود را از يك دستيابي به دستيابي ديگر ،اطالعاتي را ذخيره نمي كنند هر درخواست بايد مجموعه كاملي از آرگومانها را از جمله شناسه منحصر بفرد فايل و آفست مطلق در فايل براي عمليات مناسب تعيين كند. 118 فصل دوازهم :پیاده سازی سیستم فایل ‏هر درخواست NFSداراي يك شماره دنباله است كه به كاربر اجازه مي دهد تا تعيين كند كه آيا درخواستي تكرار شده است يا درخواستي از بين رفته است. ‏تضمين مي شود كه فراخواني رويه براي نوشتن NFSاتمي است و با ساير فراخوانهاي نوشت ن براي همان فايل ،مخلوط نم ي شود .ام ا پروتكل NFS راهكارهاي كنترل همزمان را تدارك نمي بيند. ‏فراخوان س يستم writeممك ن اس ت ب ه چن د نوشت ن RPCتبديل شود. خدمات خراج از NESبايد عمل قفل كردن را تدارك ببيند به كاربران توصيه مي شود كه دستيابي به فايلهاي مشترك را با استفاده از راهكارهايي در خارج از حوزه NESهماهنگ كنند. 119 فصل دوازهم :پیاده سازی سیستم فایل ‏خدمات واقعKي در هKر كارگزار توسKط چنديKن فرايند هسKته اي انجام مKي شود كKه يKك جايگزينKي موقتي را براKي راهكار فرايند سبك (يا بندها) فراهم مي كند. 120 دیدگاه معنایی نسبت به فصل دوازهم :پیاده ‏NFS معماری مشتری کارگزار سازی سیستم فایل واسط فراخوKانهای سیستم واسط VFS واسط VFS سیستم فایل یونیکس کارگزار ‏NFS ‏RPC/XDR مشتری ‏NFS ‏RPC/XDR دیسک 121 سیستم فایل یونیکس شبکه دیسک انواع دیگری از سیستمهای فایل فصل دوازهم :پیاده سازی سیستم فایل -4-9-12ترجمه نام مسير ترجمه نام مسير به اين صورت انجام مي گيرد كه مسير به اسامي مولفه ها تبديل مي گردد و براي هر جفت از نام مولفه و دايركتوري vnodeيك فراخوان lookupمربوط به NESانجام مي گيرد. با رسيدن به نقطعه سوار كردن‌،هر جستجوي مولفه منجر به RPCجداگانه اي مي شود. ‏ اين الگوي ترجم ه نام مس ير ،گران اس ت ،ول ي ضروري اس ت .اگ ر با رسيدن به نقطه سوار كردن ،نام مسير به كارگزار تحويل شود و vnodeمقصد بازيابي گردد كارآمدتر است. 122 فصل دوازهم :پیاده سازی سیستم فایل -5-9-12عمليات راه دور به استثناي باز كردن و بستن فايل ،بين فراخوانهاي سيستم يونيكس براي عمليات فايل و RPCهاي پروتكل NFSتقريبا ً يك تناظر يك به يك وجود دارد .بنابراين يك عميات فايل راه دور مي تواند مستقيما ً به RPCمتناظر ترجمه شود. دو حافظه پنهان وجود دارد: .1حافظه پنهان صفت فايل (اطالعات گره شاخص) .2حافظه پنهان بلوكهاي فايل 123 فصل دوازهم :پیاده سازی سیستم فایل بلوكهاي فايلي كه در حافظه پنهان قرار دارند فقط وقتي مورد استفاده قرار مي گيرند كه صاف متناظر با آنها كه در حافظه پنهان وجود دارد نوسازي شده باشد. ‏ هر وقت صفت جديدي از كارگزار مي رسد ،صفات موجود در حافظه پنهان نوسازي مي شود. 124 صل سیزدهم سیستم های O دانشگاه آزاد اسالمي واحد قائمشهر عداد اسالید فصل سیزدهم88 12 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 126 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 127 فصل سیزدهم :پیاده سازی سیستم فایل دو کار اص لی کامپیوت ر عبارتن د از I/Oو پردازش .در اغل ب موارد کار اصلی کامپیوتر I/Oاست و پردازش کمتر مورد توجه است .نقش سیستم عامل در ، I/O مدیریت و کنترل عملیات و دستگاههای I/Oاست. 1-13مرور کلی چون دستگاههای I/Oاز نظر عملکرد و سرعت متنوع اند ( ماوس ،دیسک سخت و ، ) CD-ROMبرای کنترل آنها از روش های متعددی استفاده می شود. ‏این روش ها ،زیر سیستم I/Oمربوط به هسته را تشکیل می دهند که تعبیه هسته را از پیچیدگی مدیریت بر دستگاههای I/Oتفکیک می کند. 128 فصل سیزدهم :پیاده سازی سیستم فایل سیستم I/Oهای مرور کلی نظر سنجی سخت افزار I/O وقفه ها واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل دستیابی حافظه مستقیم زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 129 فصل سیزدهم :پیاده سازی سیستم فایل 2-13سخت افزار I/O کامپیوترها از دستگاههای متنوعی استفاده می کنند .مثل دستگاههای حافظه ( دیسک ها و نوارها ) ،دستگاههای انتقال ( کارت های شبکه) و دستگاههای واسط انسان ها ( صفحه نمایش ،صفحه کلید و ماوس ). ‏علی رغم تنوع دستگاههای I/Oکه می توانند در کامپیوتر مورد استفاده قرار گیرند ، باید بدانیم که دستگاهها چگونه به کامپیوتر متصل می شوند و نرم افزار چگونه سخت افزار را کنترل می کند. 130 فصل سیزدهم :پیاده سازی سیستم فایل هر دستگاه با ارسال سیگنال هایی از طریق کابل یا هوا ،با سیستم کامپیوتری ارتباط برقرار می کند که نقطه ی اتصال هر دستگاه را با کامپیوتر ،پورت می نامند. اگر یک یا چند دستگاه از مجموعه مشترکی از سیستم ها استفاده کند ،این اتصال را گذرگاه می نامند. گذرگاه ها استفاده وسیعی در معماری کامپیوتر دارند که در شکل صفحه بعد نمونه ای از ساختار گذرگاه PCرا نمایش می دهد. 131 نمونه ای از ساختار فصل سیزدهم :پیاده گذرگاه PC دیسک گذرگاه SCSI دیسک فایل سازی سیستم پردازنده دیسک حافظه پنهان دیسک حافظه کنترل کننده ‏SCSI کنترل کننده حافظه/پل مانیتور کنترل کننده گرافیک گذرگاه PCI واحد گذرگاه توسعه صفحه کلید گذرکاه توسعه 132 پورت سری پورت موازی کنترل کننده دیسک IDE دیسک دیسک دیسک دیسک فصل سیزدهم :پیاده سازی سیستم فایل ‏این شکل یک PCIرا نشان می دهد که زیرس یستم حافظه – پردازنده را به دس تگاههای س ریع اتص ال م ی ده د و ی ک گذرگاه توس عه را نشان م ی ده د که دستگاههای نسبتا کند مثل صفحه کلید و پورت های سری و موازی را اتصال می دهد. ‏ در سمت راست و باالی شکل ،چهار دیسک در گذرگاه SCSIبه هم متصل شده اندکه این گذرگاه به کنترل کننده SCSIمعروف است. کنترل کننده :مجموع ه ای از قطعات الکترونیک ی اس ت ک ه م ی توانن د به روی پورت ،گذرگاه ،یا دستگاه عمل کند. 133 فصل سیزدهم :پیاده سازی سیستم فایل کنترل کننده ی پورت سری :نمونه ای از کنترل کننده دستگاه ساده است ،این کنترل کننده تراشه ای ( ) Chipکه سیگنال های موجود در سیستم های یک پورت سری را کنترل می کند. پردازنده چگونه فرمان ها و داده ها را به کنترل کننده بدهد تا انتقال I/Oرا انجام دهد : کنترل کننده یک یا چند ثبات برای داده ها و سیگنال های کنترلی دارد .پردازنده از طریق خواندن و نوشتن بیت هایی این ثبات ها ،با کنترل کننده ارتباط برقرار می کند. ‏یک روش برقراری این ارتباط ،استفاده از دستورات I/Oخاصی است که انتقال بایت کلمه را به آدرس پورت I/Oمشخص می کند. 134 دستگاه در ‏I/O پورت محلهای فصل سیزدهم :پیاده سازی PCها سیستم فایل دستگاه بازه آدرس I/O (هگزادسیمال) کنترل کننده DMA 000-00F کنترل کننده وقفه تایمر کنترل کننده بازی پورت سری (ثانویه) 020-021 040-043 200-20F 2F8-2FF کنترل کننده دیسک سخت پورت موازی کنترل کننده گرافیکی 320-32F 378-37F 3D0-3DF کنترل کننده گرداننده دیسکت پورت سری (اولیه) 3F0-3F7 3F8-3FF 135 فصل سیزدهم :پیاده سازی سیستم فایل پورت I/Oمعموال از چهار ثبات به نام های وضعیت ،کنترلی ،ورودی و خروجی تشکیل شده است : ثبات وضعیت :حاوی بیت هایی است که میزبان ( کامپیوتری که پورت I/Oبه آن وصل است ) می تواند آنرا بخواند که این بیت ها حالت هایی را نشان می دهند. ثبات کنترل :توسط میزبان نوشته می شود تا فرمانی را شروع کند یا حالت دستگاه را تغییر دهد. ثبات ورودی :توسط میزبان خوانده می شود و میزبان در ثبات خروجی می نویسد ثبات های داده 1تا 4بایت هستند. ثبات خروجی :توسط میزبان نوشته می شود. 136 فصل سیزدهم :پیاده سازی سیستم فایل 1-2-13نظرسنجی پروتکل کامل برای تعامل بین میزبان و کنترل کننده می تواند پیچیده باشد ،اما ایده ی دست دادن ( )Hand shakingساده است. کنترل کننده حالت خود را از طریق بیت اشغال وضعیت اعالم می کند بیت اشغال : 1کنترل کننده در حال انجام کاری است. بیت اشغال : 0کنترل کننده آماده دریافت فرمان بعدی است. میزبان خواسته هایش را زا طریق بیت آمادگی فرمان اعالن می دارد .وقتی کنترل کننده فرمانی را برای اجرا داشته باشد ،بیت آمادگی فرمان را یک می کند. 137 فصل سیزدهم :پیاده سازی سیستم فایل مثال :فرض می کنیم برای هماهنگی رابطه تولید کننده – مصرف کننده بین کنترل کننده و میزبان ،از 2بیت استفاده می شود ؛ برای این مثال ،میزبان خروجی را از طریق یک پورت می نویسد و برای این منظور ،از طریق دست دادن که به صورت زیر انجام می شود ،با کنترل کننده هماهنگ می شود : .I .IIمیزبان بی ت نوشت ن را در ثبات فرمان 1م ی کن د و ی ک بایت را در ثبات میزبان دائما بیت اشغال را می خواند تا زمانی که این بیت 0شود. ورودی می نویسد. .IIIمیزبان بیت آمادگی فرمان را 1می کند. 138 فصل سیزدهم :پیاده سازی سیستم فایل .Vوقتی کنترل کننده متوجه می شود بیت آمادگی فرمان 1است ،بیت اشغال را 1 می کند. .VIکنترل کننده ثبات فرمان را م ی خوان د و فرمان نوشت ن را می بیند .ثبات خروجی را می خواند تا آن بایت را بگیرد و عمل I/Oرا در آن دستگاه انجام دهد. .VIIکنترل کننده بیت آمادگی فرمان را 0می کند ،بی ت خطا را در ثبات وضعیت پاک می کند تا موفقیت I/Oدستگاه را نشان دهد و بیت اشغال را 0 می کند تا پایان کارش را اعالن نماید. ای ن حلق ه برای ه ر بای ت ادام ه م ی یابد .در مرحله ی 1میزبان در حال انتظار مشغولی یا نظرسنجی است ،یعنی در حلقه ای قرار دارد که ثبات وضعیت را 139می خواند تا اینکه بیت اشغال برابر 0شود. فصل سیزدهم :پیاده سازی سیستم فایل 2-2-13وقفه ها روش کار وقفه به این صورت است : ‏سخت افزار CPUسیمی به نام خط درخواست وقفه دارد که CPUپس از اجرای هر دستور آن را حس می کند. ‏اگر CPUپی ببرد که کنترل کننده ای سیگنالی را در خط درخواست وقفه قرار داده است CPU ،حالت فعلی ،مثل مقدار اشاره گر دستور را ذخیره می کند و به روال وقفه می رود. 140 فصل سیزدهم :پیاده سازی سیستم فایل ‏روال وقفه علت وقوع وقفه را تعیین می کند ،پردازش الزم را انجام می دهد و دس تور برگشت از وقف ه را اجرا می نماید تا CPUبه حال ت قبلی برود و اجرای دستوری را که دچار وقفه شده است ادامه دهد. ‏می گوییم کنترل کننده دستگاه با قرار دادن سیگنالی در خط درخواست وقفه ، وقفه را ایجاد می کند CPU ،وقفه را می گیرد و به روال وقفه می فرستد و روال وقفه به آن خدمات می دهد و وقفه را از بین می برد. در شکل صفحه بعد چرخه I/Oمبتنی بر وقفه را نشان می دهد. 141 بر مبتنی ‏I/O چرخه فصل سیزدهم :پیاده گرداننده دستگاه I/O وقفه را شروع می کند سازی سیستم فایل ‏CPU کنترل کننده I/O اجرای CPUبرای بررسی وقفه ها بین دستورات 2 شروع I/O 3 آمادگی ورودی ،کامل شدن خروجی یا خطا تولید سیگنال وقفه 1 CPUوقKفه Kرا درKیافKت مKیکKKند و کKKنترلرا وقKفه KمKنتقل بKKKه KرواKKل مKیکKKند 5 4 روال وقفه داده ها را پردازش می کند و از وقفه برمی گردد 6 142 CPUوظKیفه KبKKهK تKKاخیر اKفKتادKه Kرا از سKKر مKیگKKیرد 7 فصل سیزدهم :پیاده سازی سیستم فایل ‏نکته :این راهکار وقفه CPU ،را قادر می سازد تا به رویداد ناهمگام ،مثل آماده شدن یک دستگاه برای خدمات پاسخ دهد. اغلب CPUها دو خط درخواست وقفه دارند ؛ •وقفه پوشش ناپذیر ( : )Nonmaskableبرای رویداد هایی مثل خطاهای کشف نشدنی حافظه ی رزرو شده است. •وقفه پوشش پذیر ( CPU : )Maskableمی تواند آنها را به تاخیر اندازد و دنباله ای از دستورات مهم را اجرا نماید. 143 فصل سیزدهم :پیاده فایل سیستم سازی ‏راهکار وقفه ،سیستمی از سطوح اولویت وقفه را نیز پیاده سازی می کند .این راهکار به CPUاجازه می دهد که بدون غیرفعال کردن تمام وقفه ها ،وقفه های اولویت پایین را به تاخیر اندازد و وقفه ای با اولویت باال می تواند اجرای وقفه ای با اولویت پایین را قبضه کند. ‏وقفه ها برای مدیریت بر کنترل جریان در هسته به کار می روند .به عنوان مثال ،پردازش الزم برای کامل شدن عمل خواندن از دیسک را در نظر بگیرید : •مرحله اول :کپی کردن داده از فضای هسته به بافر کاربر است .این عمل کپی منجر به اتالف زمان می شود ولی فوری نیست یعنی نمی تواند روال وقفه با اولویت باال را مسدود کند. 144 فصل سیزدهم :پیاده سازی سیستم فایل •مرحله دوم :این است که I/Oدیگری که از آن گرداننده دیسک به تعویق افتاده است ،اجرا شود .این مرحله اولویت باالتری دارد .برای اینکه دیسک بطور کارآمد مورد استفاده قرار گیرد ،الزم است بالفاصله پس از کامل شدن یک عمل I/O بعدی شروع شود. ‏تذکر :وقفه در سیستم های عامل مدرن رویدادهای ناهمگام را پردازش می کنند و تله ای را به روال های حالت ناظر در هسته می فرستد. 145 فصل سیزدهم :پیاده سازی سیستم فایل 3-2-13دستیابی حافظه مستقیم برای دستگاههایی مثل گرداننده ی دیسک که انتقال داده ها در آن زیاد است ،استفاده از پردازنده همه ی منظوره گران ،برای مشاهده بیت های وضعیت و واکشی داده ها در ثبات کنترل کننده ی دستگاه ،که در اصطالح فرآیند I/O ،برنامه نویسی شده ()PIC نام دارد ،معقول نیست. ‏بسیاری از کامپیوتر ها بعضی از این کارها را به پردازنده ی خاصی به نام کنترل کننده ی دستیابی حافظه ی مستقیم (Direct Virtual Memory Access )-DMAواگذار می کنند تا از مسئولیت پردازنده اصلی کاسته شود. 146 فصل سیزدهم :پیاده انتقال DMA؛ انتقال : DMAبرای شروع سیستم فایل سازی ‏میزبان یک بلوک فرمان DMAرا در حافظه می نویسد این بلوک حاوی اشاره گری به منبع انتقال ،اشاره گری به مقصد انتقال ،و تعداد بایت هایی است که باید انتقال یابد. CPUآدرس این ب لوکف رمان را در ک نترل ک ننده DMAمین ویسد و س پس ب ه ک ار دیگریمیپ ردازد. ‏کنترل کننده DMAمستقیما بروی گذرگاه حافظه عمل کند ؛ برای این کار آدرس ها را در گذرگاه قرار می دهد تا بدون نیاز به کمک CPUاصلی ،انتقال را انجام دهد. ‏یک کنترل کننده ی DMAساده ،قطعه استانداردی در PCاست و بردهای 147 I/Oمعموال حاوی سخت افزار DMAهستند. .5کنترل کننده DMAبایتها را ‏DMA دستگاه است کننده ‏C=0 کنترل وقتی .1به 6.2 گننده کنترل به دستگاه گرداننده به میانگیری Xمیفرستد، های می داده ‏CPU شود میبه ای را داده وقفه دستور را از بایت ‏C دهد می دستور دیسک می Xیابد افزایش حافظه آدرس آدرس میانگیری در دیسک محل عمل شدندر میانگیری بهکامل رابهتا فرستد دیسک دهد .به صفر کاهد تا می ‏C و از انتقال دهد. دهد خبر انتقال انتقال را ‏X برسد. انتقال :پیاده سیزدهم فصل ‏DMA مراحل ‏CPU حافظهسیستم فایل سازی پنهان میانگی ر ‏X حاف گذرگاه حافظه CPU ظه کنترل کننده وقفه /DMA/ گذرگاه گذرگاه PCI کنترل کننده IDEدیسک .4کنترل کننده دیسک هر بایت دیسک دیسک دیسک دیسک دیسکDMA کننده کننده کنترلکنترل .3را به انتقال میفرستد.میکند. DMAرا شروع 148 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 149 دستگاه های کاراکتری و بلوKکی دستگاه های شبکه ساعت و تایمر I/OبKKا اKنKسداد و بKKدوKناKنKسداد فصل سیزدهم :پیاده سیستم فایل سازی 3-13واسط I/Oبرنامه کاربردی در این بخش به سازماندهی تکنیکها و واسط ها برای سیستم عامل می پردازیم که توسط این سازماندهی با دستگاههای I/Oبه شکل استاندارد و یکنواخت برخورد می شود. ‏در این بخش نیز مثل سایر مسائل پیچیده مهندسی نرم افزار ،رهیافت انتزاعی ، بسته بندی و الیه بندی نرم افزار استفاده می شود. ‏ کنیم. 150 می توانیم جزئیات تفاوت ها دستگاههای I/Oرا با یافتن انواع کلی ،انتزاعی فصل سیزدهم :پیاده سازی سیستم فایل ‏هر یک از این انواع کلی ،از طریق مجموعه ای از توابع استاندارد به نام واسط ، دستیابی می شوند. ‏ تفاوت های واقعی در پیمانه های هسته به نام گرداننده های دستگاه بسته بندی می شوند. شکل صفحه ی بعد نشان می دهد که بخشهای مربوط به I/Oهسته ،در الیه های نرم افزار سازماندهی شده است. 151 دستگاه های (ATAPI دیسکها، گرداننده 152ها و گردانند ه های دستگاه فالپی گذرگاه ‏PCI ماوس صفحه کلید دستگاه های ‏SCSI سخت افزار گردانند گردانند گردانند ه ه ه دستگاه دستگاه دستگاه گذرگاه ATAPIفالپی ‏PCI کنترل کنترل کنترل کننده کننده کننده دستگاه دستگاه دستگاه گذرگاه ATAPIفالپی ‏PCI گردانند گردانند گردانند ه ه ه دستگاه دستگاه دستگاه صفحه ‏SCSI ماوس کلید کنترل کنترKل کنترل کننده کننده کننده دستگاه دستگاه دستگاه صفحه ‏SCSI ماوس کلید نرم افزار هسته ساختار I/O پیاده سیزدهم : فصل هسته هسته فایل سیستم سازی زیر سیستم I/O فصل سیزدهم :پیاده سازی سیستم فایل ‏هدف الیه ی گرداننده ی دستگاه ،مخفی کردن تفاوت های بین کنترل کننده دستگاه از زیر سیستم I/Oهسته است. ‏فراخوان های سیستم I/Oرفتار دستگاه ها را در کالس های کلی بسته بندی می کند تا تفاوت های سخت افزار را از برنامه های کاربردی پنهان نماید. ‏ استقالل زیرسیستم I/Oاز سخت افزار ،کار طراحی می کنند تا با واسط کنترل کننده ی میزبان موجود مث ل SCSI-2همس از باش د ی ا گرداننده های دس تگاهی می نویسند که واسط سخت افزار جدید و سیستم عامل معروف باشد. 153 فصل سیزدهم :پیاده سازی سیستم فایل ‏بنابراین ،دستگاههای جانبی جدید می توانند بدون نیاز به نوشتن گرداننده جدید ،به کامپیوتر متصل شوند. ‏نکت ه :برای کارخان ه های س ازنده دس تگاهها ،س یستم عام ل ،استاندارد خاص خودش را برای واس ط گرداننده دس تگاه دارد .ی ک دس تگاه ممک ن اس ت ب ا چندین گرداننده دس تگاه ب ه کار افتد .ب ه عنوان مثال م ی توان د ب ا گرداننده های دستگاه در ، MS-DOSویندوز 98و ویندوز NTکار کند. دستگاههای انواع گوناگونی دارند که در شکل صفحه بعد آمده است. 154 سیزدهم :پیاده فصل دستگاههای I/O های ویژگی سیستم فایل سازی حالت موضوKع مثال حالت انتقال داده کاراکتر بلوک پایانه دیسک روش دستیابی ترتیبی تصادفی مودم ‏CD-ROM زمانبندی انتقال همگام ناهمگام نوار صفحه کلید اشتراک اختصKاصی قابل اشتراک نوار صفحه کلید سرعت دستگاه تاخیر زمان پیگرد نرخ انتقال تاخیر بین عملیات ‏I/O فقط خواندنی فقط نوشتنی خواندنی و نوشتنی 155 ‏CD-ROM کنترل کننده های گرافیکی فصل سیزدهم :پیاده سازی سیستم فایل حالتهای دستگاهها شامل : •بلوک یا جریان کارکتری :دس تگاه جریان کارکتری ،اطالعات را بایت به بایت انتقال می دهد در حالی که دستگاه بلوکی اطالعات را بلوک به بلوک منتقل می کند. •دستیابی تصادفی یا ترتیبی :دستگاه ترتیبی داده ها را به ترتیب خاصی منتقل می کند ( با توجه به آن دستگاه ) ،در حالی که کاربر دستگاه تصادفی می تواند به آن دستور دهد که محل خاصی از داده ها را بخواند. •همگامی یا ناهمگامی :دستگاه همگام داده ها را در زمان پاسخ معینی ،انتقال می دهد و دستگاه نا همگام زمان پاسخ نا منظم و غیر قابل پیشبینی دارد. 156 فصل سیزدهم :پیاده سازی سیستم فایل •قابل اشتراک یا اختصاصی :دستگاه قابل اشتراک ،همزمان توسط چند بند یا فرآیند مورد استفاده قرار می گیرد و در اختصاصی اینطور نیست. •سرعت عملیات :دستگاه ها می توانند از یک بایت تا چند بایت را در ثانیه انتقال دهند. •خواندن و نوشتن ( فقط خواندنی و یا فقط نوشتنی ) :بعضی از دستگاه ها عمل ورودی خروجی را انجام می دهند و بعضی فقط عمل نوشتن و بعضی فقط عمل خواندن را انجام می دهند. 157 فصل سیزدهم :پیاده سازی سیستم فایل ‏سبک هایی برای دستیابی به دستگاه ها وجود دارد که قواعد این دستیابی شامل I/O بلوک I/O ،جریان کارکتری ،دستیابی فایل با نگاشت حافظه و سوکت های شبکه است. ‏سیستم عامل فراخوان های سیستمی را برای دستیابی به دستگاههای مثل ساعت و زمان سیستم فراهم می کند. ‏بعض ی از س یستم عام ل ه ا فراخوان های س یستمی را برای دس تگاههای نمایش گرافیک ،تصویر و صوت فراهم می کنند. 158 فصل سیزدهم :پیاده فایل سیستم سازی اغلب سیستم های عامل دارای یک فراخوان سیستم بنام «گریز» یا «درعقب» دارند که فرمانهایی را از یک برنامه کاربردی به گرداننده دستگاه ارسال می کنند .در یونیکس این فراخوان سیستم ioctrlنام دارد. فراخوان سیستم ، ioctrlیک برنامه ی کاربردی را قادر می سازد تا تمام عملیاتی که توسط هر گرداننده ی دستگاهی قابل پیاده سازی اند ،دستیابی داشته باشد و دارای 3 پارامتر است که قادر می سازد برنامه کاربردی و گرداننده های دستگاه با هم ارتباط برقرار کنند : توصیف گر فایل :متصل کننده ی برنامه های کاربردی به گرداننده دستگاه یک مقدار صحیح :انتخاب فرمان های پیاده سازی شده در گرداننده دستگاه یک اشاره گر :اشاره به یک ساختمان داده ی اختیاری 159 فصل سیزدهم :پیاده سازی سیستم فایل 1-3-13دستگاههای کارکتری و بلوکی دستیابی فایل با نگاشت حافظه می تواند در باالی گرداننده های دستگاه بلولی قرار گیرد. ‏ به جای عملیات خواندن و نوشتن ،واسط نگاشت حافظه ،دستیابی به حافظه دیسک را از طریق آرایه ای از بایت های موجود در حافظه ی اصلی امکان پذیر می سازد. ‏ فراخوان سیستمی که فایلی را در حافظه نگاشت می کند ،آدرس حافظه مجازی آرایه ای از کارکترها را بر می گرداند که حاوی یک کپی از فایل است. 160 فصل سیزدهم :پیاده سازی سیستم فایل ‏انتقال واقعی داده ها زمانی انجام می شود که دستیابی به تصویر حافظه انجام شود. چون راهکار انجام این انتقال ها شبیه راهکار دستیابی حافظه ی مجازی صفحه بندی درخواستی بکار گرفته شد I/O ،نگاشت حافظه ،کارآمد است. ‏نگاشت حافظه برای برنامه نویسان ساده است ،چون دستیابی به فایل نگاشت حافظه به سادگی خواندن و نوشتن در حافظه است. ‏معموال سیستم عامل ،حافظه مجازی را برای نگاشت واسط خدمات هسته فراهم 161می کند. فصل سیزدهم :پیاده سازی سیستم فایل 2-3-13دستگاههای شبکه چون ویژگی کارایی و آدرس دهی I/Oشبکه متفاوت از I/Oدیسک است ،اغلب سیستمهای عامل یک واسط I/Oشبکه را تدارک می بینند که متفاوت از واسط خواندن – نوشتن – پیگرد در دیسک است .واسطی که در بسیاری از سیستم های عامل وجود دارد ،واسط سوکت شبکه است. ‏فراخوان سیستم در واسط سوکت ،برنامه کاربردی را قادر می سازد تا سوکتی را ایجاد نماید .سوکت محلی را به آدرس راه دور متصل می کند ،به هر برنامه کاربردی گوش می دهد تا به سوکت محلی وصل کند ،و بسته ها را از طریق این اتصال ، ارسال و دریافت کند. 162 فصل سیزدهم :پیاده فایل سیستم سازی selectرا تدارک تابعی به نام کارگزاران ،واسط سوکت ‏برای پشتیبانی از می بیند که مجموعه ای از سوکت ها را مدیریت می کند. ‏فراخوان ی selectاطالعات ی را بر م ی گردان د ک ه مشخ ص م ی کن د چه سوکتهایی منتظرند تا بسته ها را تحویل دهند ،و چه سوکتی آماده دریافت بسته ها است. ‏ استفاده از selectمنجر به حذف نظرس نجی و انتظار مشغولی برای I/O شبک ه م ی شود .ای ن تواب ع رفتارهای اس اسی شبک ه ه ا را بس ته بندی م ی کنند و مخصوصا ایجاد برنامه های توزیعی را آسان می کند. 163 فصل سیزدهم :پیاده سازی سیستم فایل 3-3-13ساعت و تایمر کامپیوترها دارای ساعت و تایمر سخت افزاری اند که سه عمل را انجام می دهند : •تعیین زمان جاری •تعیین زمان تلف شده •تنظیم تایمر برای اجرای عملیات Xدر زمان T این اعمال توسط سیستم عامل و برنامه های کاربردی حساس به زمان مورد استفاده قرار می گیرد .متاسفانه فراخوانهای سیستمی که این اعمال را پیاده سازی می کنند ، در سیستم های عامل استاندارد نیستند. 164 فصل سیزدهم :پیاده سازی سیستم فایل ‏سخت افزار الزم برای اندازه گیری زمان تلف شده و شروع اجرای عملیات ،تایمر فاصله زمانی قابل برنامه نویسی نام دارد. ‏ می توان تایمر را طوری تنظیم کرد که برای مدت زمانی منتظر بماند و سپس وقفه ای را صادر کند .این راهکار توسط زمانبند مورد استفاده قرار می گیرد. ‏زمانبند وقفه ای را صادر می کند که فرآیند را در انتهای برهه زمانی اش قبظه می کند .زیر سیستم I/Oاز آن استفاده می کند تا میانگرهای پنهان را در دوره های زمانی معینی بر روی دیسک بنویسد ،توسط زیر سیستم شبکه مورد استفاده قرار می گیرد تا عملیات را لغو کند که به دلیل خرابی و ترافیک شبکه بسیار کند اجرا می شوند. 165 فصل سیزدهم :پیاده سازی سیستم فایل ‏سیستم عامل از طریق شبیه سازی ساعتهای مجازی ،می تواند درخواست های تایمر بیشتری را نسبت به کانال های سخت افزاری تایمر پشتیبانی کند. ‏برای ای ن کار ،هس ته ( ی ا گرداننده دس تگاه تایم ر ) ،لیس تی از وقف ه هایی را نگهداری می کند که توسط تایمر آن درخواست شده است. ‏وقتی تایمر وقفه ها را صادر می کند ،هسته سیگنالی رل به درخواست کننده می فرستد و قدیمیترین زمان بعدی را در تایمر قرار می دهد. 166 فصل سیزدهم :پیاده سازی سیستم فایل I/O 4-3-13با انسداد و بدون انسداد وقتی برنامه کاربردی فراخوان سیستمی مسدود کننده را اجرا می کند ،اجرای برنامه کاربردی به تعویق می افتد. ‏این برنامه کاربردی از صف اجرای سیستم عامل به صف انتظار می رود .پس از کامل شدن فراخوان سیستم ،آن برنامه به صف اجرا بر می گردد و برای از سر گیری اجرا مناسب است. ‏ در آن زمان ،مقادیر برگشتی از فراخوان سیستم را دریافت می کند .فعالیت های فیزیکی که به وسیله ی دستگاه های I/Oانجام می شوند معموال ناهمگام هستند ،یعنی زمان مربوط به آنها متغیر یا غیر قابل پیشبینی است. 167 فصل سیزدهم :پیاده سازی سیستم فایل ‏با این وجود اغلب سیستم عامل ها از فراخوانهای س یستم مسدود کننده برای واسط برنامه کاربردی استفاده می کنند ،زیرا درک کد برنامه کاربردی مسدود کننده نسبت به کد برنامه کاربردی بدون انسداد ساده تر است. ‏بعضی از فرآیندهای سطح کاربر نیازمند I/Oبدون انسداد هستند .نمونه ای از آ ن ،واس ط کاربری اس ت ک ه هنگام پردازش و ظاه ر کردن داده ه ا در صفحه نمایش ،ورودیهای صفحه کلید و ماوس را می خواند. ‏فراخوانی بدون انسداد ،برنامه کاربردی را برای مدت زمان طوالنی متوقف نمی کند بلکه سریعا خاتمه می یابد و مقداری را برمی گرداند که مشخص می کند چند بایت منتقل شده است. 168 فصل سیزدهم :پیاده سازی سیستم فایل شکل دیگری از فراخوان سیستم بدون انسداد ،فراخوان سیستم ناهمگام است. فراخوانی نا همگام ،فورا برگشت می کند و منتظر نمی ماند که I/Oکامل شود. برنامه کاربردی اجراش کدش را ادامه می دهد ،و کامل شدن I/Oدر زمان آینده به برنامه کاربردی ارتباط دارد .این ارتباط ممکن است به دو صورت انجام شود : ‏از طریق مقدار دادن به متغیری در فضای آدرس برنامه کاربردی ‏از طریق صدور یک سیگنال یا وقفه نرم افزاری یا اجرای روال فراخوانی – برگشت که در خارج از جریان کنترل خطی برنامه کاربردی اجرا می شود. 169 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی زمانبندی I/O زیر سیستم I/Oهسته میانگیری تبدیل درخواست های I/Oبه عملیات سخت افزاری ذخیره در حافظه پنهان مجرا ها کارآیی اسپولینگ و رزرو کردن دستگاه پردازش خطا ساختمان داده هسته 170 فصل سیزدهم :پیاده سازی سیستم فایل 4-13زیرسیستم I/Oهسته 1-4-13زمانبندی I/O زمانبندی مجموع ه ای از درخواس ت های I/Oب ه معنای تعیی ن ترتی ب اجرای آنها است .زمانبندی می تواند کارایی سیستم را بهبود بخشد ،می تواند دستیابی اشتراکی دستگاهها را برای فرآیندها فراهم کند ،و می تواند میانگین زمان انتظار برای کامل شدن I/Oرا کاهش دهد. ‏توس عه دهندگان س یستم عام ل برای پیاده س ازی زمانبندی ،برای ه ر دستگاه ، صفی از درخواستها را نگهداری می کنند. 171  فصل سیزدهم :پیاده سازی سیستم فایل وقتی یک برنامه کاربردی ،فراخوان سیستمی I/Oبا انسداد را اجرا می کند ، آن درخواست در صف مربوط به آن دستگاه I/Oقرار می گیرد. ‏زمانبند I/Oترتیب صف را دوباره تنظیم می کند تا اثربخشی کل سیستم و میانگین و زمان پاسخ را بهبود بخشد. ‏روش دیگر برای بهبود اثربخشی ،استفاده از فضای ذخیره سازی در حافظه اصلی یا دیسک ،تکنیکهایی مثل میانگری ،حافظه پنهان و اسپولینگ است. 172 فصل سیزدهم :پیاده سازی سیستم فایل 2-4-13میانگیری میانگیر ،ناحیه ای از حافظه است که داده ها را در حین انتقال بین دو دستگاه یا بین یک دستگاه و یک برنامه کاربردی ذخیره می کند. میانگری به سه دلیل انجام می شود : •یکسان نبودن سرعت تولید کننده و مصرف کننده ی جریان داده ها •ایجاد هماهنگی بین دستگاههایی است که اندازه انتقال داده ها در آنها متفاوت است ، معموال در شبکه های کامپیوتری پیش می آید که در آنها ،میانگرها برای تکه تکه کردن و مونتاژ مجدد پیامها به کار می روند. •پشتیبانی از معنای کپی برای I/Oاست. 173 Enterpriseمدل سان دستگاه انتقال نرخ فصل سیزدهم :پیاده ( 6000لگاریتمی) سازی سیستم فایل گذرگاه گیگا ‏SBUS گذرگاه SCSI اترنت سریع دیسک سخت اترنت چاپگر لیزری موKدم ماوس صفحه کلید 100 1,000 174 00 000 00 0 0 , , , 0 0 10 00 10 , 1 10 1 0.1 0.01 0 فصل سیزدهم :پیاده سازی سیستم فایل ‏کپ ی کردن داده ه ا بی ن میانگیرهای هس ته و فضای داده ی برنامه کاربردی سربارهایی دارد ولی برای حفظ صحت داده ها ضروری است. 3-4-13ذخیره در حافظه پنهان حافظه پنهان ناحیه ای از حافظه سریع است که کپی هایی از داده ها را ذخیره می کند .دستیابی به داده های کپی شده در حافظه پنهان ،کارآمدتر از داده های اصلی است. تفاوت بین میانگیر و حافظه ی پنهان این است که میانگیر تنها کپی یک قلم داده را نگهداری می کند ،در حالی که حافظه پنهان طبق تعریف ،یک کپی از یک قلم داده را در حافظه سریع ذخیره می کند و داده اصلی می تواند در هر جای دیگری باشد. 175 فصل سیزدهم :پیاده سازی سیستم فایل ‏حافظه پنهان و میانگیری دو عمل جدا هستند ،اما گاهی یک ناحیه ی حافظه می تواند برای هر دو منظور مورد استفاده قرار گیرد. 4-4-13اسپولینگ و رزرو کردن دستگاه انباره میانگیری است که خروجی دستگاهی مثل چاپگر را که نمی تواند جریان های ورودی ناپیوسته را بپذیرد ،نگهداری می کند. گرچه چاپگر می تواند در هر لحظه به یک کار خدمات دهد ،ممکن است چندین برنامه کاربردی بخواهند خروجیهایی را همزمان تولید کنند ولی خروجی آنها با هم مخلوط نشود. 176 فصل سیزدهم :پیاده فایل سیستم سازی ‏سیستم عامل این مسئله را با ربودن تمام خروجی ها ارسالی به چاپگر حل می کند .ای ن خروج ی بر روی دیس ک دخیره م ی شود .وقت ی خروج ی ی ک برنامه کاربردی تمام شد ،سیستم اسپولینگ ،فایل خروجی متناظر با آن را در صف چاپ قرار می دهد. ‏ در بعضی از سیستم های عامل ،اسپولینگ توسط یک فرآیند دمون سیستم انجام می شود .در سیستمهای دیگر این کار توسط بندی در داخل هسته انجام می شود .در هر دو حالت ،سیستم عامل یک واسط کنترلی را تدارک می بیند که کاربر و مدیران سیستم می توانند با استفاده از آن ،صف را نمایش دهند ،کارهایی را قبل از چاپ از صف خارج کنند ،عمل چاپ را به تعویق اندازند و غیره. 177 فصل سیزدهم :پیاده سازی سیستم فایل سیستم عامل از طریق اسپولینگ می تواند خروجی همزمان را هماهنگ کند .روش دیگر برای اداره کردن دستیابی به دستگاه همزمان ،ارائه امکاناتی برای هماهنگی است. 5-4-13پردازش خطا سیستم عاملی که از حافظه ی حفاظت شده استفاده می کند ،در مقابل بسیاری از خطا های سخت افزاری و نرم افزاری در امان است ،به طوری که خرابی کل سیستم ناشی از اشکاالت مکانیکی کوچک نیست .سیستم عامل می تواند خرابی های موقتی را جبران کند. 178 فصل سیزدهم :پیاده سازی سیستم فایل ‏قاعده کلی این است که فراخوان سیستم I/Oیک بیت از اطالعات را راجع به وضعیت آن فراخوانی بر می گرداند که مشخص می کند با موفقیت انجام شده است یا خیر ( .به عنوان مثال Ackو Nakبرای تایید دریافت داده در جواب به دستور sendدر شبکه های کامپیوتری ) ‏در سیستم عامل یونیکس ،یک متغیر صحیح به نام errnoبرای برگرداندن کد خطا مورد استفاده قرار می گیرد و ماهیت خطا را نشان می دهد .سخت افزار می تواند جزئیات بیشتری از اطالعات مربوط به خطا را ارائه کند ،ولی بسیاری از سیستمهای عامل فعلی ،این اطالعات را به برنامه کاربردی منتقل نمی کنند. 179 فصل سیزدهم :پیاده سازی سیستم فایل 6-4-13ساختمان داده هسته هسته باید اطالعات حالت مولفه های I/Oرا نگهداری کند .این کار را با استفاده از ساختمانهای موجود در هسته انجام می دهد ،مثل ساختار جدول فایل باز. ‏در یونیکس دستیابی به نهادهای گوناگونی مثل فایلهای کاربر ،دستگاههای خام ، و فضای آدرس فرآینده ا امکان پذیر است .گرچه هر ی ک از این نهاده ا از عمل readپشتیبانی می کنند ،معنا شناسی آنها متفاوت است. ‏یونیکس این تفاوت را با استفاده از تکنیک شئ گرا ،در یک ساختار یکنواخت بسته بندی می کند. 180 یونیکس ساختار هسته سیزدهم :پیاده فصل جدول فرایند باز در سیستم فایل سیستم جدول گرهسازی شاخص فعال جدول اطالعاتی شبکه 181 رکورد سیستم فایل اشاره گر گره شاخص اشاره گر به توابع خواندن و نوشتن اشاره گر به تابع select اشاره گر به تابع ioctl اشاره گر به تابع close جدول فرایند باز در فرایند توصیفگر فایل رکورد (سوکت) شبکه اشاره گر به اطالعات شبکه اشاره گر به توابع خواندن و نوشتن اشاره گر به تابع select اشاره گر به تابع ioctl اشاره گر به تابع close حافظه هسته حافظه فرایند کاربر فصل سیزدهم :پیاده سازی سیستم فایل ‏بعضی از سیستمهای عامل به طور گسترده تری از تکنیک شئ گرایی استفاده می کنند .به عنوان مثال ،ویندوز NTبرای I/Oاز پیاده سازی ارسال پیام استفاده می کند. درخواست I/Oبه پیامی تبدیل می شود که از طریق هسته به مدیر I/Oو سپس به گرداننده دستگاه ارسال می گردد که هر کدام از آنها می توانند محتویات پیام را تغییر دهند. ‏ برای عم ل خروج ی پیام حاوی داده های ی اس ت که بای د چاپ شود .برای عمل ورودی ،پیام حاوی میانگیری برای دریافت داده ها است. 182 فصل سیزدهم :پیاده سازی سیستم فایل زیر سیستم I/Oموارد زیر را نظارت می کند : ‏مدیریت بر فضای نام برای فایلها و دستگاهها ‏کنترل دستیابی به فایلها و دستگاهها ‏کنترل عملیاتی دستگاهها ( مثال مودم نمی تواند seekرا اجرا کند ) ‏تخصیص فضای سیستم فایل ‏تخصیص دستگاه 183 فصل سیزدهم :پیاده سازی سیستم فایل میانگیری ،حافظه پنهان ،اسپولینگ زمانبندی I/O نظارت بر وضعیت دستگاه ،پردازش خطا و ترمیم خطا پیکربندی گرداننده دستگاه و مقداردهی اولیه ‏نکته :سطوح باالتر زیر سیستم ، I/Oاز طریق واسط یکنواختی که به وسیله گرداننده دستگاهها تهیه می شود ،به دستگاهها دستیابی دارند. 184 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 185 فصل سیزدهم :پیاده سازی سیستم فایل 5-13تبدیل درخواستهای I/Oبه عملیات سخت افزاری در این بخش به چگونگی درخواست سیستم عامل و اتصال برنامه های کاربردی با مجموعه ای از سیستم های شبکه یا قطاع خاصی از دیسک می پردازیم. برای خواندن فایل از دیسک ،سیستم فایل باید از طریق نام فایل نگاشتی را در دایرکتوری ها انجام دهد تا فضای تخصیص یافته به فایل را بدست آورد. ‏در یونیکس نام به شماره شاخص گره نگاشت می شود و آن گره شاخص حاوی اطالعاتی راجع به تخصیص فضا است. 186 فصل سیزدهم :پیاده سازی سیستم فایل اتصال نام فایل به کنترل کننده دیسک :ابتدا MS-DOSرا در نظر می گیریم که یک سیستم عامل ساده است. ‏ بخشی از نام فایل در MS-DOSکه قبل از حرف :قرار دارد ،رشته ای است که دستگاه سخت افزاری را مشخص می کند به عنوان مثال “ ”:Cبخش اول نام تمام فایل های موجود در اولین دیسک سخت است. 187 فصل سیزدهم :پیاده سازی سیستم فایل ‏اگر فضای نام دستگاه به فضای نام سیستم فایل الحاق شود ( مثل یونیکس ) ، خدمات عادی نام سیستم فایل به طور خودکار فراهم می شود. اگر سیستم فایل کنترل دستیابی و مالکیت را به اسامی تمامی فایلها اعمال کند ، آنگاه دس تگاه ه ا دارای کنترل دس تیابی و مالکی ت خواهن د بود .چون فایلها در دستگاهها ذخیره می شوند این واسطهای دستیابی سیستم I/Oرا در دو سطح انجام می دهد : •اسامی برای دستیابی به خود دستگاهها •دستیابی به فایلهای ذخیره شده در دستگاهها 188 فصل سیزدهم :پیاده سازی سیستم فایل ‏یونیکس اسامی دستگاهها را در فضای نام سیستم فایل قرار می دهد .برخالف نام فایل در MS-DOSکه حرف :به عنوان جداکننده نام دستگاه است ،نام مسیر در یونیکس فاقد کارکتر خاصی برای تفکیک نام دستگاه است. ‏بعضی از سیستمهای عامل قادرند کنترل کننده های دستگاه را برحسب نیاز بار کنند. 189 فصل سیزدهم :پیاده سازی سیستم فایل ‏در زمان راه اندازی کامپیوتر ،سیستم ابتدا گذرگاه سخت افزار را جستجو می کند تا دستگاههای موجود را شناسایی کنند و سپس گرداننده های الزم را بار کند .یا فورا آنها را بار کند یا هنگامی که توسط یک درخواست I/Oمورد نیاز واقع شود ، آن را بار می کند. ‏سیستم یونیکس Vراهکار جالبی به نام جریانها دارد که برنامه کاربردی را قادر می سازد کانالهای کد دستگاه را به طور خودکار مونتاژ کند. 190 I/OکKKامKلشKKد، داده های خروجی آماده است، یا خروجی کامل شده است سیزدهم :پیاده فصل درخواست I/O زندگی چرخه درخواست I/O فراخوان سیستم زیر سیستم سیستم فایل سازی I/OهستهK برگشت از فراخوان سیستم انتقال داده به فرایند ،اعالن پایان کار یا خطا بلی آیا درخواست برآورده میشود؟ خیر زیر سیستم I/OهستهK تعیین اینکه کدام I/Oکامل شد ،نمایش تغییر حالت در زیرسیستم I/O دریافت وقفه،ذخیره داده در میانگیر گرداننده دستگاه در صورت ورودی،ارسال سیگنال برای خارج کردن فرآیند از حالت انسداد وق فه تولید وقفه کامل شدن ،I/O 191 گرداننده دستگاه روال وقفه کنترل کننده دستگاه صفحه کلید زمان درخواست را به گرداننده ارسال کن ،درصورت لزوم فرآیند را مسدود کن درخواست فرآیند،صدور دستور به کنترل کننده،پیکربندی کنترل کننده برای مسدود شدن تا صدور وقفه فرمانهای کنترل کننده دستگاه دستگاه ناظر ،صدور وقفه پس از کامل شدن I/O فصل سیزدهم :پیاده سازی سیستم فایل این شکل بیان می کند که عملیات I/Oدر چندین مرحله انجام می شود که چرخه های زیادی از CPUرا مصرف می کند : .1 فرآیند ،فراخوان سیستم readرا به توصیفگر فایلی که قبال باز شده است صادر می کند. .2کد فراخوان س یستم در هسته صحت پارامتره ا را کنترل م ی کند .در حالت ورودی ،اگر داده ها در حافظه پنهان میانگیر آماده باشند ،به فرآیند برگرداننده می شوند و درخواست I/Oکامل می شود. 192 فصل سیزدهم :پیاده فایل سیستم سازی .3وگرنه نیاز به I/Oفیزیکی است ،لذا فرآیند از صف اجرا حذف می شود و در صف انتظار آن دستگاه قرار می گیرد .سرانجام ،زیر سیستم I/Oدرخواستی را به گرداننده ی دستگاه می فرستد .برحسب نوع سیستم ،درخواست از طریق فراخوانی یک زیربرنامه یا پیام داخل هسته ،ارسال می شود .4گرداننده دستگاه فضای میانگیر هسته را برای دریافت داده ها تخصیص می دهد و I/Oرا زمانبندی می کند .سرانجام ،گرداننده از طریق نوشتن در ثباتهای کنترل دستگاه ،فرمانهایی را به کنترل کننده دستگاه می فرستد. .5کنترل دستگاه سخت افزار دستگاه را به کار می اندازد تا انتقال داده ها را انجام 193 دهد. فصل سیزدهم :پیاده فایل سیستم سازی .6گرداننده ممکKن اسKت برای بررسKی وضعیت و داده هKا نظرسKنجی شود ،یKا ممکKن اسKت یک انتقال DMA را در حافظه هسته داشته باشد. .7روال وقفKه مناسKب ،وقفKه ای را از طریق جدول بردار وقفKه دریافKت مKی کند ،داده های ضروری را ذخیره مKی نمایKد ،بKه گرداننده دسKتگاه سKیگنال می فرستد ،و از وقفه برمی گردد. .8کنترل کننده دسKتگاه سKیگنال را مKی گیرد و تعیین 194 فصل سیزدهم :پیاده سازی سیستم فایل .9هسKته داده هKا را انتقال مKی دهKد یKا کدهKا را به فضای آدرس فرآینKد درخواسKت کننده بر مKی گردانKد ،و فرآیند را از صف انتظار به صف آمادگی می برد. .10انتقال فرآینKد بKه صKف آمادگKی ،فرآینKد را از حالت انسKداد خارج مKی کند .وقتKی زمانبنKد CPUرا به فرآیندی تخصKیص مKی دهKد ،فرآینKد اجرا را از سKر می گیرد. 195 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 196 فصل سیزدهم :پیاده سازی سیستم فایل 6-13مجراها سKیستم یونیکKس Vراهکار جالبKی بKه نام مجراهKا دارد که بKه برنامKه های کاربردی اجازه مKی دهKد تKا مسKیر کKد یک گرداننده را بKه طور پویKا اسKمبل کند .مجرا ،یKک اتصال دو طزفKه ی کامKل بیKن یKک گرداننده ی دسKتگاه و فرآیند سطح کاربر است. مجرا شامKل رأKس مجرا اسKت کKه بKا فرآیند کاربر ارتباط دارد ،و شامKل گرداننده پایانKی اسKت کKه دستگاه را کنترل ‏K197ی کنKد ،و صKفر یKا چنKد پیمانKه مجرا اسKت کKه بیKن آنها م فصل سیزدهم :پیاده سازی سیستم فایل رأKس مجرا ،گرداننده پایانKی و هKر پیمانKه حاوی یKک جفت صف است : • صف خواندن • صف نوشتن برای انتقال داده هKا بیKن صKفها از شیوه ارسال پیام استفاده می گردد. 198 مجراها ساختار پیاده سیزدهم : فصل فرایند سازی سیستم فایل کاربر راس مجرا صف نوشتن پیمانه ها صف خواندن صف نوشتن صف خواندن صف نوشتن صف خواندن صف خواندن صف نوشتن گرداننده پایانی 199 دستگاه فصل سیزدهم :پیاده سازی سیستم فایل ‏پیمان ه ه ا عملیات مربوط ب ه پردازش مجراه ا را تدارک م ی بینن د و ب ا استفاده از فراخوان سیستم )(ioctlدر مجرا قرار می گیرد. I/Oمجرا ن اهمگام ( ب دونانسداد ) است ،مگر هنگامیک ه ف رآیند ک اربر ب ا رأس مجرا ارتباط ب رقرار ک ند .هنگام ن وشتن در مجرا ،ف رآیند ک اربر مسدود میش ود ، ت ا جایی ب رایک پی ک ردن ف راهم ش ود .ب ه همین ت رتیب ،ف رآیند ک اربر هنگام خواندنداده ها از مجرا ،مسدود میش ود ت ا داده ها آماده ش وند. ‏گرداننده پایانی همانند رأس مجرا یا یک پیمانه است ،به طوری که دارای صف خواندن و نوشتن است. 200 فصل سیزدهم :پیاده سازی سیستم فایل ‏گرداننده پایانی طوری باید به وقفه ها پاسخ دهد که گویی وقفه ها وقتی صادر شده اند که قابی در شبکه آماده خواندن است. ‏اگ ر رأ س مجرا نتوان د پیام ی را در ص ف کپ ی کن د ،ممک ن اس ت مسدود شود. گرداننده ها باید جریان کنترل را نیز پیشبینی کنند. ‏اما اگر میانگیر دستگاهی پر باشد ،پیام ورودی را ارسال می کند .کارت شبکه ای را در نظر بگیرید که میانگیر ورودی آن پر است .کارت شبکه پیام های بیشتری را ارسال می کند تا فضای میانگیر برای ذخیره پیامها ورودی فراهم سود. ‏فایده استفاده از مجراها این است که چارچوبی برای روش پیمانه ای و فزاینده ای در نوشتن گرداننده های دستگاه و پروتکلهای شبکه است. 201 فصل سیزدهم :پیاده سازی سیستم فایل مرور کلی سخت افزار I/O سیستم I/Oهای واسط I/Oبرنامه کاربردی روشهای تخصیص فضا به فایل زیر سیستم I/Oهسته تبدیل درخواست های I/Oبه عملیات سخت افزاری مجرا ها کارآیی 202 فصل سیزدهم :پیاده سازی سیستم فایل 7-13کارایی است I/Oت قاضا هایزیادیرا ب ه CPUاعما لمی I/Oعاملمهمیدر ک اراییس یستم . ک ند ت ا ک د گ رداننده دستگاه را اجرا ن ماید و ف رآیندها را ب ه خوبیزمانبندیک ند. تعویض بستر به CPUو حافظه پنهان سخت افزاری آن فشار وارد می آوردI/O . ناکارآمدی را در راهکارهای پردازش وقفه در هسته ایجاد می کند ،و I/Oگذرگاه حافظه را در هنگام کپی کردن داده ها بین کنترل کننده ها و حافظه فیزیکی و در اثنای کپی کردن داده ها بین میانگیرهای هسته و فضای داده ی برنامه کاربردی ،اشغال می کند. 203 فصل سیزدهم :پیاده سازی سیستم فایل ‏گرچه کامپیوترهای مدرن می توانند صدها وقفه را در هر ثانیه پردازش کنند ، پردازش وقفه کار نسبتا گرانی است ،زیرا هر وقفه موجب می شود سیستم تغییر وضعیت دهد تا روال وقفه را اجرا کند ،و سپس به وضعیت قبلی برگردد. ‏اگر تعداد چرخه های مصرف شده توسط انتظار مشغولی زیاد نباشد I/O ،برنامه نویسی شده کارآمدتر از I/Oوقفه است .کامل شدن I/Oموجب می شود تا فرآیندی از حالت انسداد خارج شود و منجر به سربار تعویض بستر می شود. 204 فصل سیزدهم :پیاده سازی سیستم فایل ‏بعضی دیگر از سیستم ها از پایانه کمکی برای I/Oاستفاده کرده تا بار وقفه را بر CPUکتهش دهند .به عنوان مثال ،متمرکز کننده پایانه می تواند ترافیک را از صدها پایانه راه دور به یک پورت در یک کامپیوتر بزرگ تسهیم کند .کانال ، I/O اختصاصی است به طوری که در کامپیوترهای بزرگ از CPUهای خاصی برای این کار استفاده می شود. وظیفه کانال این است که I/Oرا از دوش CPUبردارد. بیان قواعدی برای بهبود عمل I/O •کاهش تعداد تعویض بستر • کاهش تعداد دفعات کپی داده ها در هنگام انتقال بین دستگاه و برنامه کاربردی 205 فصل سیزدهم :پیاده سازی سیستم فایل •کاهش تعداد وقفه ها با اس تفاده از انتقالهای بزرگ ،کنترل کننده های هوشمند ،و نظرسنجی ( اگر انتظار مشغولی بتواند کمینه باشد ) •افزایش همزمانی با استفاده از کنترل کننده های دانش پذیر ، DMAیا کانال ها برای کاهش عما کپی داده ها از CPU •انتقال پردازشهای اولیه به سخت افزار ،تا اینکه عملیات در کنترل کننده های دستگاه با CPUو اعمال گذرگاه همزمان شود. •توازن ، CPUزیر سیستم حافظه ،گذرگاه ،و کارایی ، I/Oزیرا وجود بار زیادی در هر یک از این ناحیه ها موجب بیکاری در ناحیه دیگر می شود. 206 کامپیوتر و داخلی ارتباطات فصل سیزدهم :پیاده سازیهزینه آنهافایل سیستم فراخوانی سیستم کامل شد تعویض بستر وقفه پردازش شد ذخیره حالت بسته شبکه دریافت شد سخت افزار آداپتور شبکه وقفه تولید شد ذخیره حالت گرداننده دستگاه دمون فرعی شبکه تعویض بستر هسته 207 هسته تعویض بستر سیستم گیرنده سخت افزار وقفه تولید شد وقفه پردازش شد وقفه تولید شد شبکه گرداننده دستگاه آداپتور شبکه هسته گرداننده دستگاه تعویض بستر دمون شبکه کاراکتر تایپ شد تعویض بستر تعویض هسته بستر فرایند کاربر سیستم فرستنده فصل سیزدهم :پیاده سازی سیستم فایل عملیات I/Oدر کجا باید پیاده سازی شود .در سخت افزار دستگاه ،در گرداننده دستگاه یا در نرم افزار برنامه کاربردی ؟ در شکل صفحه ی بعد یک نمونه پردازش عملیات یک دستگاه را مشاهده می کنید 208 عملیات :پیاده پردازشسیزدهم فصل دستگاه سازی سیستم فایل افزایش قابلیت انعطاف کد کنترل کننده دستگاه (سخت افزار) کد دستگاه (سخت افزار) افزایش انتزاع کد گرداننده دستگاه افزایش هزینه توسعه کد هسته افزایش کارایی 209 کد برنامه کاربردی افزایش زمان (نسلها) الگوریتم جدید فصل سیزدهم :پیاده فایل سیستم سازی •ابتدا الگوریتم I/Oآزمایشی را در سطح برنامه کاربردی پیاده سازی می کنیم ،زیرا .1 کد برنامه کاربردی قابل انعطاف است و معموال خطاهای آن منجر به فروپاشی سیستم نمی شود. .2با توسعه این کد در سطح برنامه کاربردی ،پس از هر تغییر در کد نیازی به راه اندازی مجدد سیستم یا بار کردن دوباره گرداننده های دستگاه نیست. ‏ اما به دلیل سربار ناشی از تعویض بستر و اینکه برنامه کاربردی نمی تواند از امتیاز ساختمان داده ی داخل هسته و عملیات هسته استفاده کند ،پیاده سازی سطح برنامه کاربردی می تواند نا کارآمد باشد. 210 فصل سیزدهم :پیاده سازی سیستم فایل • وقتی یک الگوریتم سطح برنامه کاربردی ،ارزش خود را نشان داد ،می توانیم آن را در هسته پیاده سازی کنیم. • این کار ممکن است منجر به بهبود کارایی شود ،اما تالشی که برای این کار صورت می گیرد ،چالش برانگیز است ،زیرا : .I .IIپیاده سازی در هسته باید عاری از خطا باشد ،زیرا خطا در هسته منجر به هسته سیستم عامل ،بزرگ و پیچیده است فروپاشی سیستم می شود. 211 • فصل سیزدهم :پیاده سازی سیستم فایل پیاده سKازی در سKخت افزار ممکKن اسKت منجKر به کارایKی باالتری شود .عیKب پیاده سKازی سخت افزاری شامKل دشواری و اعمال بهبودی بیشتKر یKا ترمیم خرابیهKا و افزایKش زمان توسKعه و کاهKش قابلیت انعطاف است. 212

51,000 تومان