Interrupts

یکی از ابتدایی ترین کانسپت هایی که اگر درس سیستم عامل پاس کرده باشید interrupt ها یا وقفه ها هستن. خیلی مفهموم ساده ای هستش منتها برای اینکه یه دور کل مباحث سیستم عامل رو مرور کنیم بد نیست یه نگاهی بهش بندازیم.

خیلی ساده بخوام بگم وقفه ها سیگنال هایی هستند که برای تغییر وضعیت CPU ارسال میشن.فرض کن توی کلاس نشستی و استادت یه مبحث رو توضیح داده و داره دونه دونه از بچه ها میپرسه که سوال دارن یا نه! اینجوری هم زمان بیشتری نیازه هم انرژی بیشتری. بهت نیست بگه هر کس سوالی داشت دستشو بلند کنه؟ میبینید این روش خیلی سریعتره,نیازی به پردازش نداره و انرژی و منابع کمتری هم از شما و استاد میگیره.
این حرکت (بلند کردن دست) همون سیگنالی هستش که دارم در موردش میگم.

به طور کلی ما ۴ مدل اینتراپت داریم:
- Program
- I\O
- Hardware
-Timer

Program:

این وقفه زمانی رخ میده که تو Instruction Execution (دربارش توی این پست توضیح دادم --کلیک کن-- ) شرایط خطا قرار بگیره مثل division by zero یا arithmetic overflow این اینتراپت رخ میده تا از اجرای دستور العمل های غیرمجاز (تو کتاب استالینگز این از کلمه illegal استفاده شده) جلوگیری بشه.

I/O:

این نوع اینتراپت توسط دستگاه های i\o یا همون input\output رخ میده برای اعلام نیاز به i\o یا پایان کار i\o و برگردوندن برنامه به cpu برای شروع یا ادامه پردازش و اجرای برنامه.

Hardware:

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

Timer:

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

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


نظرات

هنوز نظری ثبت نشده است.

برای ارسال نظر باید وارد شوید.