وقتی پردازشی به اسم system interrupts پردازنده را شدیداً درگیر کرده، به احتمال زیاد با یک مشکل سختافزاری یا درایور روبرو هستید.
در این مطلب به شما خواهیم گفت که system interrupts چیست و برای حل مشکلی که باعث مصرف شدید پردازنده شده چه کارهایی میتوان انجام داد.
system interrupts چیست؟
System interrupts به صورت یک پردازش در تسک منیجر ویندوز نمایش داده میشود اما در اصل پردازش نیست بلکه یک نوع نماینده است که استفاده از پردازنده توسط همه وقفههایی که در سطح سیستمی پایین تر رخ میدهند را نشان میدهد.
وقفهها میتوانند سختافزاری یا نرمافزاری باشند. طبق توضیحات ویکی پدیا:
وقفه به پردازنده درباره وقوع شرایطی با اولویت بالا هشدار میدهد که مستلزم ایجاد وقفه در کد در حال اجرا توسط پردازنده هستند. پردازنده با تعلیق فعالیتهای فعلی، ذخیره کردن وضعیت جاری و اجرای تابعی به اسم کنترل کننده وقفه (interrupt handler) برای رسیدگی به این رویداد واکنش نشان میدهد.
وقتی کار کنترل کننده وقفه به پایان برسد، پردازنده وضعیت پیش از شروع وقفه را ادامه میدهد.
وقفهها یک نوع راه ارتباطی سختافزار و نرمافزار با پردازنده هستند. مثلاً وقتی شروع به تایپ کردن با صفحه کلید میکنید، سختافزار و نرمافزارهای مرتبط به پردازنده وقفه ارسال میکنند تا پردازش ورودیهای شما را انجام دهد.
وقفهها میتوانند به پردازنده درباره وقوع یک خطا اطلاع رسانی کنند و همین مسئله باعث افزایش میزان استفاده از پردازنده توسط وقفههای سیستم میشود. در یک سیستم سالم، وقفهها بین 0.1 تا 2 درصد از مصرف پردازنده را به خود اختصاص میدهند که این موضوع بستگی به فرکانس پردازنده، نرمافزار در حال اجرا و سختافزار متصل به سیستم دارد.
حتی بسته به شرایط و کانفیگ سیستم ممکن است اوج گیری 3 تا 7 درصدی هم عادی تلقی شود.
چگونه مشکل مصرف پردازنده توسط وقفههای سیستمی را حل کنیم؟
اگر وقفههای سیستم دائماً بیشتر از 5 تا 10 درصد از منابع پردازنده را مصرف میکنند، در این صورت مشکلی وجود دارد و به احتمال زیاد با مشکل سختافزاری روبرو هستید. برای حل این مشکل راهکارهایی وجود دارند که در ادامه به بررسی آنها میپردازیم.
اولین راهکاری که باید امتحان کنید، ریبوت کردن کامپیوتر است. اگر این راهکار کمکی نکرد، سایر راهکارهای زیر را امتحان کنید:
1. کشیدن یا غیرفعال کردن همه دستگاههای خارجی (اکسترنال)
سختافزارهای متصل به USB یکی از مهم ترین منابع ایجاد این مشکل هستند. میتوانید دستگاههای USB اکسترنال را بکشید یا – در Device Manager ویندوز – گزینه USB Root Hub را غیرفعال کنید که از ایجاد وقفه توسط سختافزارهای جانبی در کار پردازنده پیشگیری میکند.
در Device Manager گزینه مربوط به Universal Serial Bus controllers را پیدا کرده و هر فیلد USB Root Hub که مشاهده میکنید را غیرفعال کنید.
توجه: اگر از موس USB (بلوتوث) یا صفحه کلید اکسترنال استفاده میکنید، ممکن است با این کار این دستگاهها متوقف شوند. پس حتماً از وجود یک راهکار جایگزین برای فعال کردن دوباره این دستگاهها مطمئن شوید.
نکاتی برای کامپیوترهای دسکتاپ: اگر کابل ساتای بی استفادهای به مادربورد متصل شده، آن را بکشید.
2. بررسی درایورهای سختافزاری
برای بررسی اینکه با مشکل درایور روبرو هستید یا خیر میتوانید ابزار DPC Latency Checker را امتحان کنید. DPC یا Deferred Procedure Call یک پردازش مرتبط با وقفههای سیستم است. وقتی کنترل کننده وقفه نیاز به عقب انداختن کارهایی با اولویت کمتر داشته باشد، DPC را فراخوانی میکند.
DPC Latency Checker برای این طراحی شده که با بررسی تأخیر درایورها در حالت کرنل، مشخص کند که سیستم توانایی مدیریت استریمینگ صدا یا ویدیو به صورت بلادرنگ را دارد یا خیر. این ابزار یک روش سریع برای مشخص کردن مشکلات است و نیازی به نصب آن نیست.
اگر خط قرمزی مشاهده میکنید یعنی تأخیر زیادی وجود دارد. سعی کنید مقصر را پیدا کنید و یا اگر تازگی دچار مشکل شده اید، آپدیت ویندوز را رول بک کرده یا درایورها را با یک نسخه استاندارد و معتبر به روزرسانی کنید. مواردی که باعث بروز چنین مشکلات میشوند، درایورهای ساتای AMD، دستگاههای صوتی HD و پیدا نشدن درایورهای بلوتوث هستند.
یا اینکه میتوانید ابزار LatencyMon را دانلود و اجرا کنید که تأخیرها را تحت نظر میگیرد تا فایلهای درایوری با بیشترین میزان DPC را شناسایی کند. دکمه Start / Play را فشار داده، سپس به تب Drivers بروید و فایلهای درایور را بر حسب DPC count مرتب کنید. دقت داشته باشید که تعداد DPC به مرور زمان افزایش پیدا میکند پس اجازه دهید که این ابزار برای مدتی اجرا شود.
درایورهایی با DPC count بالا میتوانند باعث ایجاد وقفههای زیادی شوند.
3. غیرفعال کردن دستگاههای داخلی
به جای آپدیت کردن تصادفی و بی هدف درایورها، کار را با غیرفعال کردن درایورها به صورت یک به یک شروع کنید تا بتوانید مقصر اصلی را پیدا کنید. اگر از قبل چند مقصر را شناسایی کرده اید، اول آنها را غیرفعال کنید.
به منوی استارت بروید، Device Manager را جستجو و باز کنید (که در کنترل پنل هم وجود دارد)، لیست دستگاههای جانبی زیر آن را باز کنید، روی یک دستگاه راست کلیک کرده و Disable را انتخاب کنید.
این کار را هر بار برای یک دستگاه انجام دهید، میزان مصرف پردازنده توسط system interrupts را بررسی کرده یا دوباره DPC Latency Checker را اجرا کنید، سپس روی دستگاه راست کلیک کرده و پیش از حرکت به سمت دستگاه بعدی، گزینه Enable را انتخاب کنید.
به احتمال زیاد یکی از این دستگاهها مقصر هستند:
- آداپتورهای شبکه
- مودمهای داخلی
- دستگاههای صوتی داخلی
- هر کارت جانبی مثل کارت تلویزیون، آداپتور DSL یا ISDN و یا مودم
اگر هیچ کدام از این دستگاهها مقصر به نظر نرسیدند، میتوانید سایر درایورهای غیرضروری را غیرفعال (و بعد دوباره فعال) کنید.
هرگز درایورهای لازم برای کار کردن سیستم را غیرفعال نکنید از جمله درایورهایی که در بخشهای Computer، Processors و System device قرار دارند.
همچنین سعی نکنید درایورهای صفحه نمایش، درایورهای دیسکی که سیستم با آن کار میکند، کنترلرهای IDE، صفحه کلید یا موس (مگر اینکه یک وسیله ورودی جایگزین مثل تاچ پد داشته باشید) یا مانیتور را غیرفعال کنید.
4. کنار گذاشتن سختافزار معیوب
اگر درایور معیوب امکان ایجاد وقفه سیستمی را دارد، قطعاً سختافزار معیوب هم میتواند چنین مشکلی را ایجاد کند. در این مواقع آپدیت کردن سختافزار مشکل شما را حل نمیکند اما اگر غیرفعال کردن کل دستگاه باعث رفع مشکل شد، باید سعی کنید سختافزار معیوب را شناسایی کنید.
توجه: ممکن است نقص شارژر لپ تاپ یا منبع برق هم باعث بروز وقفههای سیستمی شود. سعی کنید تعویض شارژر یا از برق کشیدن دستگاه را هم امتحان کنید.
5. غیرفعال کردن جلوههای صوتی
در ویندوز 7 این راهکار میتواند کمک کننده باشد.
روی آیکن اسپیکر در سینی ویندوز کلیک کنید، Playback devices را انتخاب کنید، روی Default Device (speaker) دابل کنید تا صفحه Properties باز شود. به تب Enhancements بروید و همه جلوههای صوتی را غیر فعال کنید (Disable all sound effects). با کلیک کردن روی OK تصمیم خودتان را تأیید کرده و حالا عملکرد وقفههای سیستمی را بررسی کنید.
6. آپدیت کردن بایاس
بایاس اولین نرمافزاری است که هنگام روشن شدن کامپیوتر اجرا میشود. این نرمافزار به بوت شدن سیستم عامل کمک میکند. اول نسخه بایاس سیستم خودتان را بررسی کرده و سایت تولیدکننده آن را بررسی کنید تا اگر آپدیتی برای سیستم شما منتشر شده آن را نصب کنید.
برای مشخص کردن نسخه بایاس، ترکیب کلیدهای ویندوز و R را فشرده، cmd را تایپ کرده، اینتر بزنید و فرمانهای زیر را یکی پس از دیگری اجرا کنید:
- systeminfo | findstr /I /c:bios
- wmic bios get manufacturer, smbiosbiosversion
دقت داشته باشید که حرف I در /I همان i بزرگ است نه L کوچک.
نکته: آپدیت کردن بایاس فرایند مهم و خطیری است. قبل از انجام این کار از اطلاعات سیستم پشتیبان گیری کنید.
جمع بندی مطلب
وقفههای سیستمی میتوانند دلایل مختلفی داشته باشند. امیدواریم که نکات و راهکارهای ارائه شده در این مطلب به حل مشکل شما کمک کرده باشند.