مقاله وقفه های كامپیوتری

مقاله وقفه های كامپیوتری

از نظر مجازی . تمام كامپیوتر ها راهكاری را فراهم می كنند تا قطعات دیگر (‌مثل I/O و حافظه ) ،‌در كار عادی پردازنده وقفه ایجاد كنند .جدول زیر متداول ترین وقفه ها را نشان می دهد .

جدول : دسته بندی وقفه ها

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

تایمر وقفه ای كه توسط تایمر موجود در پردازنده ایجاد می شود . این وقفه موجب می شود سیستم عامل بعضی از اعمال را به طور منظم انجام دهد .

I/O وقفه ای كه توسط كنترلگر I/O ایجاد می شود تا كامل شدن یك عملیات یا وجود خطاهایی را در انجام عملیات اعلان كند .

خرابی سخت افزار این وقفه در اثر خرابی های مثل خرابی منبع تغذیه یا خطای توازن در حافظه رخ می دهد .

وقفه ها ابتدا برای بهبود كارایی پردازنده ایجاد شدند . به عنوان مثال ، اغلب دستگاه های I/O خیلی كندتر از پردازند ه اند . فرض كنید پردازنده ای بر اساس الگوی چرخ داده هایی را به چاپگر ارسال می كند پس از هر عملیات نوشتن ، پردازنده باید متوقف شود و منتظر بماند تا چاپگر آمادگی خودش را اعلان كند . مدت این انتظار ممكن است صدها یا هزاران برابر چرخه های دستور العملی باشد كه با حافظه كار ندارند . بدیهی است كه زمان CPU به هدر می رود .

در این شكل ، برنامه كاربر در بین فراخوانی های دستورالعمل WRIT (‌جهت عمل نوشتن ) ،‌پردازش هایی را انجام می دهد . مجموعه دستورات ۱ و ۲ و ۳ فاقد I/O هستند فراخوانی WRITE منجر به اجرای برنامه I/O می شود كه یك برنامه سودمند سیستم است وعمل I/O واقعی را انجام می دهد . این برنامه I/O شامل سه بخش است :

  • Ø دنباله ای از دستور العمل ها كه درشكل مشخص شد و عمل I/O واقعی را انجام می دهند این عملیات ممكن است داده های خروجی را در میانگیری ذخیره كند و پارامترهایی را برای فرمان دادن به دستگاه آماده نماید .
  • Ø فرمان I/O واقعی ، بدون استفاده از وقفه ها ، وقتی این فرمان صادر می شود ، برنامه ممكن است منتظر دستگاه I/O بماند تا این دستگاه وظیفه اش را انجام دهد ( یا به طور متناوب ، وضعیت دستگاه I/O را كنترل نماید تا مشخص شود عمل I/O تمام شد یا خیر ).

وقفه های چندگانه

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

دو روش برای برخورد با وقفه های چندگانه وجود دارد یك روش این است كه در اثنای پردازش یك وقفه سایر وقفه ها ازكار انداخته شوند . معنای وقفه از كار افتاده این فاصلة زمانی وقفه ای رخ دهد ، عموماً منتظر می ماند و پس از این كه وقفه ها دوباره به كار انداخته شدند ، پردازنده وجود وقفه ها را بررسی می كند . لذا وقتی برنامه كاربر در حال اجرا است و وقفه ای رخ دهد . وقفه ها فوراً از كار انداخته می شوند . پس از كامل شدن روال اداره كننده وقفه ، قبل از ادامه اجرای برنامه كاربر ، وقفه ها دوباره به كار می افتند و پردازنده بررسی می كند كه آیا وقفه های دیگری رخ دادند یا خیر . چون در این روش ،‌وقفهها به ترتیب اجرا می شوند ،‌عالی وساده است

عیب این روش این است كه ،‌اولویت نسبی و محدودیت های زمانی را در نظر نمی گیرد . به عنوان مثال وقتی داده ها از خط ارتباطی می رسند. باید به سرعت دریافت شوند تا فضایی برای داده هایی بعدی ایجاد شود اگر دومین واحد داده ، قبل از پردازش واحد داده اولی برسد ،دومین واحد داده ممكن است به دلیل پر بودن سرریز كردن میانگیر دستگاه I/O ،‌از بین برود .

در روش دوم ، برای وقفه ها اولویت در نظر گرفته می شود و وقفه ای با اولویت بالاتر می تواند روال اداره كنند مربوط به وقفه ای با اولویت پایین تر را دچار وقفه كند به عنوان مثالی از روش دوم ، سیستمی با سه دستگاه I/O را در نظر بگیرید . این دستگاه ها عبارت اند از چاپگر ، دیسك ، ویك خط ارتباطی كه اولویت آن ها به ترتیب ۲ ، ۴ و ۵ است . برنامه كاربر در زمان t=0 شروع می شود . در زمان t=10 وقفه چاپگر رخ می دهد . اطلاعات كاربر در پشته سیستم قرار می گیرد و اجرا در روال خدماتی چاپگر (ISR) ادامه می یابد . در حین اجرای اینروال ،‌در t=15 وقفه ارتباطی رخ می دهد . چون اولویت خط ارتباطی بیش از چاپگر است این وقفه پذیرفته می شود ISR چاپگر وقفه می شود ،‌حالت آن در پشته قرار می گیرد ،‌و اجرا در ISR ارتباطی ادامه می یابد .در اثنای اجرای این روال ، در زمان t=20 وقفه دیسك رخ می دهد . چون اولویت این وقفه كمتر از اولویت وقفه ارتباطی كامل است ، منتظر می ماند و اجرای ISR ادامه می یابد تا كامل شود

خرید فایل