وقفه چیست؟ Interrupt چیست؟ IRQ چیست؟ وقتی Process یا پراسسی توسط CPU اجرا میشود و زمانیکه یک کاربر درخواست پردازش پراسس دیگری را میدهد این امر باعث ایجاد اختلال در پراسس در حال اجرا میشود که به این اختلال در اصطلاح فنی Interrupt یا وقفه میگوییم. Interrupt ها توسط کاربران ، سخت افزار ها و نرم افزار ها میتواند ایجاد شود اما CPU تمام Interrupt ها یا وقفه ها را به دقت میتواند مدیریت کند زیرا زمانی که وقفه یا Interrupt ای در پردازش داده ها ایجاد شد CPU بایستی آنها را به دقت مدیریت کند به این معنی که پردازنده سیستم توانایی پاسخ به Interrupt های ایجاد شده توسط عوامل مختلف را دارا میباشد.
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
از این رو زمانیکه وقفه یا Interrupt ای ایجاد شد CPU با استفاده از عملیات Fetch ، decode و Execute که جز عملیات رجیستر های CPU است وقفه یا Interrupt ها را مدیریت و هندل میکند. سه نوع Interrupt یا وقفه در امر پردازش داده ها توسط CPU داریم که عبارتند از External Interrupts یا وقفه های خارجی ، Internal Interrupts یا وقفه های داخلی و Software Interrupts یا وقفه های نرم افزاری. هر یک از این وقفه ها یا Interrupt ها را در زیر توضیح میدهیم.
External Interrupts یا وقفه های خارجی چیست ؟
External Interrupt یا وقفه های خارجی زمانی اتفاق می افتد که هر دستگاه ورودی یا خروجی برای انجام هرگونه عملیاتی به CPU درخواست پردازش اطلاعات میفرستند و CPU سیستم اولین دستورالعمل را اجرا میکند. به عنوان مثال وقتی نرم افزاری اجرا میشود و ما اشاره گر ماوس را در صفحه نمایش به حرکت در می آوریم CPU ابتدا این وقفه های خارجی یا External Interrupt ها را هندل و مدیریت میکند و بعد از آن به سایر عملیات پردازش مربوط به آن نرم افزار رسیدگی میکند.
Internal Interrupts یا وقفه های داخلی چیست ؟
Internal Interrupt یا وقفه های داخلی زمانی ایجاد میشود که برخی مشکلات در اجرا شدن آن دستورالعمل توسط CPU دخیل باشند. به عنوان مثال فرض کنید که یک نرم افزار را اجرا میکنید اما آن نرم افزار اجرا نمیشود و به هر دلیلی یک ارور به شما نشان میدهد. این به این معنی است که دستورالعمل هایی که آن نرم افزار برای پردازش به CPU ارسال میکند به درستی نیمتواند مورد پردازش قرار گیرد و در نهایت منجر به وقوع یک خطا میشود.
Software Interrupts یا وقفه های نرم افزاری چیست ؟
Software Interrupts یا وقفه های نرم افزاری آنهایی هستند که در حین پردازش یک دستورالعمل توسط CPU یک دستورالعمل دیگر برای پردازش به CPU ارسال میشود و موجب بروز وقفه در اجرای دستورالعمل ها میشود. بعضی اوقات متوجه میشوید که حین اجرای چندین نرم افزار پشت سر هم وقفه هایی ایجاد میشود این ها همان وقفه های نرم افزاری هستند.