uawikipc.ru

Диспетчеризація системних переривань

Переривання і виключення є умовами операційної системи, відволікаючими процесор на виконання коду, що знаходиться за межами нормального потоку управління.

Вони можуть бути виявлені або апаратними, або програмними засобами. Термін системне переривання відноситься до механізму процесора, призначеному для захоплення виконуваного потоку при виникненні виключення або переривання і для передачі управління в певне місце в операційній системі.

У Windows процесор передає управління оброблювачу системного переривання, який є функцією, характерною для того чи іншого переривання або виключення. На малюнку проілюстровані деякі умови активації оброблювачів системних переривань.

Ядро розрізняє переривання і виключення наступним чином. Переривання є асинхронним подією (яке може статися в будь-який час), не пов`язаних з поточним завданням процесора. Переривання генеруються, головним чином, пристроями введення-виведення, процесорними годинами або таймерами, і вони можуть бути дозволені (включені) або заборонені (вимкнені).

Виняток, навпаки, є синхронним умовою, яке зазвичай виникає в результаті виконання конкретної інструкції. (Аварійні завершення роботи, наприклад, через машинного збою, зазвичай не пов`язані з виконанням інструкції.)



Повторення винятків може бути викликано повторним запуском програми з тими ж даними і при тих же умовах. Як приклади винятків можна привести порушення доступу до пам`яті, певні інструкції налагодження і помилки ділення на нуль. Ядро також вважає винятками виклики системних служб (хоча технічно вони є системними перериваннями).

диспетчеризація-системних-переривань

Винятки та переривання можуть генеруватися як обладнанням, так і програмами. Наприклад, причиною виключення, пов`язаного з помилкою шини, є обладнання, а виключення, пов`язане з розподілом на нуль, є результатом програмної помилки. Точно так же переривання може генеруватися пристроєм введення-виведення, або ж програмне переривання може бути видано самим ядром.

При генерації апаратного виключення або переривання процесор записує досить великий обсяг інформації про стан машини в стек ядра того потоку, який був перерваний, для повернення до потрібної точки потоку управління і продовження виконання, як ніби нічого не сталося.

Відео: Що робити якщо ЦП завантажений на 100%

Якщо потік виконувався в призначеному для користувача режимі, Windows перемикається на стек потоків режиму ядра. Потім Windows створює в стеку ядра фрейм системного переривання перерваного потоку, в якому вона зберігає стан виконання потоку. Фрейм системного переривання є підмножиною повного контексту потоку, і його визначення можна побачити, набравши в отладчике ядра команду dtnt! _ktrap_frame.

Ядро обробляє програмні переривання або як частина обробки апаратних переривань, або одночасно з ними, коли потік викликає функції ядра, що відносяться до програмного переривання.

Відео: Як прибрати завантаження диска на 100% Windows 7,8,8 1

У більшості випадків ядро встановлює зовнішні функції обробки системних переривань, які виконують спільні завдання їх обробки до і після передачі управління інших функцій, які виставили системне переривання. Наприклад, якщо ситуація була викликана перериванням від якого-небудь пристрою, що знаходиться в ядрі обробник апаратних системних переривань передає управління процедурі обробки переривання (Interrupt service routine, ISR), яку драйвер пристрою надав для пристрою, що викликав переривання.

Якщо ситуація створилася через виклик системної служби, загальний обробник системних переривань, пов`язаних з системними службами, передає управління конкретної функції системної служби в виконуючої системі.

Відео: svchost вантажить процесор windows ЗАЕ..Л тупити !!! Рішення!!!

Ядро також встановлює обробники системних переривань для несподіваних або необроблюваних їм переривань. Ці обробники системних переривань зазвичай виконують системну функцію KeBugCheckEx, що зупиняє комп`ютер, коли ядро виявляє проблемне або некоректну поведінку, яке, якщо його не запобігти, може привести до пошкодження даних.

Поділитися в соц мережах:
Схожі
» » Диспетчеризація системних переривань