وقفه یا Interrupt
۲۳ تير ۱۳۹۵

وقفه یا Interrupt

وقفه سیستم یا System Interrupt  چیست؟ در ابتدا شاید فکر کنید وقفه سیستم، یک فرآیند واقعی است؛ ولی باید گفت وقفه سیستم در واقع، نمایش دهنده و گزارش دهنده  تمام وقفه هایی است که در سطح پایین در پردازنده اتفاق میافتد. در مورد وقفه باید گفت: ...    
وقفه سیستم یا System Interrupt  چیست؟
در ابتدا شاید فکر کنید وقفه سیستم، یک فرآیند واقعی است؛ ولی باید گفت وقفه سیستم در واقع، نمایش دهنده و گزارش دهنده  تمام وقفه هایی است که در سطح پایین در پردازنده اتفاق میافتد.
در مورد وقفه باید گفت: تمامی فرآیند هایی که در سیستم اتفاق میافتد؛ به نوبت در پردازنده قرار میگیرند و در محیطی به نام ناحیه بحرانی سیستم یا Critical Section ، پردازش روی فرآیندها انجام میشود؛ طبیعی است که در ناحیه بحرانی سیستم، در آن واحد باید یک فرآیند پردازش شود(البته در پردازنده های قدیمی)؛ در سیر تکاملی معماری پردازنده ها، انواع مختلفی پردازنده ساخته شد، مانند:
Master slave ها که یک پردازنده به نوعی ارباب بقیه پردازنده ها بود و پردازنده ها موظف به گزارش دادن دائمی، به پردازنده ارباب بودند؛ این نوع پردازنده ها در سوپرکامپیوترها یا ابر کامپیوترهای قدیمی، بسیار استفاده می شدند.
با پیشرفت تکنولوژی و ساخت پردازنده های مدرن، پردازنده های Parallel Slave   یا پردازشگر موازی وارد میدان شدند و دنیای کامپیوتر را متحول کردند؛ تمامی پردازنده های جدیدی که امروزه استفاده میکنید؛ میتوان گفت، از این نوع می باشند؛ شاید یک مثال کوچک برای شما کافی باشد، مانند: پردازنده های Core i که در مقالات قبلی، در مورد این نوع پردازنده ها صحبت کردیم.
 دراین نوع پردازنده ها پردازش، به صورت موازی انجام میشود؛ یعنی در هر پردازنده چند هسته موازی قرار داده شده است و هر هسته دارای ناحیه بحرانی مخصوص خود است؛ پس طبیعی است که در یک لحظه چند فرآیند، همزمان پردازش میشود که این امر سبب افزایش سرعت و دقت سیستم میشود.
تا اینجا برای یادآوری شما عزیزان، این مباحث مطرح شد؛ در ادامه به مبحث اصلی خودمان، بر میگردیم یعنی وقفه!
کار وقفه چیست ؟
فرض کنید پردازنده، در حال پردازش فرآیندهایی که در پشته (Stack ) خود قرار گرفته است؛ می باشد؛ و شما پشت پی سی، مینی پی سی، تین کلاینت ( تینکلاینت ) و یا زیرو کلاینت خود نشسته اید؛ وقتی شما نرم افزار یا اپلیکیشن یا به طور کلی، هر نوع فعالیتی که باعث ورود داده به سیستم میشود؛ را انجام دهید؛ یک وقفه در روال کار پردازنده اتفاق میافتد، یعنی در حالت عادی فرض کنید؛ پردازنده در حال پردازش و تکرار پردازش فرآیندهای سیستم میباشد؛ وقتی کاربر اقدام به اجرای نرم افزاری میکند؛ در واقع یک وقفه در پردازش فرآیندها اتفاق میافتد تا دستور کاربر هرچه سریعتر مورد پردازش قرار گیرد. این سوال مطرح میشود:
 که چه اتفاقی برای فرایندی که در حال پردازش بوده است؛ میافتد؟
یعنی همان فرآیند نیمه کاره،  پاسخ های متعدی برای این سوال هست، که بستگی به این دارد که سیستم شما، از چه نوع معماری پردازنده استفاده میکند؛ درحالت عادی فرآیند در فضای موقتی در کشCache پردازنده، ذخیره میشود؛ که به محض اتمام پردازش فرآیندی که وقفه را ایجاد کرده، دوباره پردازش از سر گرفته میشود.
مشاهده میکنید که وقفه واقعا مفید است؛ اگر وقفه نبود؛ عملا عبارت Multi Task  معنایی نداشت، یعنی همزمان چندین نوع فعالیت در سیستم عامل انجام شود؛ فرض کنید؛ وقفه نبود و شما به سیستم عامل درخواست اجرای نرم افزاری را میدادید، پردازنده ابتدا تمامی فرآیندهایی را که در پشته خود وجود دارد را، ابتدا پردازش میکند؛ بعد نوبت به پردازش درخواست شما می رسد؛ که شاید چندین دقیقه و ساعت زمان اجرای درخواست شما طول بکشد.
شاید یک تعریف درست از وقفه این باشد:
یکی از منابع به نقل از ویکی پدیا مینویسد:
"یک وقفه سیستمی، به پردازنده یا همان CPU رایانه در مورد شرایط خاص و حساسی هشدار می‌دهد و از کد فعلی پردازنده، که در حال اجراست؛ وقفه‌ای می‌طلبد؛ پردازنده رایانه در پاسخ به این هشدار، فعالیت‌های فعلی خود را متوقف کرده، وضعیت فعلی خود را حفظ می‌کند و فعالیت جدید به‌عنوان حل وقفه‌ها اجرا می‌شود." [1] و [2]
تا اینجا با وقفه آشنا شدیم؛ اما برخی مواقع وقفه باعث کند شدن سیستم میشود؛ که در مقالات بعدی در مورد این موضوع نیز به بحث و گفتگو میپردازیم.

[2]ویکی پدیا

ثبت نظر و نقد شما