Kontentke ótiw

QP (freymvork)

Wikipedia — erkin enciklopediya

QP (Quantum Platform) ‒ bul ashıq kodlı real waqıtta isleytuǵın engizilgen freymvorklar (RTEF) hám aktiv obektlerge (aktyorlar) hám ierarxiyalıq jaǵday mashinalarına (UML jaǵday diagrammaları) tiykarlanǵan orınlaw ortalıqlarınıń bir toparı. QP shańaraǵı jeńil salmaqlı QP/C hám QP/C++ freymvorklarınan ibarat bolıp, olar sáykes túrde C (C99) hám C++ (C++11) tillerinde jazılǵan.[1]

Real waqıt ushın aktiv obektler (aktyorlar)

QP RTEFleri real waqıtta isleytuǵın engizilgen (RTE) sistemalar ushın arnawlı islep shıǵılǵan esaplawdıń Aktiv Obekt (Aktor) modeliniń implementaciyası bolıp tabıladı.

Aktiv Obektler (Aktorlar) real waqıttaǵı yadrolar (RTOS yadroları) sıyaqlı keń túrdegi aǵım modelleri menen birlestiriliwi múmkin. Sońǵı jaǵdayda, determinirlengen ónimdarlıq ushın islep shıǵılǵan bul kombinaciya Real Waqıtta Isleytuǵın Engizilgen Freymvork (RTEF) dep ataladı. Bul freymvork engizilgen (ornatılǵan) sistemalarǵa grafikalıq modellestiriw hám kodtı generaciyalawda Real Waqıttaǵı Operaciyalıq Sistemadan (RTOS) joqarıraq dárejedegi abstrakciyalardı qollanadı, bul bolsa qáwipsiz hám tez reakciya qılatuǵın qosımshalardı jaratadı.

RTOS penen salıstırıw

(Real waqıttaǵı) freymvorktı qollanıw menen salıstırǵanda, RTOS-tı qollanıp atırǵanda, hárbir jeke aǵımnıń tiykarǵı bólegi qosımshanıń ózinde jazılıwı múmkin hám RTOS-tıń túrli xızmetleri sol jerden shaqırılıwı múmkin (mısalı, waqıt keshiktiriw yaki semafor)[2].

Freymvorktı qollanıp atırǵanıńızda, siz ulıwma arxitekturanı (mısalı, Aktiv Obektlerdiń barlıq jeke aǵımları ushın waqıya ciklı) qayta paydalanasız hám siz tek RTEF shaqıratuǵın kodtı jazasız. Bul basqarıw inversiyasına alıp keledi, bul RTEFke parallel programmalastırıwdıń eń jaqsı tájiriybelerin avtomat túrde ámelge asırıwǵa imkaniyat beredi.

Ierarxiyalıq jaǵday mashinaları

Aktiv obektlerdiń (aktyorlardıń) minez-qulqı QPde ierarxiyalıq jaǵday mashinaları (UML jaǵday diagrammaları) arqalı belgilenedi. Freymvorklar UML jaǵday mashinalarınıń C yaki C++ tillerinde qol menen kodlastırılıwın, sonday-aq biypul grafikalıq QM modellestiriw quralları arqalı tolıq avtomatlastırılǵan kod generaciyasın qollap-quwatlaydı[3].

QP freymvorkları hám QM modellestiriw quralları medicinalıq qurılmalarda, qorǵanıw hám aerokosmos tarawlarında, robototexnikada, tutınıw elektronikasında, sımlı hám sımsız telekommunikaciyada, sanaatlıq avtomatlastırıwda, transportta hám basqa da kóp tarawlarda qollanıladı.

QP arxitekturası hám komponentleri

QP ulıwma UML-ge sáykes waqıya processorınan (QEP), kóshiriwge qolaylı, waqıyaǵa tiykarlanǵan, real waqıttaǵı freymvorktan (QF), ornatılǵan real waqıttaǵı yadrolardıń tańlawınan (QV, QK yaki QXK) hám programmalıq támiynattı baqlaw sistemasınan (QS) ibarat.

Figure 1: Block diagram showing QP components and their relationship to the hardware and the application
Figure 1: Block diagram showing QP components and their relationship to the hardware and the application

QEP (QP Waqıya Processorı) - bul UML jaǵday mashinalarınıń (UML jaǵday diagrammalarınıń) joqarı dárejede saqlawǵa qolaylı C yaki C++ tillerinde tikkeley kodlastırılıwın támiyinleytuǵın ulıwma UML-ge sáykes waqıya processorı, onda hárbir jaǵday mashinası elementi kodqa dál, anıq hám tek bir márte sáykes keledi (izleniwsheńlik). QEP ierarxiyalıq jaǵdaylardı tolıq qollap-quwatlaydı, bul bir túrdegi háreketlerdi hám ótiwlerdi qayta-qayta tákirarlawdıń ornına kóplegen jaǵdaylarda minez-qulıqtı qayta paydalanıwǵa imkaniyat beredi.

QF (QP Aktiv Obekt Freymvorkı) - bul real waqıttaǵı engizilgen sistemalar ushın arnawlı islep shıǵılǵan Aktiv Obektlerdiń parallel túrde orınlanıwı ushın joqarı dárejede kóshiriwge qolaylı, waqıyaǵa tiykarlanǵan, real waqıttaǵı qosımsha freymvorkı.

QV (Kooperativ Yadro) - bul aktiv obektlerdi tolıq orınlaw (RTC) tárizinde orınlaw ushın islep shıǵılǵan kishkene kooperativ yadro.

QK (Preemptiv Yadro) - bul jaǵday mashinaların tolıq orınlaw (RTC) tárizinde orınlaw ushın arnawlı islep shıǵılǵan kishkene preemptiv tosıq bolmaytuǵın tolıq orınlaw yadrosı.

QXK (Eki Rejimli Yadro) - bul aktiv obektlerden hám dástúrli irkiliwshi aǵımlardan ibarat gibrid qosımshalar ushın islep shıǵılǵan kishkene preemptiv irkiliwshi yadro.

QS (QP/Spy) - bul maqsetli sistema resursları minimal bolǵanda hám kodtı toqtatpastan yaki áhmiyetli dárejede ástenletpesten waqıyaǵa tiykarlanǵan QP qosımshaların real waqıtta baqlawǵa imkaniyat beretuǵın programmalıq támiynattı baqlaw sisteması.

Jeke (Bare-Metal) operaciyası

QP RTEFleri ádettegi RTOS-tı tolıq almastırıp, ózbetinshe isley aladı. Freymvorklarda kooperativ QV yadrosı, preemptiv bloklanbaytuǵın QK yadrosı hám unikal preemptiv, eki rejimli (bloklanıwshı/bloklanbaytuǵın) QXK yadrosı sıyaqlı ornatılǵan real waqıttaǵı yadrolardıń tańlawı bar. ARM Cortex-Mler, sonday-aq basqa da processorlar ushın ózbetinshe QP portları hám qollanıwǵa tayar mısallar keltirilgen.

Dástúrli RTOS integraciyası

QP RTEFleri kóplegen dástúrli úshinshi tárep RTOSları menen de isley aladı. Bir neshe RTOSlar ushın (mısalı, Segger Microcontroller Systems#embOS, ThreadX, FreeRTOS, uC/OS-II h.t.b.) QP portları hám qollanıwǵa tayar mısallar keltirilgen.

Waqıyaǵa tiykarlanǵan QP qosımshaların orınlaw ushın dástúrli RTOS yadrosın qollanıwdı oylastırıwıńız múmkin bolǵan eń áhmiyetli sebeplerdiń biri - bul bar bolǵan programmalıq támiynat penen sáykeslik. Mısalı, kóplegen baylanıs stekleri (TCP/IP, USB, CAN hám t.b.) dástúrli bloklanıwshı yadro ushın islep shıǵılǵan. Sonıń menen bir qatarda, kóplegen eski kodlar semaforlar yaki waqıt keshiktiriwleri sıyaqlı bloklanıw mexanizmlerin talap etedi. Dástúrli RTOS bar bolǵan programmalıq támiynat komponentlerin waqıyaǵa tiykarlanǵan QP™ aktiv obektlerine parallel túrde ápiwayı «bloklanıwshı» aǵımlar retinde isletiwge imkaniyat beredi.

Ulıwma maqsetli operaciyalıq sistema integraciyası

QP RTEFleri Linux (POSIX), Windows hám macOS sıyaqlı ulıwma maqsetli OSler menen de isley aladı.

Ulıwma maqsetli operaciyalıq sistemalarǵa arnalǵan QP portları óz aldına qızıqlı. Mısalı, POSIXke arnalǵan QP portı real waqıttaǵı keńeytpelerdi qollap-quwatlaydı hám QNX, INTEGRITY, VxWorks hám t.b. sıyaqlı RTOSlardıń ornatılǵan Linux hám POSIX kishi sistemaları menen isleydi. Sol sıyaqlı, Windowsqa arnalǵan QP portı Windows IoT yaki Windows Embedded Compact penen isley aladı.

Biraq OS-tı qollap-quwatlaw jumıs stolı stanciyalarında tereń ornatılǵan kodtı islep shıǵıw ushın da qızıqlı bolıwı múmkin, bul «eki maqsetli» dep ataladı[4].

Licenziyalaw

QP freymvorkları ashıq kodlı GPLv3 hám dástúrli, jabıq kodlı licenziyalardıń tańlawı boyınsha eki licenziyaǵa iye. QP-di tarqatıwdı qálewshi paydalanıwshılar (mısalı, qurılmalardıń ishinde ornatılǵan) kommerciyalıq licenziyaǵa ótinish etiw arqalı óz kodlarınıń menshikli statusın saqlap qalıwı múmkin.

Derekler