Toshkent axborot texnologiyalari universiteti


K/Ch portlariga ma'lumotlarni uzatish uchun dasturiy ta'minot



Download 414.08 Kb.
Page3/3
Date05.04.2024
Size414.08 Kb.
#63995
1   2   3
Mustaqil ish O\'rnatilgan tizimlar
“Ochiq kodli operatsion tizim xavfsizligi” fanidan “Axborot xavf, 13253654658
K/Ch portlariga ma'lumotlarni uzatish uchun dasturiy ta'minot
Operatsion tizimdan foydalanilganda, past darajadagi qurilma drayveri kodi odatda I/U portlari bilan o'zaro ishlaydi va foydalanuvchi ilovalari ushbu qurilma drayverlarini OC API yordamida chaqiradi. Aksariyat C/C++ kompilyatorlari qurilma drayverini kodini ishlab chiqish uchun inline assembly tilidan foydalanish imkonini beradi. Afsuski, montaj tilidan foydalanish kodni boshqa protsessorga o'tkaza olmasligini anglatadi. Bu boshqa ishlab chiquvchilar uchun kodni tushunishni qiyinlashtiradi.
X86 protsessorlarida ma'lumotlarni kiritish-chiqarish portlariga uzatish uchun ikkita maxsus mashina ko'rsatmalaridan foydalanish kerak. IN buyrug'i kiritish-chiqarish portidan ma'lumotlarni o'qiydi, OUT ko'rsatmasi esa kiritish-chiqarish portiga ma'lumotlarni yozadi. Ushbu X86 ko'rsatmalari uchun 16-bitli I/U manzil registri (DX) operandlardan biri, ma'lumotlar qiymatini saqlaydigan 8-bitli registr (AL) esa boshqa operanddir. Bu I/U o'qish va yozish shinalari davrlarini yaratadigan yagona ikkita ko'rsatma
Ko'pgina protsessorlarda ushbu kiritish-chiqarish ko'rsatmalari ham imtiyozlarga ega va ularni kiritish-chiqarish uchun OS API qo'ng'iroqlarini ishlatish o'rniga, foydalanuvchilarning kirish/chiqarishni bevosita amalga oshirishiga yo'l qo'ymaslik uchun protsessor rejimi bitini o'rnatish orqali apparatda ushlab turilishi mumkin. An'anaviy Windows ish stoli operatsion tizimlari I/U ko'rsatmalarini imtiyozli qilish uchun ushbu rejim bitidan foydalanadi, lekin ko'pgina o'rnatilgan operatsion tizimlar, jumladan Windows Embedded CE, bunday qilmaydi. Ba'zi RISC protsessorlari kirish/chiqarish qurilmalari uchun xotira manzillarining maxsus diapazonini saqlab qoladi (xotira xaritasidagi I/U) va keyin ma'lumotlarni kiritish/chiqarish qurilmalariga uzatish uchun oddiy Yuklash va saqlash ko'rsatmalaridan foydalanadi. Xotira xaritalangan kiritish/chiqarish porti maʼlumotlarini keshlash oʻchirib qoʻyilishi kerak. C# to'g'ridan-to'g'ri montaj tilini kiritishga ruxsat bermaydi, lekin u P/invoke deb nomlangan protsedura yordamida dinamik havolalar kutubxonasida (DLL) C/C++ protseduralarini chaqirishi mumkin.
Qurilma drayveri kodini ishlab chiqish uchun ko'pchilik C/C++ kompilyatorlarida I/U portlarini o'qish va yozish mumkin bo'lgan maxsus funksiya chaqiruvlari mavjud. Windows Embedded CE da Idoralar Device Driver Kit (CEDDK) yordamida 8-bitli I/U portlari uchun ikkita shunday C funksiyasi taqdim etiladi. WRITE_PORT_UCHAR(I/U manzili, ma'lumotlar) funksiyasi kirish/chiqish portiga ma'lumotlar qiymatini yozadi. READ_PORT_UCHAR(I/U manzili) funksiyasi I/U portidan o‘qilgan ma’lumotlar qiymatini qaytaradi. Manba kodi fayli CEDDK.h sarlavha faylini talab qiladi va kod CEDDK.lib kutubxonasiga bog'langan bo'lishi kerak.
Ushbu funktsiya chaqiruvlari odatda faqat past darajadagi I/U qurilma drayverlarida topiladi. Ushbu yondashuv yordamida kod boshqa protsessorlarga oson ko'chiriladi va o'qish va tushunish osonroq bo'ladi (ayniqsa, protsessorning assembler tilini bilmaydiganlar uchun). C# da bunday funksiyalar mavjud emas, lekin maxsus [DLLIMPORT] P/invoke vositasi yordamida *.dll kutubxonasida aniqlangan C/C++ funksiyalarini chaqirishi mumkin.
I/O so'rovi - bu qurilma yoki ma'lumot manbasining holatini muntazam ravishda tekshirish va ma'lum bir shart bajarilganda harakatni bajarish usuli. Misol uchun, mikrokontroller sensorni uning qiymatini o'qish uchun so'rashi yoki mavjud ma'lumotlar mavjudligini bilish uchun ketma-ket portni so'rashi mumkin. I/O soʻrovini amalga oshirish oson va hech qanday maxsus apparat yoki dasturiy taʼminotni talab qilmaydi. Biroq, u samarasiz va isrofgar bo'lishi mumkin, chunki u qayta ishlash uchun ma'lumot bo'lmasa ham, protsessor davrlari va quvvat sarflaydi. Bu, shuningdek, kechikish va o'tkazib yuborilgan hodisalarga olib kelishi mumkin, chunki qurilma yoki ma'lumotlar manbai so'rovlar davrlari orasida o'z holatini o'zgartirishi mumkin.
Interruptga asoslangan kiritish-chiqarish
Uzilishga asoslangan kiritish-chiqarish - qurilma yoki ma'lumot manbai ma'lumotlar tayyorligi, xatolik yoki vaqt tugashi kabi hodisa haqida signal berganda harakatni boshlash usuli. Misol uchun, mikrokontroller yangi qiymatga ega bo'lganda sensor tomonidan yoki ma'lumotlarni qabul qilganda ketma-ket port orqali uzilishi mumkin. Uzilish bilan boshqariladigan kiritish-chiqarish ovoz berish kiritish-chiqarishdan ko'ra samaraliroq va sezgirroqdir, chunki u faqat biror voqea sodir bo'lganda protsessor sikllari va quvvat sarflaydi. Shuningdek, u kechikishni kamaytirishi va o'tkazib yuborilgan hodisalarning oldini olishi mumkin, chunki qurilma yoki ma'lumot manbai mikrokontrollerni darhol xabardor qilishi mumkin. Biroq, uzilishga asoslangan kiritish-chiqarish yanada murakkab va amalga oshirish va disk raskadrovka qilish qiyin bo'lishi mumkin, chunki u uzilish vektorlari, ishlov beruvchilar, ustuvorliklar va maskalash kabi apparat va dasturiy ta'minotni qo'llab-quvvatlashni talab qiladi.
So'rov va uzilishga asoslangan kiritish-chiqarish o'rtasida tanlov
So'rov va uzilishga asoslangan kiritish-chiqarish o'rtasida tanlov qilishda aniq javob yo'q, chunki bu hodisalarning chastotasi va dolzarbligi, protsessor resurslari va quvvat byudjeti, tizimning ishonchliligi va mustahkamligi kabi bir qator omillarga bog'liq. dasturiy ta'minot dizaynining moslashuvchanligi. Umuman olganda, so'rovnoma kiritish-chiqarish hodisasi kamdan-kam hollarda, oldindan aytib bo'ladigan va tanqidiy bo'lmaganda va protsessorda qurilma yoki ma'lumotlar manbasini muntazam ravishda so'rov qilish uchun etarli bo'sh davrlar va quvvat mavjud bo'lganda foydalanish mumkin. Boshqa tomondan, uzilishlarga asoslangan kiritish-chiqarish hodisalar tez-tez, tasodifiy va tanqidiy bo'lsa idealdir; protsessor tsikllar va quvvatni tejash kerak bo'lganda; yoki boshqa vazifalarni parallel ravishda bajarish kerak bo'lganda. Masalan, yuqori tezlikdagi aloqa interfeysidan ma'lumotlarni qabul qilish yoki foydalanuvchi kiritishi yoki signal signaliga javob berish.
So'rovni aralashtirish va uzilishga asoslangan kiritish-chiqarish
Ba'zan, turli qurilmalar yoki ma'lumotlar manbalarining xususiyatlari va talablariga qarab, so'rov va uzilishga asoslangan kiritish-chiqarish kombinatsiyasidan foydalanishingiz kerak bo'lishi mumkin. Misol uchun, yuqori ustuvor qurilma yoki ma'lumot manbai uchun uzilishga asoslangan kiritish-chiqarish va past ustuvor qurilma yoki ma'lumot manbai uchun so'rov kiritish-chiqishidan foydalanishingiz mumkin. Yoki siz ma'lumotlar mavjudligi to'g'risida signal berish uchun uzilish bilan boshqariladigan I/U dan foydalanishingiz mumkin va ma'lumotlarni o'qish uchun I/U so'rovidan foydalanishingiz mumkin.

So'rov va uzilishga asoslangan kiritish-chiqarishni aralashtirish sizga ko'proq moslashuvchanlik va tizimingiz ishlashi va xatti-harakatlarini boshqarish imkonini beradi. Shu bilan birga, u sizning dasturiy ta'minotingizda ko'proq murakkablik va mumkin bo'lgan nizolar yoki xatolarni keltirib chiqarishi mumkin. So'rov va uzilish bilan boshqariladigan kiritish-chiqarish bir-biriga xalaqit bermasligi yoki kutilmagan muammolarni keltirib chiqarmasligi uchun tizimingizni diqqat bilan loyihalashingiz va sinab ko'rishingiz kerak.So'rov va uzilishga asoslangan kiritish-chiqarishni sinab ko'rish va disk raskadrovka qilish turli xil vositalar va usullarni talab qiladi. Misol uchun, simulyatsiya yoki emulyatsiya dasturidan qurilmalar yoki ma'lumotlar manbalarining xatti-harakati va vaqtini modellashtirish va tekshirish, shuningdek, dasturiy ta'minot mantig'i yoki aloqa protokolidagi xatolarni tekshirish uchun foydalanishingiz mumkin. Bundan tashqari, siz qurilmalar yoki ma'lumotlar manbalaridan signal va hodisalarni kuzatish uchun osiloskoplar, mantiqiy analizatorlar yoki boshqa apparat vositalaridan foydalanishingiz mumkin. To'xtash nuqtalari, kuzatuv nuqtalari va kuzatuv nuqtalari kabi dasturiy vositalar dasturiy ta'minot holatini tekshirish va o'zgartirish imkonini beradi. Shuningdek, dasturiy ta'minot bilan bog'liq har qanday muammolarni aniqlash uchun qurilmalar yoki ma'lumotlar manbalaridan olingan ma'lumotlar va hodisalarni yozib olish va ko'rsatish uchun ro'yxatga olish va hisobot berishdan foydalanishingiz mumkin.



Foydalanilgan adabiyotlar:

  1. https://www.linkedin.com/advice/1/how-do-you-choose-between-polling-interrupt-driven

  2. https://intuit.ru/studies/courses/493/349/lecture/8338?ysclid=luj3e55uif317029351

  3. https://studfile.net/preview/2652409/

Download 414.08 Kb.

Share with your friends:
1   2   3




The database is protected by copyright ©ininet.org 2024
send message

    Main page