Асемблер Илюстриран урок

Манипулатори на хардуерни прекъсвания. Манипулатори на прекъсвания на софтуера.

Манипулаторите на прекъсвания са съществена част от много софтуерни продукти. Както е показано в гл. 1, прекъсванията са разделени на вътрешни прекъсвания, които възникват в самия микропроцесор в случай на определени повреди (опит за разделяне на 0, несъществуваща команда), външни прекъсвания, които идват от периферно оборудване (клавиатура, мишка, дискове, не- стандартни устройства, свързани към компютъра) и софтуер, които са реакционен процесор за всяка команда инт с този или онзи номер. В приложните програми трябва да се справяте главно с външни и софтуерни прекъсвания.

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

Помислете схематично за структурата и работата на софтуерен пакет, който включва собствен манипулатор за всяко хардуерно прекъсване (фиг. 3.3).

урок

Фигура: 3.3. Функциониране на софтуерен пакет с манипулатор на прекъсвания.

Манипулаторът на прекъсвания може да бъде част от програмата като процедура или просто да бъде част от програмата, започвайки от някакъв етикет (входна точка на манипулатора) и завършвайки с команда за прекъсване ирет. Засега няма да разглеждаме по-сложен случай, когато манипулаторът е независима резидентна програма.

Често инициализацията на манипулатора, в допълнение към задаването на вектора, включва и други действия: запазване на оригиналното съдържание на вектора на прекъсването, демаскиране на съответното ниво на прекъсване в контролера на прекъсванията, изпращане на команда за разрешаване на прекъсване до устройството и т.н.

Функциите на манипулатора на прекъсвания зависят от проблема, който се решава, и целта на устройството, от което се получават сигналите за прекъсване. В случай на прекъсвания на клавиатурата, задачата на манипулатора на прекъсвания е да приеме и запише кода на натиснатия клавиш. Прекъсванията на мишката показват движение на мишката, което изисква актуализиране на позицията на курсора на екрана. Ако обслужваното устройство е физическа инсталация, тогава сигналът за прекъсване може да означава, че инсталацията е натрупала определено количество данни, които трябва да бъдат прехвърлени от паметта на инсталацията в паметта на компютъра. Във всеки случай манипулаторът на прекъсвания трябва да бъде проста програма, която не изисква много машинно време за изпълнение.