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