5. Multiprogrammalashda uzilishlarning roli
Multiprogrammalashda uzilishlarning roli
Interruptlar - bu kompyuter tizimining alohida qurilmalarining parallel ishlashini muvofiqlashtirish va protsessor ishlashi paytida yuzaga keladigan maxsus holatlarga javob berishga imkon beradigan mexanizm, ya'ni uzilish bu boshqaruvni bajarilayotgan dasturdan majburiy uzatishdir. ma'lum bir hodisa yuz berganda yuzaga keladigan tizim (va u orqali tegishli uzilish ishlovchisiga).
To'xtatish g'oyasi 50-yillarning o'rtalarida taklif qilingan va mubolag'asiz aytish mumkinki, u kompyuterning rivojlanishiga eng muhim hissa qo'shgan. Uzilishlarni joriy etishning asosiy maqsadi asenkron ish rejimini amalga oshirish va hisoblash kompleksining alohida qurilmalarining ishlashini parallel qilishdir. Tugatish mexanizmi hisoblash tizimining apparat va dasturiy ta'minoti tomonidan amalga oshiriladi. Interfaol tizimlarining tuzilmalari (apparat arxitekturasiga qarab) juda xilma-xil bo'lishi mumkin, ammo ularning barchasi bir umumiy narsaga ega - uzilish doimo protsessor tomonidan ko'rsatmalarning bajarilish tartibining o'zgarishiga olib keladi.
Manbaga qarab, barcha uzilishlar ikki sinfga bo'linadi:
· Uskuna (tashqi va ichki);
· Dasturiy ta'minot.
Uskuna (inglizcha interrupt Request - IRQ) - protsessorning maxsus uzilish kiritishiga uzatiladigan ba'zi uskunalarning elektr signalini etkazib berishidan kelib chiqadigan periferik qurilmalardagi hodisalar yoki mikroprotsessordagi hodisalar. Bunday holda, tashqi uzilishlar periferik qurilmalar tomonidan boshlanadi (masalan, klaviatura tugmachalarini bosish, sichqonchaning harakatlanishi, taymer, tarmoq kartasi yoki disk diskidan signal), ichki qismlar esa mikroprotsessorda bo'ladi.
Tashqi uzilishlar to'xtatilayotgan dastur buyrug'i oqimiga mos kelmaydi. Protsessor apparati shunday ishlaydi, ikkita qo'shni ko'rsatmaning bajarilishi o'rtasida asenkron uzilishlar sodir bo'ladi, tizim esa uzilishni qayta ishlagandan so'ng, keyingi buyruqdan boshlab jarayonni bajarishni davom ettiradi. Istisno deb ham ataladigan ichki uzilishlar mikroprotsessorda yuzaga keladi va ma'lum bir dastur buyrug'ini bajarish paytida favqulodda vaziyat yuzaga kelganda dasturning bajarilishi bilan sinxron ravishda boshlanadi - ular to'g'ridan-to'g'ri buyruq soati bajarilishi paytida paydo bo'ladi ("ichkarida" bajarish) . Istisno holatlariga misollar nolga bo'linish, xotirani himoya qilish xatolari, mavjud bo'lmagan manzilga kirish, foydalanuvchi rejimida imtiyozli ko'rsatmani bajarishga urinish va hk.
Dasturiy ta'minot uzilishlari (sinxron ravishda) maxsus protsessor buyrug'i bajarilganda ro'y beradi, ya'ni uzilishni simulyatsiya qiladi, ya'ni. ko'rsatmalarning yangi ketma-ketligiga o'tish. Ushbu uzilishlar sinfi avvalgilaridan farq qiladi, chunki ular mohiyatan "haqiqiy" uzilishlar emas. Ushbu mexanizm tizim dasturlari modullariga o'tish shunchaki dasturga o'tish kabi emas, balki odatdagi uzilishlar bilan bir xil tarzda sodir bo'lishi uchun maxsus joriy qilingan. Bu, avvalambor, har qanday OS buyruqlarini bajarish imkoniyati bilan protsessorni imtiyozli rejimga avtomatik ravishda almashtirishni ta'minlaydi.
Interfaollarni boshqarish mexanizmi, hisoblash tizimining arxitekturasidan qat'i nazar, qadamlarning ma'lum ketma-ketligini bajarilishini nazarda tutadi.
Qadam 1. Tugatish faktini aniqlash (uzilish so'rovi signalini qabul qilish) va uzilishni aniqlash (operatsion tizimda, ba'zida 4-bosqichda uzilish identifikatori takrorlanadi).
Qadam 2. To'xtatilgan hisoblash jarayonining holatini saqlash. Dasturni bajarish jarayonining holati, avvalambor, ko'rsatmalar hisoblagichining qiymati (keyingi buyruqning manzili), protsessor registrlari tarkibi bilan belgilanadi va shuningdek rejimning spetsifikatsiyasini o'z ichiga olishi mumkin (masalan, foydalanuvchi yoki imtiyozli rejim) va boshqa ma'lumotlar.
3-qadam. Tekshirish apparatda uzilishlar xizmatining tartibiga o'tkaziladi. Oddiy holatda, uzilishlar bilan ishlash tartibining boshlang'ich manzili buyruqlar hisoblagichiga kiritiladi va holat so'zidan olingan ma'lumotlar tegishli registrlarga yoziladi.
Qadam 2-bosqichda apparat tomonidan saqlanib bo'lmaydigan to'xtatilgan dastur haqida ma'lumotni saqlash. Ba'zi protsessorlar uzilgan hisoblash holati to'g'risida juda katta hajmdagi ma'lumotlarni saqlashni ta'minlaydi.
Qadam 5. Interrupt bilan ishlash dasturining haqiqiy bajarilishi. Ushbu ishni 3-bosqichda boshqarish uzatilgan o'sha subroutine bajarishi mumkin, ammo operatsion tizimda ko'pincha tegishli podprogramning keyingi chaqiruvi bilan amalga oshiriladi.
Qadam 6. To'xtatilgan jarayon bilan bog'liq ma'lumotlarni tiklash (4-qadamga qarama-qarshi qadam).
Qadam 7. To'xtatilgan dasturga qayting.
Shuni ta'kidlash kerakki, 1-3 bosqichlar apparatda va 4-7 bosqichlar dasturiy ta'minotda amalga oshiriladi.
Interrupt mexanizmining asosiy funktsiyalari:
· Uzilishlarni tan olish yoki tasniflash;
· Boshqaruvni tegishli uzilish ishlovchisiga o'tkazish;
· To'xtatilgan dasturga to'g'ri qaytish.
Shakl. 6-da ko'rsatilishicha, uzilishlar so'rovi yuzaga kelganda, hisoblashning tabiiy jarayoni buziladi va boshqaruv uzilishlar xizmatining tartibiga o'tkaziladi (uzilishlarni boshqarish, uzilishlar xizmati muntazamligi). Bunday holda, apparat do'konlari (qoida tariqasida, stek xotira mexanizmlari yordamida) to'xtatilgan dasturning bajarilishini davom ettirish kerak bo'lgan buyruq manzilini saqlaydi.
6-rasm - Interruptlarni boshqarish sxemasi
Interrupt ishlovchisi - bu ishlashni amalga oshirish uchun interruptga chaqirilgan maxsus protsedura. Interrupt ishlovchilari uzilish sababiga qarab ko'p funktsiyalarni bajarishi mumkin. Har bir aniq holatda ishlov beruvchi tomonidan bajariladigan funktsiya turi manzil maydonidagi ma'lum bir joyda joylashgan uzilish vektorlari jadvaliga muvofiq aniqlanadi. Interrupt ishlov beruvchisi bajarilgandan so'ng, buyruq ko'rsatgichida saqlangan buyruqlar manzilini saqlash orqali boshqaruv oldindan to'xtatilgan dasturga qaytadi, agar u uzilish sodir bo'lmaganda bajarilishi kerak edi. Ushbu uzilishlar bilan ishlash sxemasi faqat eng oddiy dasturiy ta'minot muhitida qo'llanilishini unutmang.
Anjir. 6 ko'rinib turibdiki, uzilishni qayta ishlash sxemasida ikkita xizmat ko'rsatish bo'limi mavjud - birinchisida uzilgan hisob-kitoblar konteksti saqlanadi va yakuniy qismida, aksincha, ushbu kontekstning tiklanishi. Tizimning uzilish so'rovi signaliga qayta ta'sir qilishiga yo'l qo'ymaslik uchun, takroriy himoyalash amalga oshiriladi, shuning uchun protsessing tizimi odatda uzilishlarni avtomatik ravishda "yopadi" (o'chiradi) va keyinchalik uzilish paytida uzilish tizimini qayta yoqish kerak. xizmat ko'rsatish tartibi. Qayta ishlash subroutinasining birinchi bo'limining oxirida uzilishni qayta ishlashning ustuvor rejimlari o'rnatiladi. Shunday qilib, markaziy bo'lim ishlayotganda uzilishlar yoqiladi. Qayta ishlash subroutinining yakuniy bo'limi ishi davomida uzilish tizimini yana o'chirib qo'yish kerak va kontekst tiklangandan so'ng uni qayta yoqish kerak. Ushbu harakatlar deyarli har qanday uzilishlar xizmatida bajarilishi kerak bo'lganligi sababli, ko'plab operatsion tizimlarda uzilishlar bilan ishlash tartib-qoidalarining birinchi bo'limlari maxsus tizim dasturlari moduliga - uzilishlar nazoratchisiga ajratilgan. Umuman olganda, OS tomonidan vazifalar bajarilishini boshqarish uzilishlarga javoblarni tashkil qilish, axborot almashinuvini tashkil qilish, zarur resurslarni etkazib berish, vazifani dinamikada bajarish va xizmatni tashkil qilishdan iborat. Uzilishlarning sabablari OS tomonidan belgilanadi (interrupt supervayzer), shuningdek, bu interrupt uchun zarur bo'lgan harakatlarni amalga oshiradi va ushbu vaziyatda.
Nazoratchi ishtirokida uzilishlar bilan ishlashni tashkil etish shakl. 7
7-rasm - Supervizor ishtirokidagi uzilishlar bilan ishlash
Taqdim etilgan diagrammadan ko'rinib turibdiki, to'g'ridan-to'g'ri uzilish xizmatining tartibidan to'g'ridan-to'g'ri ilgari to'xtatilgan dasturga qaytish yo'q. To'g'ridan-to'g'ri qaytish uchun qaytib kelgan manzilni stakda saqlash kifoya, bu aynan protsessor apparati bajaradi. Bunday holda, stack osonlikcha ichki uzilishlar holatida qaytish imkoniyatini beradi, chunki u har doim LCFS intizomini amalga oshiradi. Interrupt supervayzer protsessor ish registrlarini to'xtatib qo'yilgan hisoblash jarayoni kontekstini belgilaydigan joriy vazifa deskriptorida saqlaydi. Keyinchalik, u hozirgi (joriy) uzilish so'roviga xizmat ko'rsatish bilan bog'liq harakatlarni bajarishi kerak bo'lgan dasturni belgilaydi. Va nihoyat, boshqaruvni ushbu pastki dasturga o'tkazishdan oldin, interrupt nazoratchisi kerakli uzilishlarni boshqarish rejimini o'rnatadi (maskalash amalga oshiriladi, bu ba'zi bir uzilish signallarining taqiqlanishini belgilaydi). Interrupt xizmati muntazam ravishda bajarilgandan so'ng, boshqaruv yana OS yadrosiga o'tkaziladi. Bu safar allaqachon vazifalarni jo'natish bilan shug'ullanadigan modulda (3-betga qarang). Va allaqachon vazifa menejeri, o'z navbatida, protsessor vaqtini taqsimlashning qabul qilingan intizomiga muvofiq (ishlaydigan hisoblash jarayonlari o'rtasida) protsessorni ajratishga qaror qilingan vazifaning kontekstini tiklaydi.
Interrupt triggerlari protsessordan tashqarida yoki protsessor ichida hosil bo'ladi va bir vaqtning o'zida sodir bo'lishi mumkin. Shu munosabat bilan, uzilishlar bilan ishlashning yana bir ajralmas elementi bu uzilishlarning ustuvorligi bo'lib, ularning yordami bilan ular muhimligi va dolzarbligi bo'yicha tartiblanadi. Xuddi shu ustuvor qiymatga ega bo'lgan uzilishlar bir xil ustuvorlik darajasiga tegishli deb aytiladi. Shunday qilib, shubhasiz, protsessorni boshqarish zanjiridagi uzilishlar eng yuqori ustuvorlikka ega bo'lishi kerak (agar apparat to'g'ri ishlamasa, ma'lumotlarni qayta ishlashni davom ettirish mantiqsiz) va masalan, dasturiy ta'minot uzilishlari eng past ustuvorlikka ega bo'lishi kerak.
Shakl. 8 uzilish turiga qarab uzilishlar bilan ishlashning odatiy tartibini (ustuvorligini) ko'rsatadi.
8-rasm - uzilishlarni ustuvor darajalar bo'yicha taqsimlash
Masalan, agar so'ralgan uzilishning ustuvorligi protsessor monitorining ustunligidan past bo'lsa, u holda uzilish bo'lmaydi. Birinchi darajali buxgalteriya hisobi texnik vositalarga kiritilishi mumkin, shuningdek OS tomonidan belgilanishi mumkin, ya'ni. apparat tomonidan amalga oshirilgan uzilish ustuvorliklaridan tashqari, aksariyat kompyuterlar va komplekslar uzilish signallarini qayta ishlash tartibini apparat va dasturiy ta'minot orqali boshqarishga imkon beradi. Ikkinchi usul, birinchisini to'ldirib, har xil intervalli xizmat intizomlaridan foydalanishga imkon beradi.
Xulosa
Multiprogramming and multiprocessing Xulosa qilib aytganda, multiprogramma bu bir protsessorda bir vaqtning o'zida bir nechta vazifalarni bajarishdir. Ko'p ishlov berish (ko'p ishlov berish) - bir hisoblash tizimiga kiritilgan bir nechta protsessorlarda bir vaqtning o'zida bir nechta vazifalarni bajarish. Endi kompyuter arxitekturasida bir nechta protsessorlarning mavjudligi odatiy holga aylandi va server sifatida ishlatiladigan kompyuterlar uchun bu juda zarur. Ko'p dasturlashda bir vaqtning o'zida protsessorda faqat bitta dastur bajariladi va bir nechta dasturlarni bir vaqtning o'zida qayta ishlash turli xil qurilmalarning parallel ishlashi tufayli amalga oshiriladi . Protsessorda vazifalarni parallel ravishda qayta ishlash shunchaki tashqi ko'rinishdir.
Do'stlaringiz bilan baham: |