فرزاد 1405/3/30
نحوه پردازش وقفه ها آموزش و یادگیری نحوه پردازش وقفه ها به صورت رایگان
وقفه ها اینجوری اجرا میشن❗
شاید بگید مگه وقفه یه سیگنال نیست!؟ اجرا شدن داره مگه؟ باید بگم خود وقفه یه سیگناله ولی وقتی ارسال میشه CPU باید یه کار هایی بکنه دیگه! :) مراحل اجرای وقفه به ترتیب زیر انجام میشه:
- وقفه توسط یکی از ۴ مورد که تو بیشتر بدونید ترد قبل گفتم تولید و ارسال میشه.
- پردازنده اجرای برنامه (دستورالعمل) فعلی رو متوقف میکنه.
- وقفه توسط پردازنده بررسی میشه. نوع و وجودش تایید میشه و در نهایت سیگنال تایید به منبع وقفه ارسال میشه که اجازه میده وقفه رو حذف کنه.
- حالا پردازنده باید کنترل رو به Interrupt routine (یا
Interrupt handler) منتقل کنه.
برای شروع, اطلاعات دستورالعمل فعلی که تو رجیستر PSW (یاProgram status word) ذخیره شده و همچنین مقدار PC به علاوه تمامی اطلاعاتی که برای از سرگیری مجدد برنامه فعلی نیاز داره رو تو کنترل استک (Control stack) ذخیره میکنه. - بسته به نوع وقفه, سیستم عامل Interrupt handler اونو فراخوانی میکنه. Interrupt routine اجرا میشه.
- بعد از اتمام کار handler و پردازش وقفه, اطلاعات برنامه که توی کنترل استک ذخیره شده بود به رجیستر ها برمیگرده و استک خالی میشه.
- اجرای برنامه دقیقا از همون نقطه ای که متوقف شده بود از سر گرفته میشه :)
یکم بیشتر بدونید
Program Status Word یا PSW یکی از رجیستر های مهم CPU هستش!
توی این پردازنده اطلاعات برنامه در حال اجرا مثل Execute mode, IDE ها و Flag ها توش ذخیره میشه!
نگران مواردی که گفتم نباشید توی فصل دوم بهش میرسیم!
توی این پردازنده اطلاعات برنامه در حال اجرا مثل Execute mode, IDE ها و Flag ها توش ذخیره میشه!
نگران مواردی که گفتم نباشید توی فصل دوم بهش میرسیم!
کنترل استک کجاست؟
کنترل استک تو حافظه اصلی هستش (RAM) . اصولا هر جا نامی از استک هستش تو اکثر مواقع به رم اشاره میشه.اطلاعات داخل PSW دقیقا چیه؟
این اطلاعات خیلی زیاد و متنوع هستن ولی اصلی ترینشون شامل Flag ها,Execution mode ,IDE و … هستن که همه اینها + کد دستورالعمل به علاوه مقدار PC همگی به کنترل استک منتقل میشن.Interrupt handler دقیقا چیه؟
Interrupt handler یه برنامه سیستمی هستش که داخل سیستم عامل وجود داره و وظیفش رسیدگی به وقفه و اجرای اونه. هر سیستمی بسته به معماریش میتونه یک یا چند تا handler داشته باشه❗
میتونید برای یادگیری بیشتر ...
برای یادگیری بیشتر و به عنوان تمرین میتونید درباره اطلاعاتی که توی PSW ذخیره میشه جستجو کنید و توی کامنت ها برامون ارسال کنید تا هم دیگران بیشتر بدونن هم قبل از اینکه به فصل دوم برسید یادشون گرفتید :)
شماره تِرِد : شماره 10 از 13
