كلیه اطلاعات این سایت مربوط به شركت طراحی سایت - شركت نرم افزاری بهپردازان می باشد


موضوع مقاله : وقفه و انواع وقفه ها :

شرح : در فرهنگ رايانه، وقفه يا انترراپت (به انگليسي: Interrupt) يک سيگنال به ريزپردازنده است که به توجه و پاسخ سريع CPU نياز دارد. هنگامي که يک وقفه رخ مي‌دهد، پردازنده عمليات جاري خود را متوقف مي‌کند تا به درخواست وقفه رسيدگي کند. ريزپردازنده‌هاي خانواده ???? به وقفه‌هاي توليد شده به وسيله سخت‌افزار و نرم‌افزار پاسخ مي‌دهند که به ترتيب به آنها وقفه‌هاي سخت‌افزاري، و وقفه‌هاي نرم‌افزاري گفته مي‌شود.

فرض کنيد که قرار است بين هارد و سي پي يو ارتباط برقرار شودو هرگاه خواندن تمام شد cpu مطلع شود اگر يک بيت براي اينکار بگذاريم و cpu دايمن چک کند هزينه بر است اما وقفه نياز به کنترل cpu ندارد و هر وقت خواندن تمام شد هارد يک وقفه براي cpu مي‌فرستد.

انواع وقفه

??? سطح الويت توسط پردازنده‌هاي ??x?? پشتيباني مي‌شود که مي‌توان آنها را به سه گروه کلي تقسيم کرد:

وقفه‌هاي داخلي سخت‌افزاري
وقفه‌هاي خارجي سخت‌افزاري
وقفه‌هاي نرم‌افزاري
وقفه‌هاي داخلي سخت‌افزاري
وقفه‌هاي داخلي سخت‌افزاري (internal hardware-interrupts) بدليل رخ دادن وضعيت معيني که درحين اجراي يک برنامه پيش آمده توليد مي‌شوند (مانند تقسيم بر صفر).

وقفه‌هايي که در اثر خطا بوجود مي‌آيد تله (trap) هم ناميده مي‌شود. تله باعث سقط برنامه مي‌شوند.

اين وقفه‌ها توسط سخت‌افزار اداره مي‌شوند و امکان تغيير آنها وجود ندارد. اما با وجوديکه نمي‌توان آنها را مستقيما مديريت کرد، اين امکان وجود دارد که از اثر آن روي کامپيوتر به نحو مفيدي استفاده شود.

مثال. سخت‌افزار وقفه شمارنده ساعت کامپيوتر را چندبار در ثانيه فراخواني مي‌کند تا زمان را نگه دارد. مي‌توان برنامه‌اي نوشت که مقدار شمارنده ساعت را خوانده آنرا به شکل قابل درک کاربر به صورت ساعت و دقيقه تبديل کند. وقفه‌هاي خارجي سخت‌افزاري

وقفه‌هاي خارجي سخت‌افزاري (external hardware-interrupts) خارج از CPU و توسط دستگاه‌هاي جانبي، مانند صفحه کليد، چاپگر، کارت‌هاي ارتباطي و يا کمک پردازنده توليد مي‌شوند.

دستگاه‌هاي جانبي با ارسال وقفه به CPU خواستار قطع اجراي برنامه فعلي شده و CPU را متوجه خود مي‌کنند. آنها به پايه (maskable interrupts) INTR يا (non maskable interrupts) NMI پردازنده متصل هستند.

وقفه‌هاي دستگاه‌ها مي‌توانند از طريق مداري به نام PIC 8259A، که کارش منحصرا سروکار داشتن با اين نوع وقفه هاست، به پردازنده ارسال شوند. مدار (programmable interrupt controller) PIC که توسط CPU کنترل مي‌شود سيگنال‌هايش را روي پايه INTR قرار مي‌دهد و امکان فعال و غيرفعال کردن وقفه‌ها و تغيير سطح الويت را تحت نظارت يک برنامه مي‌دهد.

دستورات STI و CLI مي‌توانند براي فعال و غيرفعال کردن وقفه‌هايي که روي پايه INTR ارسال مي‌شوند بکار روند که البته روي وقفه‌هاي NMI تاثيري ندارد. وقفه‌هاي نرم‌افزاري

وقفه‌هاي نرم‌افزاري (software interruptions) در نتيجه دستورالعمل int در يک برنامه درحال اجرا توليد مي‌شوند.
ش
برنامه نويس مي‌تواند با دادن دستور int يک وقفه نرم‌افزاري توليد کند. بدين طريق بلافاصله اجراي برنامه فعلي را متوقف مي‌کند و CPU را به روتين وقفه هدايت مي‌کند. برنامه نويس از طريق وقفه‌ها مي‌تواند در برنامه با وسايل جانبي ارتباط برقرار کند. استفاده از وقفه‌ها باعث کوتاهتر شدن کد برنامه و درک آسانتر و اجراي بهترآن مي‌شود.

روتين‌هاي وقفه نرم‌افزاري بخشي از سيستم عامل هستند. از اينرو وقفه‌هاي نرم‌افزاري را مي‌توان به دو گروه تقسيم کرد؛ وقفه‌هاي سيستم عامل DOS و وقفه‌هاي BIOS. وقفه‌هاي DOS آسانتر استفاده مي‌شوند اما از وقفه‌هاي BIOS که قسمتي از سخت‌افزار هستند کندتر هستند.

DOS اين نوع وقفه‌ها را براي اجراي (application programming interface) API خودش استفاده مي‌کند. بيشتر سيستم عامل‌هاي جديد مانند Windows و Unix واسطه C-based را استفاده مي‌کنند.