Прекъсване

Прекъсване е, когато микропроцесорът прави нещо, което не му е казано да прави, поради неща, които се случват извън това, което програмата трябва да прави. Прекъсванията се случват най-често, защото процесорът получава сигнал от хардуера, но те могат да дойдат и от софтуер, който работи заедно с програмата. Сред многото неща, които могат да предизвикат прекъсвания, са натискането на клавиши на клавиатурата, задействането на вградения таймер, прехвърлянето на данни или всяко друго събитие, което изисква незабавно действие от страна на процесора. Прекъсванията могат да се случат по всяко време, докато процесорът изпълнява дадена програма, без значение къде в изходния код на програмата се намират.

Тази диаграма показва какво се случва, когато се извика прекъсванеZoom
Тази диаграма показва какво се случва, когато се извика прекъсване

Как работят прекъсванията

Хардуерното или софтуерното повикване за прекъсване (известно като заявка за прекъсване или IRQ) се поема от "обработчик на прекъсвания" или "рутинна програма за обслужване на прекъсвания" (ISR) в процесора. Тя поставя това, което прави в момента, върху стека и след това следва определени инструкции, които изпълняват дадена задача от името на системата, която не е задължително да бъде част от програмата, която изпълнява. След като приключи с изпълнението на инструкциите, ISR връща обратно това, което е поставил на стека, и продължава с това, което е правил, преди да се случи прекъсването.

Много контролери за прекъсвания от съвременните процесори използват вектор на прекъсване, за да сортират прекъсванията въз основа на това откъде са дошли, наред с други начини. Векторът обикновено съдържа кода, който трябва да се изпълни, когато прекъсването се случи. Обикновено ISR отговарят за справянето или "обслужването" на прекъсването, заедно с поддържането на самия него в работно състояние.

Използване на прекъсванията

  • Задействане на задачи на редовни интервали
  • Обслужване на външно устройство, което може да се случи по всяко време
  • Премахване на необходимостта от синхронно допитване
  • задействане на операционна система (ОС) за предприемане на действие

Въпроси и отговори

В: Какво е прекъсване?


О: Прекъсването е действие, предприето от микропроцесора, което не е част от изпълняваната програма поради външни събития.

В: Кое е причината прекъсванията да се появяват най-често в един процесор?


О: Прекъсванията се появяват най-често в процесора поради получаването на сигнали от хардуера.

В: Могат ли прекъсванията да бъдат причинени от софтуер?


О: Да, прекъсванията могат да бъдат причинени и от софтуер, който работи паралелно с изпълняваната програма.

В: Избройте няколко примера за събития, които могат да предизвикат прекъсване.
О: Примери за събития, които могат да предизвикат прекъсване, са натискане на клавиши на клавиатурата, задействане на таймер и прехвърляне на данни.

В: Зависи ли прекъсването от това къде се изпълнява програмата?


О: Не, прекъсвания могат да възникнат по всяко време на изпълнението на програмата, независимо от това къде се намира програмата в изходния си код.

В: Прекъсването желано събитие ли е за микропроцесора?


О: Прекъсванията обикновено са нежелани събития за микропроцесора, тъй като прекъсват изпълнението на програмата и изискват незабавно внимание.

В: Как реагира микропроцесорът на прекъсване?


О: Микропроцесорът временно спира изпълняваната програма и изпълнява процедура за обслужване на прекъсването (ISR), за да се справи с прекъсването, преди да се върне към изпълняваната програма.

AlegsaOnline.com - 2020 / 2023 - License CC3