QP (ramka) - QP (framework)

QP holatidagi mashinalar ramkalari
QP-ramka
TuzuvchiKvant pog'onalari
YozilganQP / C va QP-nano C, QP / C ++ in C ++
OS oilasiAsosiy ramka / RTOS
Ishchi holatVoyaga etgan
Manba modeliOchiq manba
Marketing maqsadiO'rnatilgan tizimlar
Yangilash usuliKompaniya veb-sayti
LitsenziyaGPL va Tijorat (Ikki tomonlama litsenziyalash )
Rasmiy veb-saytstate-machine.com

QP ("Kvant platformasi") - engil vaznli oila, ochiq manba dasturiy ta'minot asoslari real vaqt rejimida sezgir va modulli qurilish uchun o'rnatilgan dasturlar hamkorlik tizimlari sifatida, tadbirlarga asoslangan faol ob'ektlar (aktyorlar).

Umumiy nuqtai

QP oilasi QP / C, QP / C ++ va QP-nano ramkalardan iborat bo'lib, ularning barchasi sifat nazorati ostida, hujjatlashtirilgan,[1] va tijorat litsenziyalanadigan.

Barcha QP ramkalari "yalang'och metall" bitta chipda ishlashi mumkin mikrokontrollerlar, an'anaviyni to'liq almashtirish Haqiqiy vaqtda ishlaydigan tizim (RTOS). Barcha yirik mutaxassisliklar uchun portlar va foydalanishga tayyor misollar keltirilgan CPU oilalari. QP / C va QP / C ++ an'anaviy bilan ham ishlashi mumkin OS /RTOS, kabi: POSIX (Linux, QNX ), Windows, VxWorks, ThreadX, MicroC / OS, FreeRTOS, va boshqalar.

Ning xatti-harakati faol ob'ektlar (aktyorlar) yordamida QP-da ko'rsatilgan ierarxik davlat mashinalari (UML statecharts ). Ushbu ramkalar UML holatidagi mashinalarni qo'lda kodlashni qo'llab-quvvatlaydi C yoki C ++ shuningdek to'liq avtomatik kod yaratish bepul grafik QM modellashtirish vositasi yordamida.[2]

QP ramkalari va QM modellashtirish vositasi ishlatiladi tibbiy asboblar, mudofaa va aviatsiya, robototexnika, maishiy elektronika, simli va simsiz telekommunikatsiya, sanoat avtomatizatsiyasi, transport, va yana ko'p narsalar.

Fon

Faol ob'ektlar bir vaqtda dasturlashning quyidagi eng yaxshi amaliyotlarini tabiiy ravishda qo'llab-quvvatlaydi va avtomatik ravishda amalga oshiradi:[3]

  • Hammasini saqlang vazifa ma'lumotlar mahalliy, vazifaning o'zi bilan bog'langan va tizimning qolgan qismidan yashiringan.
  • Vazifalar o'rtasida vositachilik hodisasi ob'ektlari orqali asenkron ravishda muloqot qiling. Asenkron hodisalarni joylashtirishdan foydalanib, vazifalar bir-birlariga to'siq qo'ymasdan mustaqil ravishda ishlaydi.
  • Vazifalar butun umrini keladigan voqealarga javob berishga sarflashi kerak, shuning uchun ularning asosiy yo'nalishi voqea halqasi.
  • Vazifalar voqealarni birma-bir qayta ishlashi kerak (oxirigacha), shunday qilib har qanday narsadan qochish kerak o'zaro bog'liqlik xavfi vazifaning o'zi ichida.

Faol ob'ektlar bir vaqtning o'zida dasturiy ta'minot haqida fikr yuritish qobiliyatingizni keskin yaxshilaydi. Aksincha, xom ashyoni ishlatish RTOS Vazifalar to'g'ridan-to'g'ri bir necha sabablarga ko'ra muammo tug'diradi, ayniqsa, xom vazifalar sizga hamma narsani qilishga imkon beradi va eng yaxshi amaliyot uchun sizga yordam yoki avtomatizatsiya taklif qilmaydi.[4] Barcha yaxshi naqshlarda bo'lgani kabi, faol narsalar ham yalang'och iplar ustida mavhumlik darajasini ko'taradi va o'z niyatingizni to'g'ridan-to'g'ri ifoda etishga imkon beradi, shu bilan sizning mahsuldorligingizni yaxshilaydi.

Faol ob'ektlar vakuumda ishlay olmaydi va dasturiy ta'minot infratuzilmasini talab qiladi (ramka ), hech bo'lmaganda: ijro etilishini ta'minlaydi ip har bir faol ob'ekt, hodisalar navbatida turish va voqealarga asoslangan vaqt xizmatlari. Resurs cheklangan o'rnatilgan tizimlar, eng katta tashvish har doim bunday ramkalarning miqyosliligi va samaradorligi bilan bog'liq edi, ayniqsa, turli xil narsalarga hamroh bo'lgan ramkalar modellashtirish vositalari an'anaviy ravishda an'anaviy ustiga qurilgan RTOS, bu yakuniy echimga xotira izlari va CPU qo'shimcha xarajatlarini qo'shadi.

QP ramkalari samaradorlik va minimal oyoq izi uchun ishlab chiqilgan bo'lib, mustaqil konfiguratsiyada RTOS kerak emas. Aslida, an'anaviy RTOSlar bilan taqqoslaganda, QP ramkalari, ayniqsa, kichikroq izlarni ta'minlaydi Ram (ma'lumotlar maydoni), lekin ayni paytda ROM (kod maydoni). Bu mumkin, chunki faol ob'ektlarga kerak emas blokirovka qilish, shuning uchun blokirovkalash mexanizmlarining aksariyati (masalan, semaforalar ) an'anaviy RTOS kerak emas.

Bu barcha xususiyatlar tadbirlarga asoslangan faol moslamalar bitta chipga juda mos keladi mikrokontrollerlar (MCU). Xom RTOS topshiriqlariga qaraganda yuqori darajadagi abstraktsiya darajasida ishlash orqali siz nafaqat unumdorlikni oshirasiz, balki uni resurslardan past darajada foydalanasiz va energiya samaradorligini oshirasiz, chunki voqealarga asoslangan tizimlar Markaziy protsessor faqat voqealarni qayta ishlashda va boshqa hollarda chipni kam quvvatli uyqu holatiga o'tkazishi mumkin.

QP arxitekturasi va tarkibiy qismlari

QP universal UML-mos keladigan voqea protsessori (QEP), portativ, voqea-hodisalarga asoslangan, real vaqtda ramka (QF), tugallanishga qadar kichik yadro (QK) va dasturiy ta'minotni kuzatish tizimidan (QS) iborat.

QP komponentlari

QEP (Quantum Event Processor) - bu to'g'ridan-to'g'ri kodlashni ta'minlaydigan UML-ga mos universal voqea protsessori UML holatidagi mashinalar (UML statecharts) har qanday holatdagi mashinaning elementlari aniq, aniq va aniq bir marta kodlash uchun xaritada joylashgan yuqori darajada saqlanadigan C yoki C ++ da (izlenebilirlik ). QEP to'liq qo'llab-quvvatlaydi ierarxik holatdagi uyalar, bu bir xil harakatlar va o'tishlarni qayta-qayta takrorlash o'rniga ko'plab davlatlarda xatti-harakatlarni qayta ishlatishga imkon beradi.

QF (Quantum Framework) - bu juda portativ, voqealarga asoslangan, real vaqtda dastur doirasi real vaqtda ishlashga mo'ljallangan davlat mashinalarini bir vaqtda bajarish uchun o'rnatilgan tizimlar.

QK (Kvant yadrosi ) kichikdir oldini oluvchi a-dagi davlat mashinalarini bajarish uchun maxsus ishlab chiqilgan blokirovka qilinmaydigan tugatish yadrosi yakuniga etkazish (RTC) moda.

QS (Quantum Spy) bu a dasturiy ta'minotni kuzatish Hodisalarga asoslangan QP dasturlarini minimal maqsadli tizim resurslari bilan va kodni to'xtatmasdan yoki sezilarli darajada sekinlashtirmasdan jonli kuzatishni ta'minlaydigan tizim.

Qo'llab-quvvatlanadigan protsessorlar

QP ramkalarining barcha turlari (QP / C, QP / C ++ va QP-nano) har xil mikroprotsessor arxitekturalari va kompilyatorlariga osongina moslashtirilishi mumkin. QP dasturiy ta'minotini moslashtirish portlash deb nomlanadi va barcha QP ramkalari portlashni osonlashtirish uchun boshidan boshlab ishlab chiqilgan.

Hozirgi vaqtda yalang'och metall QP portlari quyidagi protsessor arxitekturalari uchun mavjud:

Qo'llab-quvvatlanadigan operatsion tizimlar

QP / C va QP / C ++ ramkalari an'anaviy operatsion tizimlar va RTOSlar bilan ham ishlashi mumkin.

Hozirda QP portlari quyidagi OS / RTOS operatsion tizimlari uchun mavjud:

Litsenziyalash

Barcha QP ramka turlari ikki litsenziyali ostida ochiq manba GPLv2 va an'anaviy, yopiq manbali litsenziya. QP-ni tarqatishni istagan foydalanuvchilar (masalan, foydalanuvchi yangilanadigan qurilmalari ichiga o'rnatilgan) o'zlarining kodlarining mulkiy maqomini haq evaziga saqlab qolishlari mumkin. Tijorat, royalti bo'lmagan, yopiq manbali litsenziyalarning bir nechta turlari mavjud.

Shuningdek qarang

Adabiyotlar

  1. ^ Samek, Miro (2008). Amaliy UML statecharts, C / C ++, Ikkinchi nashr: O'rnatilgan tizimlar uchun voqealarga asoslangan dasturlash. Nyu-York. p. 728. ISBN  978-0-7506-8706-5.
  2. ^ "bepul grafik QM modellashtirish vositasi".
  3. ^ Herb Sutter (2009 yil 16 mart). "Mavzulardan to'g'ri foydalaning = Izolyatsiya + Asenkron xabarlar".
  4. ^ Herb Sutter (2010 yil 14-iyun). "Yalang'och iplar o'rniga faol ob'ektlardan foydalanishni afzal ko'rsating".

Tashqi havolalar