Interrupt va Trap
Har qanday kompyuterda dasturning normal ishlashi vaqtida protsessorning vaqtincha toʻxtab qolishiga olib keladigan hodisalar boʻlishi mumkin. Bunday hodisalar uzilishlar deyiladi. Uzilishlar dasturiy ta'minot yoki apparatdagi nosozliklar tufayli yuzaga kelishi mumkin. Uskuna uzilishlari (shunchaki) uzilishlar, dasturiy uzilishlar esa istisnolar yoki tuzoqlar deb ataladi. Istisno avtomatik ravishda yaratilgan dasturiy uzilishdir, Trap esa dasturchi tomonidan boshlangan dasturiy ta'minot tomonidan chaqiriladigan uzilishdir. Uzilish (dasturiy ta'minot yoki apparat) ko'tarilgach, boshqaruv uzilish natijasida paydo bo'ladigan shartlarni bajara oladigan ISR (Interrupt Service Routine) deb nomlangan maxsus kichik dasturga o'tkaziladi.
Uzilish nima?
Uzilish atamasi odatda apparat uzilishlari uchun ajratilgan. Ular tashqi apparat hodisalari natijasida kelib chiqqan dasturni boshqarish uzilishlari. Bu erda protsessorga tashqi vositalar. Uskuna uzilishlari odatda taymer chipi, periferik qurilmalar (klaviatura, sichqoncha va boshqalar), kiritish-chiqarish portlari (seriyali, parallel va boshqalar), disk drayverlari, CMOS soati, kengaytirish kartalari (ovoz kartasi, video) kabi turli xil manbalardan kelib chiqadi. karta va boshqalar). Bu shuni anglatadiki, dasturni bajarish bilan bog'liq ba'zi bir hodisa tufayli apparat uzilishlari deyarli hech qachon sodir bo'lmaydi. Masalan, foydalanuvchi klaviaturadagi tugmachani bosishi yoki ichki apparat taymerining vaqti tugashi kabi hodisa bunday uzilishni oshirishi va protsessorga ma'lum bir qurilmaga biroz e'tibor kerakligini bildirishi mumkin. Bunday vaziyatda protsessor nima qilayotgan bo'lsa ham to'xtatadi (ya'ni joriy dasturni to'xtatib turadi), qurilma talab qiladigan xizmatni taqdim etadi va normal dasturga qaytadi. Uskuna uzilishlari sodir bo'lganda va protsessor ISRni ishga tushirganda, boshqa apparat uzilishlari o'chiriladi (masalan.g. 80×86 mashinalarda). Agar sizga ISR ishlayotgan vaqtda boshqa apparat uzilishlari kerak bo'lsa, buni uzilish bayrog'ini tozalash orqali aniq bajarishingiz kerak (sti ko'rsatmasi bilan). 80×86 oʻlchamli mashinalarda uzilish belgisini tozalash faqat apparat uzilishlariga taʼsir qiladi.
Tuzoq nima?
Tuzoqni dasturchi tomonidan boshlangan boshqaruvni uzatish sifatida aniqlash mumkin. Trap atamasi Istisno atamasi bilan almashtiriladi (bu avtomatik ravishda yuzaga keladigan dasturiy uzilishdir). Ammo ba'zilar tuzoq shunchaki maxsus subprogramma chaqiruvi deb ta'kidlashi mumkin. Shunday qilib, ular dasturiy ta'minot tomonidan chaqiriladigan uzilishlar toifasiga kiradi. Masalan, 80×86 o'lchamli mashinalarda dasturchi tuzoqni boshlash uchun int ko'rsatmasidan foydalanishi mumkin. Tuzoq har doim shartsiz bo'lgani uchun boshqaruv har doim tuzoq bilan bog'langan pastki dasturga o'tkaziladi. Tuzoq bilan ishlash tartibini chaqiruvchi aniq ko'rsatma osongina aniqlanadi, chunki tuzoqni belgilash uchun aniq ko'rsatma qo'llaniladi.
Interrupt va Trap oʻrtasidagi farq nima?
Uzilishlar apparat uzilishlari, tuzoqlar esa dasturiy ta'minot tomonidan chaqiriladigan uzilishlardir. Uskuna uzilishlarining paydo bo'lishi odatda boshqa apparat uzilishlarini o'chiradi, ammo bu tuzoqlarga to'g'ri kelmaydi. Agar tuzoq xizmat qilmaguncha apparat uzilishlariga ruxsat bermaslik kerak bo'lsa, uzilish bayrog'ini aniq tozalash kerak. Va odatda kompyuterdagi uzilish bayrog'i tuzoqlardan farqli o'laroq (apparat) uzilishlarga ta'sir qiladi. Bu shuni anglatadiki, bu bayroqni tozalash tuzoqlarning oldini olmaydi. Tuzoqlardan farqli o'laroq, uzilishlar protsessorning oldingi holatini saqlab qolishi kerak.