مقاله اصول سخت افزاری I/O


در حال بارگذاری
17 سپتامبر 2024
فایل ورد و پاورپوینت
2120
7 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

  مقاله اصول سخت افزاری I/O دارای ۲۴ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد مقاله اصول سخت افزاری I/O  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله اصول سخت افزاری I/O،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله اصول سخت افزاری I/O :

یکی از عملکردهای بسیار مهم و اصلی سیستم عامل کنترل و مدیریت دستگاههای ورودی/ خروجی (I/O) در کامپیوتر است. سیستم عامل باید فرمانهایی را به این دستگاهها بفرستد، وقفه ها را بگیرد و خطاها را اداره کند. و همچنین باید یک رابط بین دستگاهها و بقیه سیستم به منظور استفاده ساده تر از آنها فراهم نماید.

اصول سخت افزاری I/O

دید افراد مختلف نسبت به سخت افزار I/O متفاوت است. مهندسین برق و الکترونیک آن را بصورت مدارهای مجتمع، مدار چاپی، منابع تغذیه، موتورها و دیگر اجزاء فیزیکی تشکیل دهنده سخت افزار می بینند. برنامه نویسان آن رابه شکل واسطه ارائه شده به نرم افزار، فرامین مورد قبول سخت افزار، توابع قابل اجرا و خطاهای احتمالی و گزارش آنها می بینند. از یک دیدگاه، دستگاههای ورودی/ خروجی بطور کلی به دو دسته تقسیم می شوند.

۱- دستگاههای بلوکی BLOCK DEVICE

۲- دستگاههای کارکتری CHARACTER DEVICE

یک دستگاه بلوکی وسیله ای است که اطلاعات را در یک بلوک با اندازه معین ذخیره می کند که هر کدام با آدرس خودشان مشخص شده اند. حدود اندازه بلوک‌های معمولی از ۵۱۲ بایت تا ۳۲۷۶۸ بایت می باشند خاصیت اساسی یک دستگاه بلوکی این است که خواندن و نوشتن هر بلوک را بطور مستقل از بقیه ممکن می سازد دیسکها از متداولترین دستگاههای بلوکی هستند.

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

۱- قابل خواندن توسط انسان:

مناسب برای ارتباط با کاربر، مانند پایانه های نمایش دهنده تصویر، صفحه کلید و…

۲- خواندن توسط ماشین:

مناسب برای ارتباط با وسائل الکترونیکی، مانند گردانندهای دیسک و نوار، حس کننده‌ها، کنترل کننده ها و محرکها.

۳- ارتباطات:

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

نرخ انتقال، کاربرد، پیچیدگی کنترل، واحد انتقال، نمایش داده ها، شرایط خطا.

سازمان عمل ورودی/ خروجی

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

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

پ) دسترسی مستقیم به حافظه DMA: مولفه DMA تبادل داده ها بین حافظه اصلی و مولفه ورودی/ خروجی را کنترل می کند. پردازنده تقاضایی برای انتقال یک بلوک از داده ها را به مولفه DMA می فرستد و فقط پس از انتقال کل بلوک مورد وقفه قرار می گیرد.

تکامل عمل ورودی/ خروجی

می توان گامهای تکاملی را بصورت زیر خلاصه نمود:

۱- کنترل دستگاه جانبی بطور مستقیم.

۲- یک کنترل کننده یا مولفه ورودی/ خروجی افزوده شده است. پردازنده از ورودی/ خروجی برنامه ریزی شده بدون وقفه استفاده می کند. با این گام پردازنده از جزئیات اختصاصی واسط های دستگاه خارجی جدا می گردد.

۳- همان پیکربندی گام دوم، ولی این بار از وقفه استفاده شده است. دیگر وقت پردازنده تلف نمی شود.

۴- از طریق DMA کنترل مستقیم حافظه به مولفه ورودی/ خروجی داده شده است. حال می توان بلوکی از داده را بدون دخالت پردازنده به/ از حافظه انتقال داد.

۵- مولفه ورودی/ خروجی تا حد پردازنده ای مجزا، با مجموعه ای دستورالعملهای خاصی برای ورودی/ خروجی ارتقاء یافته است. پردازنده مرکزی (CPU)، پردازنده ورودی/ خروجی را برای اجرای برنامه ورودی/ خروجی از حافظه هدایت می کند، پردازنده ورودی/ خروجی این دستورالعملها را بدون دخالت پردازنده مرکزی واکنشی و اجرا می کند.

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

دسترسی مستقیم به حافظه

اساساً مولفه DMA باید فقط زمانی از گذرگاه استفاده کند که پردازنده به آن نیازی ندارد، یا باید پردازنده را وادار کند که بطور موقت عملیات خود را معلق نماید. روش اخیر بیشتر معمول است و به آن ربودن چرخه می گویند. روش DMA به این صوتر کار می کند که، هرگاه پردازنده در صدد خواندن یا نوشتن بلوکی از داده ها برآید، فرمانی به مولفه DMA می دهد و از این طریق اطلاعات زیر را به آن مولفه می‌فرستد.

– اینکه درخواست خواندن یا نوشتن.

– آدرس دستگاه ورودی/ خروجی درگیر.

– آدرس مکان شروع خواندن یا نوشتن در حافظه.

– تعداد کلماتی که باید خوانده یا نوشته شود.

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

اصول نرم افزاری I/O

هدف اصلی نرم افزار I/O، سازماندهی نرم افزار بصورت یک سری از لایه ها است که کار لایه های پایینی پنهان ساختن ویژگی های پیچیده سخت افزار از لایه های بالاتر و کار لایه های بالایی نشان دادن یک واسطه منظم، ساده و شفاف برای استفاده کننده است. از این اهداف می توان به موارد زیر اشاره نمود.

– برنامه ها تا حد ممکن باید از دستگاه مستقل باشند. یعنی باید بتوانیم برنامه هایی بنویسیم که قادر باشد فایلهای روی یک دیسک نرم، دیسک سخت و یا CD-ROM را بخواند.

– یکی دیگر از اهداف نرم افزار I/O که ارتباط نزدیکی با مفهوم نرم افزار مستقل دستگاه دارد، نامگذاری یکسان می باشد. نام یک فایل یا یک دستگاه بطور ساده باید یک رشته یا یک عدد صحیح باشد و به هیچ وجه به دستگاه بستگی نداشته باشد.

– دیگر اینکه نرم افزار I/O بتواند خطاها را اداره کند. بطور کلی خطاها باید در حد امکان نزدیک به سخت افزار اداره شوند. اگر کنترل کننده یک خطای خواندن را کشف کند باید سعی کند که اگر می تواند خودش خطا را اصلاح کند و اگر نمی تواند این کار را به گرداننده دستگاه (لایه بعدی) بسپارد.

– هدف دیگر، که یک موضوع کلیدی است، انتقال همگام (بلوکه کردن)در مقابل انتقال های ناهمگام (مبتنی بر وقفه) می باشد.

– مورد دیگر، دستگاههای قابل بهره وری مشترک در مقابل دستگاههای انحصاری می باشند. بعضی از دستگاههای I/O از قبیل دیسکها می توانند توسط چندین کاربر بصورت همزمان استفاده شوند. هیچ مشکلی از این بابت که کاربرهای متعدد، فایلها را روی یک دیسک و در یک زمان باز کنند بوجود نمی آید. دستگاههای دیگر از قبیل نوار گردان باید فقط به یک کاربر اختصاص یابند و تاپایان کار آن کاربر، در اختیار روی باقی بماند.

اهدافی که در بالا بیان شد. با روشی قابل درک و موثر با ساختن نرم افزار I/O در چهار لایه بدست می آید:

الف) اداره کننده های وقفه

ب) گرداننده های دستگاه

پ) نرم افزار سیستم عامل مستقیم از دستگاه

ج) نرم افزار سطح کاربر

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

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

بن بست

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

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

الف) قابل پس گرفتن PREEMPTABLE

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

ب) غیر قابل پس گرفتن NON PREEMPTABLE

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

یک مجموعه از فرایندها در صورتی منجر به بن بست می شوند که هر یک از فرایندهای درون مجموعه منتظر رویدادی است که فقط فرآیند دیگر از همین مجموعه می تواند باعث ایجاد آن شود. این رویداد رهاسازی منابع توسط فرآیند قبلی است.

شرایط بن بست

از دید کافمن، برای پدید آمدن بن بست ۴ شرط باید بوجود آید.

۱- انحصار متقابل: در هر زمان تنها یک فرآیند می تواند از یک منبع استفاده کند.

۲- نگهداری و انتظار: در حالیکه فرایند منبع تخصیص داده شده را نگه می‌دارد، منتظر تخصیص منبع دیگر است.

۳- قبضه نکردن: منبعی که قبلاً به فرآیند واگذار شده را نتوان به زور از آن باز پس گرفت.

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

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

۱- کشف بن بست و ترمیم

۲- اجتناب از بن بست

۳- پیشگیری از بن بست

نکته: عده ای یک مورد به موارد بالا می افزایند و آن اینکه بن بست را نادیده بگیریم و در بعضی سیستم عاملها حتی برای کشف آن اقدامی بعمل نمی آید مانند UNIX.

کشف بن بست

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

ترمیم

پس از کشف بن بست، برای ترمیم راهبردهایی وجود دارد. در زیر رویکردهای ممکن به ترتیب پیچیدگی فهرست شده اند.

الف) قطع تمام فرایندهای بن بست

ب) برگشت هر یک از فرایندهای بن بست به آغاز و شروع مجدد هر یک

پ) قطع پی‌درپی فرایندهای بن بست تاجایی که دیگر بن بست وجود نداشته باشد

ت) قبضه کردن پی در پی منابع تا جایی که دیگر بن بست وجود نداشته باشد

اجتناب از بن بست

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

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

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

پیشگیری از بن بست

راهبرد پیشگیری از بن بست این است که طرح سیستم به گونه ای باشد که از قبل امکان بن بست از بین برده شود روش پیشگیری دو گروهند. روش غیر مستقیم که پیشگیری از بروز یکی از شرایط ۱ تا ۳ است و روش مستقیم که پیشگیری از بروز انتظار مدور است.

انحصار متقابل

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

  راهنمای خرید:
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.