Прекид вс Изузетак
У било ком рачунару, током свог нормалног извршавања програма, могло би доћи до догађаја због којих се ЦПУ привремено заустави. Овакви догађаји се називају прекидима. Прекиди могу бити узроковани или софтверским или хардверским грешкама. Прекиди хардвера називају се (једноставно) Прекиди, док се софтверски прекиди називају Изузеци. Једном када се прекида (софтверски или хардверски) подигне, контрола се пребацује у посебну потпрограму звану ИСР (Интеррупт Сервице Роутине) која може да поднесе услове које подиже прекид.
Шта је прекид?
Израз Прекид обично је резервисан за хардверске прекиде. Они су прекиди контроле програма узроковани спољним догађајима хардвера. Овде су спољна средства која су спољна за ЦПУ. Прекиди хардвера обично долазе из различитих извора као што су тајмер чип, периферни уређаји (тастатура, миш итд.), И / О портови (серијски, паралелни итд.), Диск јединице, ЦМОС сат, картице за проширење (звучна картица, видео картица итд.). То значи да се прекиди хардвера готово никада не догађају због неког догађаја који се односи на извршни програм. На пример, догађај попут притиска тастера на тастатури од стране корисника или интерног временског одмарача хардвера може довести до таквог прекида и може информисати ЦПУ да је одређеном уређају потребна пажња. У таквој ситуацији, ЦПУ ће зауставити све што је радио (тј. Зауставио тренутни програм), пружити услугу коју уређај захтева и вратит ће се у уобичајени програм. Када дође до прекида хардвера и ЦПУ покрене ИСР, остали хардверски прекиди су онемогућени (нпр. На 80 × 86 машинама). Ако су вам потребни други прекиди хардвера током ИСР-а, то требате изричито обрисати заставицом прекида (са упутством сти). У 80 × 86 машинама брисање заставе прекида утицаће само на прекид хардвера.
Шта је изузетак?
Изузетак је софтверски прекид, који се може препознати као посебна рутина за управљање. Изузетак се може идентификовати као замка која се аутоматски појављује (замка се може идентификовати као пренос контроле, који покреће програмер). Генерално, не постоје посебна упутства повезана са изузецима (замке се генеришу помоћу посебне инструкције). Дакле, изузетак настаје због „изузетног“ стања који се јавља током извршења програма. На пример, подела на нулу, извршавање илегалног кода кода или грешке у вези са меморијом могу изазвати изузеће. Кад год се постави изузетак, ЦПУ привремено зауставља програм који је извршио и покреће ИСР. ИСР ће садржати шта треба урадити са изузетком. Може да исправи проблем или ако то није могуће, програм грациозно прекида штампањем одговарајуће поруке о грешци. Иако одређена инструкција не узрокује изузетак, изузетак ће увек бити изазван од инструкције. На пример, грешка поделе са нулом може се догодити само током извршења упутства о подели.
Која је разлика између Прекида и Изузећа?
Прекиди су хардверски прекиди, док су изузеци софтверски прекиди. Појаве прекида хардвера обично онемогућавају друге прекиде у хардверу, али то није тачно за изузетке. Ако требате онемогућити хардверске прекиде док се не послужи изузетак, морате да изричито обришете заставицу прекида. И обично застава прекида на рачунару утиче на (хардверске) прекиде, за разлику од изузетака. То значи да брисањем ове заставе неће спречити изузеци.