Tizim chaqiruvi va uzilish
Oddiy protsessor ko'rsatmalarni birma-bir bajaradi. Ammo protsessor vaqtincha to'xtab, joriy ko'rsatmani ushlab turishi va boshqa dastur yoki kod segmentini (boshqa joyda yashashi) bajarishi kerak bo'lgan holatlar bo'lishi mumkin. Buni qilgandan so'ng, protsessor normal ishlashga qaytadi va to'xtagan joydan davom etadi. Tizim chaqiruvi va uzilish shunday holatlardir. Tizim chaqiruvi - bu tizimga o'rnatilgan pastki dasturga qo'ng'iroq. Uzilish - bu tashqi apparat hodisalari tufayli dasturni boshqarishning uzilishi.
Tizim chaqiruvi nima?
Tizim qoʻngʻiroqlari kompyuterda ishlaydigan dasturlarni operatsion tizim bilan gaplashish uchun interfeys bilan taʼminlaydi. Agar dastur operatsion tizim yadrosidan xizmat so'rashi kerak bo'lsa (uning o'zi ruxsati yo'q) u tizim chaqiruvidan foydalanadi. Foydalanuvchi darajasidagi jarayonlar operatsion tizim bilan bevosita o'zaro ta'sir qiluvchi jarayonlar bilan bir xil ruxsatlarga ega emas. Masalan, tashqi kiritish-chiqarish qurilmasi bilan bog'lanish yoki boshqa jarayonlar bilan ishlash uchun dastur tizim chaqiruvlaridan foydalanishi kerak.
Uzilish nima?
Kompyuter dasturining 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. Uzilish (dasturiy ta'minot yoki apparat) ko'tarilgach, boshqaruv uzilish natijasida ko'tarilgan shartlarni bajara oladigan ISR (Interrupt Service Routine) deb nomlangan maxsus kichik dasturga o'tkaziladi.
Yuqorida aytib o'tilganidek, Interrupt 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 holatda protsessor nima qilayotgan bo'lishidan qat'iy nazar to'xtatadi (ya'ni joriy dasturni to'xtatib turadi), qurilma talab qiladigan xizmatni taqdim etadi va normal dasturga qaytadi.
Tizim chaqiruvi va uzilish oʻrtasidagi farq nima?
Tizim qoʻngʻirogʻi tizimga oʻrnatilgan quyi dasturga qoʻngʻiroq, Interrupt esa protsessorning joriy bajarilishini vaqtincha ushlab turishiga olib keladigan hodisadir. Biroq, asosiy farq shundaki, tizim qo'ng'iroqlari sinxronlashtiriladi, uzilishlar esa yo'q. Bu shuni anglatadiki, tizim qo'ng'iroqlari belgilangan vaqtda (odatda dasturchi tomonidan belgilanadi), lekin foydalanuvchi tomonidan klaviaturadagi tugmachani bosish kabi kutilmagan hodisa tufayli uzilishlar istalgan vaqtda sodir bo'lishi mumkin. Shuning uchun, har doim tizim qo'ng'irog'i sodir bo'lganda, protsessor faqat qayerga qaytishni eslashi kerak, lekin uzilish bo'lsa, protsessor qaytib keladigan joyni ham, tizim holatini ham eslab qolishi kerak. Tizim chaqiruvidan farqli o'laroq, uzilish odatda joriy dasturga hech qanday aloqasi yo'q.