ثبت سفارش
عنوان محصول
قیمت
0

دانلود مقاله وقفه های کامپیوتری

Code: #389
تعداد صفحات
22
فرمت فایل
Word
سال
مشخص نشده
مقطع
مشخص نشده
دسته‌بندی

خلاصه دانلود مقاله وقفه های کامپیوتری

از نظر مجازی .

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

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

تایمر وقفه ای که توسط تایمر موجود در پردازنده ایجاد می شود .

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

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

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

وقفه ها ابتدا برای بهبود کارایی پردازنده ایجاد شدند .

به عنوان مثال ، اغلب دستگاه های I/O خیلی کندتر از پردازند ه اند .

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

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

بدیهی است که زمان CPU به هدر می رود .

در این شکل ، برنامه کاربر در بین فراخوانی های دستورالعمل WRIT (‌جهت عمل نوشتن ) ،‌پردازش هایی را انجام می دهد .

مجموعه دستورات 1 و 2 و 3 فاقد I/O هستند فراخوانی WRITE منجر به اجرای برنامه I/O می شود که یک برنامه سودمند سیستم است وعمل I/O واقعی را انجام می دهد .

این برنامه I/O شامل سه بخش است : دنباله ای از دستور العمل ها که درشکل مشخص شد و عمل I/O واقعی را انجام می دهند این عملیات ممکن است داده های خروجی را در میانگیری ذخیره کند و پارامترهایی را برای فرمان دادن به دستگاه آماده نماید .

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

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

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

چون کامل شدن عمل I/O ممکن است مدت زیادی طول بکشد ، برنامه I/O منتظر می ماند تا عمل I/O کامل شود .

لذا برنامه I/O در نقطه فراخوانی WRITE به مدت زیادی منتظر می ماند .

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

جریان کنترل را در شکل در نظر بگیرید .

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

برنامه I/O که به این روش فراخوانی شد .

فقط شامل کد آماده سازی و فرمان I/O واقعی است .

پس از اجرای این دستور العمل ها ،‌کنترل به برنامه کاربر بر می گردد .

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

این عملیات I/O به طور همزمان با دستور العمل های برنامه کار در حال اجرا است .

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

پردازنده در پاسخ به این درخواست وقفه ، عمل برنامه فعلی را به تعویق می اندازد ، به برنامه ای می رود تا به آن دستگاه I/O خدمات دهد و پس از ارائه خدمات به آن دستگاه ،‌اجرای برنامه به تعویق افتاده را از سر می گیرد .

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

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

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

وقفه یا سیگنال وقفه مشخص می شود .

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

این برنامه ، ماهیت و قفه را تعین کرده عمل مورد نیاز را انجام می دهد .

در مثالی که مطرح کردیم ،‌اداره کننده وقفه تعیین می کند کدام قطعه I/O وقفه را تولید کرد و ممکن است به برنامه ای برود که داده های بیشتری را در قطعه I/O می نویسد .

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

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

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

برای این که قدر این کارایی را بدانید یک نمودار زمانی براساس جریان کنترل است زمان لازم برای عمل I/O نسبتاً کوتاه است ،‌به طوری که این زمان ، از زمان لازم برای کامل شدن اجرای دستور العمل های بین دو دستور العمل نوشتن در برنامه کاربر ، کمتر است .

در حالت عادی ،‌به ویژه برای دستگاه کندی مثل چاپگر ،‌زمان لازم برای عمل I/O خیلی بیشتر از زمان اجرای دنباله ای از دستور العمل های کاربر است ، در این حالت ، برنامه کار بر قبل از کامل شدن عمل I/O جدیدی آغاز گردد.

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

می بینیم که کارایی تا حدی بهبود می یابد ، زیرا در اثنای عمل I/O دستور العمل کاربر اجرا می شوند .

پردازش وقفه وقوع وقفه منجر به رویدادهایی در نرم افزار و سخت افزار پردازنده می شود دنباله ای از این رویدادها نشان می دهد وقتی دستگاه I/O ،‌یک عمل I/O را کامل می کند .

دنباله ای از رویدادهای سخت افزاری زیر رخ می دهد : 1 این دستگاه ، سیگنال وقفه را به پردازنده می فرستد.

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

4 اکنون پردازنده باید آماده انتقال کنترل به روال وقفه شود .

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

حداقل اطلاعات لازم ،‌کلمه وضعیت برنامه (PSW) و محل دستور العمل بعدی (PC) است .

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

5 اکنون پردازنده ، آدرس محل ورود به روال وقفه ای را که به این وقفه پاسخ می دهد ، درشمارنده برنامه (PC) قرار می دهد .

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

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

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

چون واکشی دستور العمل توسط محتویات شمارنده برنامه تعیین می شود ،‌نتیجه اش این است که کنترل به برنامه اداره کننده وقفه منتقل می شود .

اجرای این برنامه منجر به عملیات زیر می‌گردد : 6 در این نقطه ،‌شمارنده برنامه و PSW برنامه ای که دچار وقفه شد ، در پشته سیستم ذخیره شده است .

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

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

6ـ در این نقطه ،‌شمارنده برنامه و PSW برنامه ای که دچار وقفه شد ، در پشته سیستم ذخیره شده است .

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

معمولاً روان اداره کننده وقفه با ذخیره محتویات تمام ثبات ها شروع می شود .

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

محتویات تمام ثابت ها و آدرس دستور العمل بعدی (N+1) در پشته کنترل ذخیره می شود که در مجموع M کلمه است .

مقدار اشاره گر پشته عوض می شود تا به بالای پشته اشاره کند ومقدار شمارنده برنامه عوض می شود تا به روال اداره کننده وقفه اشاره کند .

7ـ اکنون اداره کننده وقفه شروع به پردازش وقفه می کند .

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

علاوه بر این ، شامل ارسال فرمان های دیگر؛ اعلام وصول هایی به دستگاه I/O است .

8ـ وقتی پردازش وقفه کامل شد ،‌مقادیر ثبات ها که در پشته ذخیره شدند از پشته بازیابی شده در ثبات ها بار می شوند .

9ـ درمرحله آخر ، مقادیر PC,PSW از پشته بازیابی می شوند .

در نتیجه ، دستور العمل بعدی که اجرا می شود ،‌مربوط به برنامه ای است که به تعویق افتاد بود .

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

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

وقفه های چندگانه تاکنون در مورد وقوع یک وقفه بحث کردیم .

اما ، فرض کنید چند وقفه بتواند رخ دهد .

به عنوان مثال ،‌ممکن است برنامه ای درحال دریافت داده ها از خط ارتباطی و چاپ نتایج باشد .

چاپگر هر وقت عمل چاپ را کامل کرد وقفه ای را صادر می کند .

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

بسته به نظام ارتباطی ، واحد داده ممکن است یک کاراکتر یا یک بلوک باشد .

در هر مورد ،‌ممکن است در اثنای پردازش وقفه چاپگر ، وقفه ارتباطی رخ دهد .

دو روش برای برخورد با وقفه های چندگانه وجود دارد یک روش این است که در اثنای پردازش یک وقفه سایر وقفه ها ازکار انداخته شوند .

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

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

وقفه ها فوراً از کار انداخته می شوند .

پس از کامل شدن روال

فهرست دانلود مقاله وقفه های کامپیوتری

فهرست:

ندارد.


منبع:

ندارد.

تگ‌ها