26-ma'ruza 1C: buxgalteriya ma’lumotlar bazalarini tiklash tuzulmasining amaliy dasturiy paketlari. Reja
Download 309.63 Kb. Pdf ko'rish
|
26-maruza
26.5. Tanaffuslar
Tanaffuslar - bu dasturning o'zi emas, balki boshqa biron bir narsa tufayli yuzaga kelgan boshqaruv oqimidagi o'zgarishlar. Tanaffuslar odatda kirish / chiqish jarayoni bilan bog'liq. Masalan, dastur diskka ma'lumotlarni uzatishni boshlashni va uzatish tugashi bilanoq uzilishni boshlashni buyurishi mumkin. Istisnolardan tashqari, tanaffuslar dasturni to'xtatadi va boshqaruvni Interrupt Service Routine (ISR) dasturiga yoki ma'lum harakatlarni bajaradigan uzilishlarga ishlov beruvchiga o'tkazadi. Ushbu amallarni bajarganingizdan so'ng, uzilishni qayta ishlash vositasi boshqaruvni to'xtatilgan dasturga o'tkazadi. U to'xtatilgan jarayonni to'xtatilgan holatda bo'lgan holatda qayta boshlashi kerak. Bu shuni anglatadiki, barcha ichki registrlarning oldingi holati (ya'ni uzilishdan oldin bo'lgan holat) tiklanishi kerak. Istisnolar va tanaffuslar o'rtasidagi farq shundaki, istisnolar dasturga sinxron va uzilishlar asenkron. Agar siz bir xil kirish ma'lumotlari bilan dasturni qayta-qayta ishga tushiradigan bo'lsangiz, har safar dasturda bir xil holatlarda istisnolar ro'y beradi , lekin uzilishlar bo'lmaydi (bizning misolimizdagi diskda, uzilish faqat disk ma'lumotlarni uzatishni tugatgandan so'ng amalga oshiriladi, ammo bu emas. dastur talab qiladi). Istisnolardan reproduktsiya va tanaffuslarning takrorlanmasligi sababi shundaki, birinchi dastur to'g'ridan-to'g'ri dastur tomonidan chaqiriladi, ikkinchisi esa bilvosita. Shovqinlar qanday sodir bo'lishini tushunish uchun oddiy misolni ko'rib chiqing: kompyuter terminalga belgilar qatorini bosishi kerak. Dastur dastlab displey uchun mo'ljallangan barcha belgilarni buferga to'playdi, buferning boshiga ishora qilishi kerak bo'lgan ptr global o'zgaruvchini ishga tushiradi va ikkinchi global o'zgaruvchilar sonini ekranda ko'rsatiladigan belgilar soniga teng qiladi. Keyin dastur terminal tayyorligini tekshiradi va agar tayyor bo'lsa, birinchi belgini ekranga bosib chiqaradi. kirtish/chiqarish jarayonini boshlash bilan, CPU bo'shatiladi va boshqa dasturni ishga tushirishi yoki biron bir ishni bajarishi mumkin. Biroz vaqt o'tgach, belgi ekranda ko'rinadi. Keyin tanaffusni boshlash mumkin. Asosiy bosqichlar quyida keltirilgan (soddalashtirilgan shaklda). Uskuna harakatlari: 1. Qurilma boshqaruvchisi uzilish chizig'ini tizim avtobusiga yuklaydi. 2. CPU shovqinni qayta ishlashga tayyor bo'lganda, avtobusda to'xtashni tan olish belgisini tasdiqlaydi. 3. Qurilma boshqaruvchisi uzilish signali tan olinganligini aniqlasa, u "o'zini tanishtirish" uchun ma'lumot uzatish liniyalariga kichik bir sonni qo'yadi (ya'ni, qaysi qurilma uzilish manbai ekanligini ko'rsatish uchun). Bu raqam kesishuvchi vektor deb ataladi. 4. Markaziy protsessor avtobusdan chiqib ketish vektorini o'qiydi va vaqtincha saqlaydi. 5. CPU dastur hisoblagichini va dastur holati so'zini suyakka itarib yuboradi . 6. CPU xotira pastki qismidagi jadvalda indeks sifatida kesishuvchi vektordan foydalangan holda yangi yo'riqnomani topadi. Agar, masalan, dastur hisoblagichining o'lchami 4 bayt bo'lsa , n kesish vektori n 4n manziliga to'g'ri keladi. Yangi dastur hisoblagichi uzilish manbai bo'lgan qurilma uchun uzilishlar tartibining boshlanishini ko'rsatadi. Ko'pincha, bunga qo'shimcha ravishda, dastur holati so'zi yuklanadi yoki o'zgartiriladi (masalan , keyingi uzilishlarni blokirovka qilish uchun ). Keyingi harakatlar dasturiy ravishda amalga oshiriladi: 7. Interrupt ishlov beruvchisi keyinchalik zarur bo'lgan barcha registrlarni saqlab qo'yadi. Ular stakanda yoki tizim jadvalida saqlanishi mumkin . 8. Har bir uzilish vektori ushbu turdagi barcha qurilmalar tomonidan taqsimlanadi, shu sababli hozirda uzilishlar qaysi terminal tomonidan sodir bo'lganligi noma'lum. Terminal raqamini ba'zi registrlar qiymatini o'qish orqali topish mumkin. 9. Keyin siz boshqa har qanday ma'lumotni, masalan, status kodlarini o'qishingiz mumkin . 10. Agar I / O xatosi bo'lsa, siz ushbu nuqtada ishlov berishingiz kerak. 11. Ptr va hisoblashning global o'zgaruvchilari yangilanadi. Birinchisi, keyingi baytni ko'rsatish uchun 1 ga ko'paytiriladi, ikkinchisi esa 1 ga kamaytirilib, chiqish uchun 1 bayt qolganligini bildiradi. Agar hisoblash hali ham 0 dan katta bo'lsa, unda barcha belgilar hali ham chop etilmagan. Hozirda ptr bilan belgilangan belgi chiqish buferi registriga ko'chiriladi . 12. Agar kerak bo'lsa, qurilmani yoki uzilishni boshqarish moslamasini uzilish qayta ishlanganligi to'g'risida xabardor qiladigan maxsus kod chiqariladi. 13. Barcha saqlangan registrlar tiklanadi. 14. CPU to'xtatib turish buyrug'i bajarilib, CPU tanaffusdan oldingi holatga qaytariladi . Shundan so'ng, kompyuter to'xtatilgan joydan boshlab ishlashni davom ettiradi. Savollar 1. Boshqarish oqimi va o'tish davri . 2. Protseduralar . 3. Soprogrammalar . 4. Istisno holatlar . 5. Qayta ko'chirib yvaniya . Download 309.63 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling