Uzilish va istisnolar
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 (oddiy ravishda) uzilishlar, dasturiy uzilishlar esa istisnolar deb ataladi. Uzilish (dasturiy ta'minot yoki apparat) ko'tarilgach, boshqaruv uzilish natijasida paydo bo'ladigan shartlarni bajara oladigan ISR (uzilish xizmati tartibi) deb nomlangan maxsus quyi 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 qilayotganini 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 CPU ISRni ishga tushirganda, boshqa apparat uzilishlari o'chiriladi (masalan, 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.
Istisnolar nima?
Istisno - bu dasturiy uzilish boʻlib, uni maxsus ishlov berish tartibi sifatida aniqlash mumkin. Istisno avtomatik ravishda yuzaga keladigan tuzoq sifatida aniqlanishi mumkin (Tuzoqni dasturchi tomonidan boshlangan boshqaruvni uzatish sifatida aniqlash mumkin). Odatda, istisnolar bilan bog'liq maxsus ko'rsatmalar mavjud emas (tuzoqlar ma'lum bir ko'rsatma yordamida yaratiladi). Shunday qilib, dasturni bajarish paytida yuzaga keladigan "istisno" holat tufayli istisno yuzaga keladi. Masalan, nolga bo'linish, noqonuniy operatsiya kodini bajarish yoki xotira bilan bog'liq xato istisnolarga olib kelishi mumkin. Istisno ko'tarilganda, protsessor o'zi bajarayotgan dasturni vaqtincha to'xtatib turadi va ISRni ishga tushiradi. ISR istisnolardan tashqari nima qilish kerakligini o'z ichiga oladi. Bu muammoni tuzatishi mumkin yoki agar buning iloji bo'lmasa, tegishli xato xabarini chop etish orqali dasturni to'xtatib qo'yishi mumkin. Muayyan ko'rsatma istisnoga olib kelmasa ham, istisno har doim ko'rsatma tufayli yuzaga keladi. Masalan, nolga bo'lish xatosi faqat bo'linish ko'rsatmasi bajarilganda sodir bo'lishi mumkin.
Uzilish va istisno oʻrtasidagi farq nima?
Uzilishlar apparat uzilishlari, istisnolar esa dasturiy uzilishlardir. Uskuna uzilishlarining paydo bo'lishi odatda boshqa apparat uzilishlarini o'chiradi, ammo bu istisnolar uchun to'g'ri emas. Istisno taqdim etilgunga qadar apparat uzilishlariga ruxsat bermaslik kerak bo'lsa, uzilish bayrog'ini aniq tozalash kerak. Va odatda kompyuterdagi uzilish bayrog'i istisnolardan farqli o'laroq (apparat) uzilishlarga ta'sir qiladi. Bu shuni anglatadiki, bu bayroqni tozalash istisnolardan saqlanmaydi.