Dallimi midis ndërprerjes dhe kurthit

Dallimi midis ndërprerjes dhe kurthit
Dallimi midis ndërprerjes dhe kurthit

Video: Dallimi midis ndërprerjes dhe kurthit

Video: Dallimi midis ndërprerjes dhe kurthit
Video: Tv Klan - Në Nëntor hiqen vulat për hyrje - dalje në BE 2024, Korrik
Anonim

Ndërprerje kundër Kurthit

Në çdo kompjuter, gjatë ekzekutimit të tij normal të një programi, mund të ketë ngjarje që mund të bëjnë që CPU të ndalet përkohësisht. Ngjarjet si këto quhen ndërprerje. Ndërprerjet mund të shkaktohen nga defekte softuerike ose harduerike. Ndërprerjet e harduerit quhen (thjesht) Ndërprerje, ndërsa ndërprerjet e softuerit quhen Exceptions ose Traps. Një përjashtim është një ndërprerje e softuerit e gjeneruar automatikisht, ndërsa një Trap është një ndërprerje e thirrur nga softueri i iniciuar nga programuesi. Pasi të ngrihet një ndërprerje (softuer ose harduer), kontrolli transferohet në një nënprogram të veçantë të quajtur ISR (Interrupt Service Routine) që mund të trajtojë kushtet që ngrihen nga ndërprerja.

Çfarë është një ndërprerje?

Termi Ndërprerje zakonisht rezervohet për ndërprerjet e harduerit. Ato janë ndërprerje të kontrollit të programit të shkaktuara nga ngjarje të jashtme harduerike. Këtu, i jashtëm do të thotë i jashtëm për CPU. Ndërprerjet e harduerit zakonisht vijnë nga shumë burime të ndryshme si çipi i kohëmatësit, pajisjet periferike (tastierat, miu, etj.), portat I/O (seriale, paralele, etj.), disqet e diskut, ora CMOS, kartat e zgjerimit (karta e zërit, video kartelë, etj). Kjo do të thotë se ndërprerjet e harduerit pothuajse kurrë nuk ndodhin për shkak të ndonjë ngjarjeje që lidhet me programin ekzekutues. Për shembull, një ngjarje si shtypja e tastit në tastierë nga përdoruesi, ose një kohëmatës i brendshëm i harduerit mund të shkaktojë këtë lloj ndërprerjeje dhe mund të informojë CPU-në se një pajisje e caktuar ka nevojë për vëmendje. Në një situatë të tillë, CPU do të ndalojë çdo gjë që ka bërë (d.m.th. ndalon programin aktual), ofron shërbimin e kërkuar nga pajisja dhe do të kthehet në programin normal. Kur ndodhin ndërprerje të harduerit dhe CPU-ja nis ISR-në, ndërprerjet e tjera të harduerit çaktivizohen (p.sh.g. në makina 80×86). Nëse keni nevojë që të ndodhin ndërprerje të tjera harduerike gjatë ekzekutimit të ISR-së, duhet ta bëni këtë në mënyrë eksplicite duke pastruar flamurin e ndërprerjes (me udhëzim sti). Në makinat 80×86, pastrimi i flamurit të ndërprerjes do të ndikojë vetëm në ndërprerjet e harduerit.

Çfarë është një kurth?

Një kurth mund të identifikohet si një transferim i kontrollit, i cili inicohet nga programuesi. Termi Trap përdoret në mënyrë të ndërsjellë me termin Përjashtim (i cili është një ndërprerje e softuerit që ndodh automatikisht). Por disa mund të argumentojnë se një kurth është thjesht një thirrje speciale nënrutinë. Pra, ato hyjnë në kategorinë e ndërprerjeve të thirrura nga softueri. Për shembull, në makinat 80×86, një programues mund të përdorë instruksionin int për të inicuar një kurth. Për shkak se një kurth është gjithmonë i pakushtëzuar, kontrolli do të transferohet gjithmonë në nënprogramin e lidhur me kurthin. Instruksioni i saktë, i cili thërret rutinën për trajtimin e kurthit, identifikohet lehtësisht sepse një udhëzim i qartë përdoret për të specifikuar një kurth.

Cili është ndryshimi midis Interrupt dhe Trap?

Ndërprerjet janë ndërprerje harduerike, ndërsa kurthe janë ndërprerje të thirrura nga softueri. Ndodhitë e ndërprerjeve të harduerit zakonisht çaktivizojnë ndërprerjet e tjera të harduerit, por kjo nuk është e vërtetë për kurthe. Nëse duhet të ndaloni ndërprerjet e harduerit derisa të shërbehet një kurth, duhet të pastroni në mënyrë eksplicite flamurin e ndërprerjes. Dhe zakonisht flamuri i ndërprerjes në kompjuter ndikon në ndërprerjet (hardware) në krahasim me kurthe. Kjo do të thotë se pastrimi i këtij flamuri nuk do të parandalojë kurthe. Ndryshe nga kurthet, ndërprerjet duhet të ruajnë gjendjen e mëparshme të CPU-së.

Recommended: