3.10 Mifumo iliyopachikwa na ya wakati halisi
Muhtasari na msukumo
Mfumo uliopachikwa ni programu inayoendesha kwenye kifaa badala ya kwenye kompyuta ya matumizi ya jumla. Inaishi ndani ya gari, kidhibiti cha moyo, kidhibiti joto, roboti ya kiwandani, au kitengo cha uongozaji. Programu imetengwa kwa kifaa hicho, na kifaa kwa kawaida kina mipaka mikali ya kumbukumbu, nguvu ya kuchakata, na nishati. Huwezi kila mara kuongeza rasilimali zaidi kwa kubonyeza kitufe kwenye koni ya wingu. Kile unachosafirisha mara nyingi ndicho kinachoendesha kwa miaka.
Mfumo wa wakati halisi ni ule ambao usahihi unategemea muda, si kutoa jibu sahihi tu. Kidhibiti cha mfuko wa hewa kinachokokotoa amri kamili ya kutumika sekunde moja kuchelewa kimeshindwa kabisa. Kazi ya wakati halisi huongeza swali gumu kwa kila kazi: je, hii itakamilika kabla ya muda wake wa mwisho, kila mara, katika hali mbaya zaidi? Hii ni nidhamu tofauti na fikra ya uwezo wa kupitisha-kwanza ya kawaida katika programu za wavuti na wingu.
Kwa shirika kubwa, hili ni muhimu zaidi kuliko linavyoonekana mwanzoni. Mashirika hujenga magari yaliyounganishwa, vifaa vya matibabu, vidhibiti vya viwandani, na mabilioni ya vifaa vya Intaneti ya Vitu (IoT). Serikali huendesha majukwaa ya ulinzi, avionics, vidhibiti vya gridi ya umeme, na wadhibiti wa matibabu. Katika nyanja hizi kasoro ya programu inaweza kuwajeruhi watu, kusimamisha mstari wa uzalishaji, au kuhatarisha usalama wa taifa. Kanuni hapa ni kali zaidi, majaribio ni magumu zaidi, na viwango vinafunga kisheria. Sura hii inakusaidia kujenga programu iliyo sahihi, ya wakati, salama, na ya usalama chini ya vikwazo halisi. Inaunganishwa na ujenzi wa programu (sura ya 2.9), mifumo iliyosambazwa (sura ya 3.3), ukubwa na utendaji (sura ya 3.5), usalama wa miundombinu na wingu (sura ya 4.3), na matengenezo ya programu (sura ya 3.7).
Kanuni kuu
- Muda ni hitaji la usahihi, si fadhila ya utendaji. Jibu lililochelewa linaweza kuwa jibu lisilo sahihi.
- Buni kwa hali mbaya zaidi, si ya wastani. Hakikisho za wakati halisi zinasimama juu ya tabia ya hali mbaya zaidi, si kasi ya kawaida.
- Uamuzi unashinda kasi ghafi. Mfumo unaotabirika unaotimiza muda wake wa mwisho kila mara unashinda ule wa haraka zaidi unaokosa wakati mwingine.
- Rasilimali ni chache na zilizowekwa. Weka bajeti ya kumbukumbu, mizunguko ya CPU, na nishati kwa makusudi kama unavyopanga bajeti ya fedha.
- Usalama na ulinzi hubuniwa ndani, hauongezwi baadaye. Katika nyanja zinazodhibitiwa lazima uonyeshe kazi yako, si kudai ubora tu.
- Vifaa ni sehemu ya mfumo. Huwezi kufikiri kuhusu programu bila kufikiri kuhusu chipu, vihisi, na fizikia.
- Masasisho ya uwandani ni uwezo wa mzunguko wa maisha, si wazo la baadaye. Vifaa vilivyo ulimwenguni vinahitaji njia salama ya kupokea marekebisho.
Mapendekezo
Ainisha kila hitaji la muda kama ngumu, imara, au laini
Si muda wote wa mwisho ni sawa. Muda wa mwisho wa wakati halisi mgumu kamwe haupaswi kukosekana, kwa sababu kukosa husababisha kushindwa kwa mfumo au madhara: fikiria udhibiti wa injini au nyuso za ndege. Muda wa mwisho imara unavumilia kukosa nadra, lakini matokeo yaliyochelewa hayana manufaa na hutupwa. Muda wa mwisho wa wakati halisi laini hudhoofisha thamani kwa neema: fremu ya video inayofika kuchelewa kidogo hupunguza ubora lakini haisababishi maafa. Weka lebo kwa kila kazi nyeti kwa muda na darasa lake, kwa sababu juhudi, ukali wa majaribio, na gharama hutofautiana sana. Sifa mbili zinaelezea tabia ya muda. Ucheleweshaji ni kuchelewa kati ya tukio na jibu. Mtetemo ni tofauti ya ucheleweshaji huo kutoka tukio moja hadi lingine. Mifumo migumu ya wakati halisi hujali kufunga mtetemo kama kupunguza ucheleweshaji, kwa sababu kutabirika ndiko kunakokuruhusu kuthibitisha muda wa mwisho unatimizwa daima.
Chagua msingi wako wa utekelezaji kwa makusudi: RTOS au vifaa tupu
Una misingi miwili mikuu. Firmware ya vifaa tupu inaendesha moja kwa moja kwenye vifaa bila mfumo wa uendeshaji, ikitumia kitanzi rahisi na vishughulikiaji vya kukatiza. Ndiyo chaguo dogo zaidi na linalotabirika zaidi, na linafaa vifaa vidogo vyenye kazi moja wazi. Mfumo wa uendeshaji wa wakati halisi (RTOS) ni mfumo mdogo wa uendeshaji unaopanga kazi kwa kipaumbele na kuhakikisha mipaka ya muda. Unakupa kazi nyingi, mpangaji, na huduma kama vipima muda na foleni za ujumbe, huku ukiweka muda ukitabirika. Chagua RTOS pale una kazi kadhaa za wakati mmoja zenye muda tofauti wa mwisho. Chagua vifaa tupu pale kifaa kimebanwa sana au muda lazima uwe rahisi kwa kuthibitishika. Kwa kazi ngumu ya wakati halisi, pendelea mpangaji wa kipaumbele wa kukatiza, na uuchambue kwa mbinu kama upangaji wa rate-monotonic, unaogawa vipaumbele kwa marudio ya kazi na kukuruhusu kuthibitisha seti ya kazi inaweza kupangwa.
Weka bajeti ya kumbukumbu, CPU, na nguvu kama rasilimali za daraja la kwanza
Chukulia kila rasilimali adimu kama bajeti yenye dari ngumu. Kwa kumbukumbu, pendelea ugawaji tuli kuliko ugawaji wa kidinamiki kwenye lundo, kwa sababu kumbukumbu ya kidinamiki inaweza kugawanyika na kushindwa bila kutabirika wakati mbaya zaidi. Viwango vingi vya usalama vinazuia au kupiga marufuku matumizi ya lundo baada ya kuanza kwa sababu hiyo hiyo. Kwa CPU, pima muda wa utekelezaji wa hali mbaya zaidi (WCET), muda mrefu zaidi ambao kazi inaweza kuchukua, na upange dhidi ya namba hiyo, si wastani. Kwa nguvu, kumbuka vifaa vingi huendesha kwa betri au huvuna nishati, kwa hiyo buni mizunguko ya kazi, hali za kulala, na matukio ya kuamsha kufikia bajeti ya nishati inayopaswa kudumu miezi au miaka. Andika bajeti hizi na uzipitie kama hitaji lingine lolote.
Shughulikia kukatiza na ulinganifu kwa nidhamu kali
Kukatiza ni ishara ya vifaa inayositisha kazi ya sasa kuendesha kishughulikiaji mara moja. Kukatiza ndivyo vifaa vinavyoitikia ulimwengu papo hapo, na ni chanzo kikuu cha hitilafu fiche. Weka vishughulikiaji vifupi iwezekanavyo: kiri tukio, hifadhi data ndogo, na uahirishe kazi halisi kwa kazi ya kawaida. Kwa sababu kukatiza kunaweza kuwaka kati ya maagizo yoyote mawili, lazima ulinde data ya pamoja dhidi ya hali za mbio kwa uangalifu. Tumia mbinu zisizo na kufuli, sehemu fupi muhimu, au viini vinavyoeleweka vizuri, na ujilinde dhidi ya ugeuzi wa kipaumbele, ambapo kazi ya kipaumbele cha chini inayoshikilia kufuli inazuia ile ya kipaumbele cha juu. Ulinganifu huu unashiriki fikra ya sura ya 3.3, lakini kwa muda mkali zaidi na bila nafasi ya kujaribu upya.
Andika vidhibiti vya vifaa vinavyotenga undani wa vifaa
Kidhibiti cha kifaa ni safu ya programu inayozungumza na kipande mahususi cha vifaa: kihisi, redio, kidhibiti cha injini. Weka msimbo mahususi wa vifaa nyuma ya kiolesura safi, ili programu yako yote nyingine itegemee dhana thabiti badala ya anwani za rejista. Hii hufanya msimbo ujaribike nje ya lengo, rahisi kuhamisha chipu inapokosekana sokoni, na rahisi zaidi kufikiria. Andika kila dhana kuhusu muda, mpangilio wa baiti, na tabia za ajabu za vifaa, kwa sababu hivi ndivyo undani unaosababisha kushindwa uwandani. Hii ni nidhamu ya ujenzi ya sura ya 2.9 inayotumika pale biti isiyo sahihi inaweza kukwamisha injini.
Pokea kiwango cha usalama wa kiutendaji kinachotawala kikoa chako
Kifaa chako kikiweza kudhuru watu au mali, kiwango cha usalama wa kiutendaji kuna uwezekano mkubwa kinatumika, na mara nyingi ni sheria. IEC 61508 ni kiwango cha jumla cha usalama wa mifumo ya kielektroniki na mzazi wa vingine kadhaa. ISO 26262 hutawala usalama wa magari ya barabarani. DO-178C hutawala programu ya angani katika usafiri wa anga wa kiraia. IEC 62304 hutawala programu ya vifaa vya matibabu. Kwa uandishi wa msimbo, MISRA C ni seti inayotumika sana ya kanuni zinazozuia vipengele hatari vya lugha ya C ili kufanya msimbo uwe salama zaidi na unaochambulika. Viwango hivi vinadai ufuatiliaji kutoka hitaji hadi msimbo hadi jaribio, michakato iliyofafanuliwa, na ushahidi unaoweza kumkabidhi mkaguzi au mdhibiti. Pokea kiwango sahihi mapema, kwa sababu kurudisha njia ya karatasi baadaye ni chungu na wakati mwingine haiwezekani.
Jaribu kwa uigaji na vifaa-ndani-ya-mzunguko
Huwezi kujaribu programu iliyopachikwa jinsi unavyojaribu programu ya wavuti. Jenga mkakati wa tabaka. Endesha majaribio ya kitengo kwenye kompyuta ya kawaida dhidi ya kiolesura cha uondoaji wa maelezo wa vifaa. Tumia uigaji kuunda kifaa na mazingira yake pale vifaa halisi ni adimu au hatari kuvitumia. Kisha tumia majaribio ya vifaa-ndani-ya-mzunguko (HIL), ambapo kidhibiti halisi kinaendesha dhidi ya toleo lililoigwa la mfumo wa kimwili inaoudhibiti, ili uweze kujaribu kwa usalama hali za kushindwa kama kihisi kilichokwama au mzigo wa ghafla. Otomatisha majaribio haya kwenye bomba lako ili kila badiliko likaguliwe chini ya hali halisi kabla ya kufika kifaani.
Buni masasisho ya hewani na usalama wa kifaa tangu siku ya kwanza
Vifaa vilivyo uwandani vitahitaji marekebisho, kwa hiyo panga masasisho ya hewani (OTA): njia ya kutoa firmware mpya kwa usalama kupitia mtandao. Usanifu salama wa OTA husaini kila sasisho kriptografia, huthibitisha saini kabla ya kusakinisha, husasisha kwa atomiki, na unaweza kurudi kwenye picha inayojulikana kuwa nzuri ile mpya ikishindwa kuanza. Oanisha hili na kanuni za usalama za sura ya 4.3, zilizorekebishwa kwa vifaa vilivyobanwa. Tumia mzizi wa uaminifu wa vifaa na uanzishaji salama ili firmware iliyosainiwa tu iendeshe. Simba data inaposafiri na ikihifadhiwa. Badilisha vitambulisho vya chaguo-msingi na uzime violesura visivyotumika. Meli ya IoT ni mfumo uliosambazwa wenye uso mkubwa wa shambulio, na nenosiri moja dhaifu la chaguo-msingi linaweza kuhatarisha mamilioni ya vifaa kwa wakati mmoja.
Mabadilishano: faida na hasara
| Chaguo | Faida | Hasara / gharama |
|---|---|---|
| RTOS | Kazi nyingi, upangaji wa kipaumbele, huduma za muda | Mzigo, alama kubwa zaidi, mkunjo wa kujifunza |
| Vifaa tupu | Ndogo zaidi, inayotabirika zaidi, udhibiti kamili | Ngumu kupanua kwa kazi nyingi, kazi ya mkono zaidi |
| Ugawaji tuli | Inatabirika, hakuna mgawanyiko, rafiki kwa usalama | Haibadiliki sana, lazima kupima kila kitu mapema |
| Uthibitisho rasmi wa usalama | Ufikiaji halali wa soko, ushahidi wa ukali, uaminifu wa juu | Gharama kubwa ya muda na fedha, kurudia polepole |
| Masasisho ya OTA | Rekebisha na boresha vifaa vilivyo uwandani, ongeza maisha | Miundombinu ya sasisho, mzigo wa usalama, hatari ya kurudisha nyuma |
Biashara kuu ni kati ya kutabirika na unyumbufu. Kila kitu kinachofanya mfumo wa matumizi ya jumla kuwa rahisi (kumbukumbu ya kidinamiki, ukusanyaji wa taka wa nyuma, upangaji wa juhudi bora, rasilimali zinazonyumbulika) kinafanya kazi dhidi ya hakikisho kwamba kazi daima inakamilika kwa wakati ndani ya alama iliyowekwa. Uhandisi wa mifumo iliyopachikwa na ya wakati halisi huacha kwa makusudi unyumbufu kununua uamuzi na usalama. Ujuzi ni kutumia biashara hiyo tu pale muda wa mwisho au hatari inapodai kweli, na kuweka sehemu zinazonyumbulika, za kasi zaidi (kama sehemu ya nyuma ya wingu ya kifaa) upande wa pili wa mpaka safi.
Maswali ya kujadili na timu yako
Mnapima mtetemo, au ucheleweshaji wa wastani tu, kwenye njia zenu muhimu kwa muda? Usahihi mgumu wa wakati halisi unasimama juu ya kufunga tofauti ya muda wa kujibu (mtetemo), si kupunguza ucheleweshaji wa kawaida tu, kwa sababu kutabirika ndiko kunakokuruhusu kuthibitisha muda wa mwisho unatimizwa daima. Mzunguko wa udhibiti wenye wastani mdogo lakini miruko mikubwa ya mara kwa mara bado unaweza kukosa muda wake na kusababisha madhara, na wastani utaficha hilo. Leta vipimo vya mgawanyiko, hali mbaya zaidi ikijumuishwa, kwa kila kazi muhimu kwa muda, na uweke lebo kila moja kuwa ngumu, imara, au laini ili ukali wa majaribio ulingane na matokeo ya kukosa. Kila kitu kinachofaa katika mifumo ya matumizi ya jumla (kumbukumbu ya kidinamiki, ukusanyaji wa taka, upangaji wa juhudi bora) kinashambulia kutabirika, kwa hiyo kinabaki nje ya njia ngumu. Mkiripoti wastani tu, huwezi kudai kwa uaminifu kwamba muda mgumu wa mwisho unatimizwa.
Uchaguzi wenu wa RTOS-au-vifaa-tupu bado ni sahihi, na mnaweza kuthibitisha seti ya kazi inaweza kupangwa? Msingi wa utekelezaji ni uamuzi wa kupitiwa upya kifaa kinapokua: vifaa tupu ni vidogo na vinavyotabirika zaidi kwa kazi moja wazi, wakati RTOS inastahili mzigo wake pale mnapokuwa na kazi kadhaa za wakati mmoja zenye muda tofauti wa mwisho. Kwa kazi ngumu ya wakati halisi sura inaelekeza kwa mpangaji wa kipaumbele wa kukatiza unaochambuliwa kwa mbinu kama upangaji wa rate-monotonic, unaokuruhusu kuthibitisha kazi zinatoshea badala ya kutumaini. Leta seti ya sasa ya kazi, marudio yao, na muda wao wa utekelezaji wa hali mbaya zaidi, na uangalie kama uwezo wa kupangwa unashikilia kweli au kazi zimekusanyika kimyakimya zaidi ya msingi unavyoweza kuhakikisha. Jilinde dhidi ya ugeuzi wa kipaumbele, ambapo kazi ya kipaumbele cha chini inayoshikilia kufuli inakwamisha ya kipaumbele cha juu. Kuchagua msingi kwa mazoea badala ya kwa seti ya kazi ndivyo hakikisho za muda zinavyomomonyoka kimyakimya.
Mpaka kati ya kifaa cha uamuzi na sehemu ya nyuma ya wingu inayonyumbulika uko wapi hasa, na je, ni safi vya kutosha kusonga haraka upande mmoja bila kuhatarisha mwingine? Biashara kuu ya sura inaacha unyumbufu kununua uamuzi na usalama, na ujuzi ni kutumia biashara hiyo tu pale muda wa mwisho au hatari inapodai kweli. Mpaka safi unaruhusu firmware muhimu kwa usalama kubaki ya tahadhari na iliyothibitishwa huku sehemu ya nyuma ya wingu ikirudia haraka, ili hizo mbili zibadilike kwa kasi zao salama. Leta usanifu wenu na mtafute kiungo hicho: nini lazima kithibitishwe kuwa cha uamuzi na kusasishwa kupitia njia iliyosainiwa, iliyothibitishwa, dhidi ya nini kinaweza kubadilika kila wiki kwenye seva. Kufifisha mstari huvuta tabia za mtindo wa wingu (ugawaji wa kidinamiki, muda wa juhudi bora) kwenye njia ya udhibiti, au kupunguza kasi ya sehemu ya nyuma bila sababu hadi kasi ya firmware. Kuweka mpaka sahihi ndiko kunakoweka ushahidi wa usalama na kasi ya utoaji vikiwa salama.
Kiwango gani cha usalama wa kiutendaji kinatawala kila bidhaa, na ushahidi wa sasa uko umbali gani kutoka kile mkaguzi angekubali? Kiwango (IEC 61508, ISO 26262 kwa magari ya barabarani, DO-178C kwa programu ya angani, IEC 62304 kwa vifaa vya matibabu) mara nyingi ni sheria, na kinadai ufuatiliaji kutoka hitaji hadi msimbo hadi jaribio ambao huwezi kughushi mwishoni. Kwa timu kubwa hatari ni kwamba vikundi hupokea njia ya karatasi bila usawa, kwa hiyo mstari mmoja wa bidhaa uko tayari kwa ukaguzi huku mwingine ukigundua katikati ya uthibitisho kwamba mahitaji yake hayakufuatiliwa kamwe. Mvuto unaoshindana ni kasi: ufuatiliaji kamili na utekelezaji wa MISRA C hupunguza kasi ya kurudia kila siku, na timu iliyo chini ya shinikizo la tarehe ya mwisho inashawishika kuahirisha ushahidi hadi “baadaye”. Leta matriki ya sasa ya ufuatiliaji, matokeo ya uchambuzi tuli ambayo bado yako wazi, na uchambuzi wa uaminifu wa mapengo dhidi ya ngazi lengwa ya uhakikisho. Katika mazingira ya mashirika makubwa na serikali, ongeza muda wa kuongoza wa uthibitisho na matarajio ya mkaguzi, kwa sababu kurudisha ushahidi baada ya usanifu ni polepole, ghali, na wakati mwingine hakuwezekani, na uthibitisho uliocheleweshwa unaweza kuzuia ufikiaji wa soko kabisa.
Kasoro kubwa ikipatikana kwenye kifaa kilicho uwandani kesho, mngeirekebisha kwa usalama kuvuka meli nzima kwa kasi gani, na mmefanyia mazoezi kurudisha nyuma? Kifaa usichoweza kukipachika kinakuwa dhima ya kudumu ya usalama na ulinzi, na kuitwa tena kwa kimwili kunagharimu mara nyingi zaidi sana ya sasisho la hewani lililosainiwa. Mvutano ni kwamba utaratibu wa sasisho wa uangalifu mdogo wenyewe ni uso wa shambulio na hatari ya kuharibu kifaa: njia ya OTA inayosakinisha picha zisizosainiwa, au isiyoweza kurudisha nyuma uanzishaji mbaya, inaweza kugeuza toleo moja baya kuwa mamilioni ya vitengo vilivyokufa. Leta usanifu wenu wa sasisho (kusaini kriptografia, kuthibitisha saini kabla ya kusakinisha, usakinishaji wa atomiki, kurudi nyuma kiotomatiki kwa picha inayojulikana kuwa nzuri), hali ya uanzishaji salama na mzizi wa uaminifu wa vifaa, na lini mara ya mwisho yeyote alijaribu kurudisha nyuma kwenye vifaa halisi. Kwa meli ya shirika kubwa au ya umma, ongeza nani anawajibika kwa funguo za kusaini na jinsi mngebatilisha moja iliyoathirika, kwa sababu ufunguo uliovuja au kitambulisho cha chaguo-msingi kilichoshirikiwa kinaweza kuhatarisha meli nzima kwa wakati mmoja.
Bajeti zenu za kumbukumbu, CPU, na nguvu zimeandikwa kwa dari ngumu, na mkakati wenu wa majaribio unatumia uigaji na vifaa halisi? Hakikisho za wakati halisi zinasimama juu ya muda wa utekelezaji wa hali mbaya zaidi na alama iliyowekwa ya rasilimali, si tabia ya wastani, kwa hiyo ugawaji wa lundo usiopangiwa bajeti au mzigo wa hali mbaya zaidi usiojaribiwa ndipo uamuzi humomonyoka kimyakimya. Kwa timu kubwa hatari ni kuteleza: kazi hukusanyika, kumbukumbu hupanda polepole, na hakuna anayemiliki bajeti hadi kifaa kishindwe uwandani baada ya wiki za muda wa kufanya kazi. Biashara ni ufikiaji dhidi ya gharama, kwa sababu jukwaa la vifaa-ndani-ya-mzunguko linaloingiza kushindwa kama kihisi kilichokwama ni ghali kujenga, huku uigaji peke yake ukificha hitilafu za muda zinazoonekana tu kwenye chipu halisi. Leta bajeti zilizoandikwa, muda uliopimwa wa utekelezaji wa hali mbaya zaidi dhidi yake, na ushahidi kwamba bomba lenu linaendesha majaribio ya kitengo kwenye safu ya uondoaji wa maelezo, uigaji, na vifaa-ndani-ya-mzunguko kabla ya toleo. Katika mazingira yanayodhibitiwa na ya serikali, funga hili na ufikiaji wa majaribio ya kimuundo ambao kiwango kinahitaji, kwa kuwa mkaguzi atataka uthibitisho kwamba hali za kushindwa zilitumika, si uhakikisho kwamba kesi ya wastani ilionekana sawa.
Mtazamo wa sekta
Kampuni changa. Kasi na kunusurika vinatawala, kwa hiyo chagua RTOS nyepesi au kitanzi rahisi cha vifaa tupu, piga marufuku ugawaji wa kidinamiki baada ya kuanza, na upime muda wa hali mbaya zaidi wa kitanzi chako kimoja muhimu badala ya kufukuza bajeti ya uthibitisho usiyo nayo. Ruka michakato rasmi ya usalama wa kiutendaji isipokuwa soko lako linalazimisha, lakini kamwe usiruke masasisho ya hewani yaliyosainiwa yenye kurudi nyuma kiotomatiki: kampuni changa haiwezi kunusurika kuitwa tena kwa bidhaa uwandani, na marekebisho ya mbali ndiyo tofauti kati ya usiku mbaya na bidhaa iliyokufa. Weka firmware ya kifaa ndogo na ya tahadhari ili wahandisi wako adimu wasidumishe bomba wasiloweza kulimudu.
Biashara ndogo. Bila mtaalamu wa mifumo iliyopachikwa kwenye wafanyakazi, tegemea moduli zilizothibitishwa, miundo ya marejeo, na usambazaji wa RTOS wa muuzaji badala ya kuandika mpangaji au bootloader yako mwenyewe. Weka uamuzi wa kujenga-dhidi-ya-kununua kuzunguka nani atapachika kifaa kwa muongo ujao: mfumo wa usalama na sasisho uliyonunuliwa unaoweza kuutegemea unashinda maalumu ambao hakuna aliyebaki anayeweza kuudumisha. Chukulia nenosiri za chaguo-msingi, violesura wazi vya utatuzi, na masasisho yasiyosainiwa kama kushindwa kunakoelekea kukuumiza zaidi, kwa sababu ni nafuu kuzuia na maangamizi kugundua uwandani.
Biashara kubwa. Tatizo ni uthabiti kuvuka mistari mingi ya bidhaa na timu: sera ya pamoja ya msingi wa utekelezaji, violezo vya kawaida vya bajeti ya rasilimali, MISRA C iliyotekelezwa na uchambuzi tuli, na jukwaa moja lililothibitishwa la masasisho ya hewani na uanzishaji salama ili kila kikundi kisivumbue upya. Weka bajeti ya mzigo wa usalama wa kiutendaji na vifaa-ndani-ya-mzunguko waziwazi, sawazisha kiolesura cha uondoaji wa maelezo wa vifaa ili chipu inayokosekana sokoni isikwamishe bidhaa, na simamia ushahidi wa muda wa meli, vitu vya usalama, na msimamo wa ulinzi kama mali zinazotawaliwa badala ya hadithi za kale za kila timu. Kitambulisho kimoja dhaifu cha chaguo-msingi kuvuka meli ni dhima ya ukubwa wa shirika, kwa hiyo weka usimamizi wa vitambulisho na funguo kati.
Serikali. Kanuni za ununuzi, uwazi, na uwajibikaji wa umma huumba kila uchaguzi. Hitaji wagavi wakuze programu ya angani, ya matibabu, au ya ulinzi kwa kiwango kinachotawala (DO-178C, IEC 62304, IEC 61508) kwa ngazi ya uhakikisho inayolingana na hatari, na wakabidhi ufuatiliaji na ushahidi wa ufikiaji wa kimuundo ambao wakaguzi watapitia. Dai uanzishaji salama, mzizi wa uaminifu wa vifaa, na mchakato wa masasisho ya uwandani uliodhibitiwa, uliosainiwa, kwa sababu sasisho lisilothibitishwa kwa mfumo wa ndege au gridi haikubaliki. Pendelea mikataba inayotoa haki kwa chanzo, vitu vya usalama, na uwezo wa kuthibitisha upya na mgavi wa pili, ili muuzaji anayefilisika asiache mfumo ambao umma unautegemea kwa miongo.
Mifano
Kampuni changa. Kampuni changa ndogo ya vifaa inayojenga kichunguzi cha ubora wa hewa kinachotumia betri inaandika firmware yake dhidi ya RTOS nyepesi yenye seti thabiti ya kazi na bila ugawaji wa kidinamiki baada ya kuanza, kwa hiyo kifaa kinachosafirishwa ndicho kinachoendesha kwa miaka kwenye betri ya sarafu. Hata bila bajeti ya uthibitisho, timu inapima muda wa hali mbaya zaidi wa kitanzi chake cha kusoma kihisi na kujaribu kitengo dhidi ya hali za kushindwa zilizoingizwa kwenye benchi kabla ya kila toleo. Masasisho ya hewani yaliyosainiwa yenye kurudi nyuma kiotomatiki yanawaruhusu kurekebisha kasoro kuvuka kila kitengo kilichosafirishwa, kwa hiyo usomaji mbaya uwandani haimaanishi kuitwa tena kwa bidhaa ambayo kampuni changa haiwezi kunusurika.
Biashara kubwa. Mtengenezaji wa magari yaliyounganishwa anajenga kidhibiti cha breki cha kielektroniki. Mzunguko mgumu wa udhibiti wa wakati halisi unaendesha kwenye RTOS yenye upangaji wa rate-monotonic na kumbukumbu tuli, na kila kazi inabeba muda uliopimwa wa utekelezaji wa hali mbaya zaidi. Timu inakuza kwa ISO 26262 yenye ufuatiliaji kamili kutoka hitaji hadi msimbo hadi jaribio, na inatekeleza MISRA C kwa uchambuzi tuli kwenye kila commit. Jukwaa la vifaa-ndani-ya-mzunguko linarudia maelfu ya hali za barabarani, ikijumuisha kushindwa kwa vihisi kulikoingizwa, kabla ya firmware yoyote kusafirishwa. Masasisho ya OTA yaliyosainiwa yanaiwezesha kampuni kurekebisha kasoro kuvuka meli nzima bila kuitwa tena kwa gharama, na kurudi nyuma kiotomatiki gari likishindwa kuanza picha mpya.
Serikali. Mamlaka ya kitaifa ya usafiri wa anga inathibitisha kompyuta mpya ya usimamizi wa ndege. Mgavi anakuza programu ya angani kwa DO-178C kwa ngazi ya uhakikisho inayolingana na hatari, akizalisha ushahidi wa ufikiaji wa mahitaji na ufikiaji wa majaribio ya kimuundo ambao wakaguzi wanapitia. Muda unathibitishwa kuwa wa uamuzi chini ya mzigo wa hali mbaya zaidi, wenye ucheleweshaji wa kukatiza uliofungwa na bila ugawaji wa kidinamiki baada ya kuanza. Uanzishaji salama na mzizi wa uaminifu wa vifaa vinahakikisha firmware iliyosainiwa, iliyothibitishwa tu ndiyo inaendesha. Masasisho ya uwandani yanafuata mchakato uliodhibitiwa, uliosainiwa, kwa sababu sasisho lisilothibitishwa kwa mfumo wa ndege haikubaliki.
Kesi ya biashara: sababu, ROI, na TCO
Kesi ya biashara inatawaliwa na gharama ya kushindwa na gharama ya ufikiaji wa soko. Katika nyanja zinazodhibitiwa, huwezi kuuza bidhaa kabisa bila uthibitisho wa usalama, kwa hiyo gharama ya mchakato ni bei ya kuingia tu. Zaidi ya hapo, kasoro katika vifaa vilivyo uwandani ni ghali isivyo kawaida: kuitwa tena kwa kimwili kunagharimu zaidi sana ya marekebisho ya haraka ya wingu, na tukio la usalama hubeba dhima, adhabu ya udhibiti, na madhara ya sifa yanayoweza kumaliza mstari wa bidhaa. Kujenga usalama, uamuzi, na uwezo wa kusasishwa ndani tangu mwanzo ni nafuu ikilinganishwa na kugundua kutokuwepo kwake uwandani.
Weka malipo ya uwekezaji kuzunguka kuitwa tena kulikoepukwa, uthibitisho wa haraka zaidi, na maisha marefu ya kifaa. Uwezo imara wa OTA hubadilisha kuitwa tena kwingi kuwa marekebisho ya mbali ya gharama ndogo, na kila kuitwa tena kulikoepukwa kunaweza kulipa programu nzima ya sasisho. Uchambuzi mkali wa WCET na upangaji wa bajeti ya rasilimali hukuruhusu kusafirisha kwenye vifaa vya bei nafuu kwa kujiamini, kupunguza gharama kwa kila kitengo kuvuka meli kubwa. Kwa jumla ya gharama ya umiliki, kumbuka vifaa hivi huishi kwa miaka au miongo: mzigo wa matengenezo, kupachika usalama, na msaada (sura ya 3.7) unazidi sana ujenzi wa awali. Kubuni kwa uwezo wa kusasishwa, uondoaji safi wa maelezo wa vifaa, na bajeti zilizoandikwa ndiko kunakoweka mkia huo mrefu kuwa wa kumudu.
Mifumo mibaya na mitego
- Kuboresha kwa kesi ya wastani. Kutimiza muda wa mwisho “kwa kawaida” ni kushindwa hitaji gumu la wakati halisi.
- Ugawaji wa kidinamiki kwenye njia ya udhibiti. Mgawanyiko wa lundo husababisha kushindwa kunakoonekana tu baada ya wiki za muda wa kufanya kazi.
- Vishughulikiaji vya kukatiza vinene. Kuweka uchakataji mzito ndani ya kukatiza kunavunja bajeti yako ya muda na kuunda hali za mbio.
- Kupuuza kiwango hadi ukaguzi. Kurudisha ufuatiliaji na ushahidi kuchelewa ni polepole, ghali, na wakati mwingine hakuwezekani.
- Kusafirisha bila njia ya sasisho. Kifaa usichoweza kukipachika kinakuwa dhima ya kudumu ya usalama na ulinzi.
- Nenosiri za chaguo-msingi na violesura wazi. Kitambulisho kimoja dhaifu kinageuza meli ya IoT kuwa botnet.
- Kujaribu kwenye kiigizi tu au vifaa tu. Kila kimoja huficha hitilafu ambazo kingine kingenasa; unahitaji vyote viwili.
- Kuchukulia vifaa kama tatizo la mtu mwingine. Muda, mpangilio wa baiti, na tabia za ajabu za vihisi ni masuala ya programu hapa.
Kielelezo cha ukomavu
- Ngazi ya 1: Kuanzisha. Muda unatumainiwa, haujachambuliwa. Kumbukumbu inagawiwa kwa kidinamiki kwa hiari. Hakuna kiwango cha usalama wa kiutendaji kinachofuatwa. Majaribio ni ya mkono na kwenye kifaa tu. Vifaa haviwezi kusasishwa mara vinaposafirishwa, kwa hiyo kasoro ya uwandani inamaanisha kuitwa tena au dhima ya kudumu.
- Ngazi ya 2: Kuendeleza. Baadhi ya kazi zina muda uliopimwa na RTOS ya msingi au kitanzi chenye muundo kipo, lakini mazoea hutofautiana timu hadi timu. Miongozo ya uandishi wa msimbo ipo lakini haitekelezwi. Majaribio yanajumuisha uigaji fulani. Njia ya sasisho ya mkono, hatari ipo kwenye baadhi ya bidhaa na si zingine. Tabia nzuri zipo lakini hazina uthabiti, na hakuna kinachohakikisha mstari wa bidhaa unaofuata unarithi.
- Ngazi ya 3: Kusawazisha. Mahitaji ya muda yanaainishwa kuwa magumu, imara, au laini, na kuchambuliwa kwa muda wa utekelezaji wa hali mbaya zaidi na mbinu ya uwezo wa kupangwa, vilivyoandikwa na kutekelezwa shirika zima. Bajeti za rasilimali kwa kumbukumbu, CPU, na nguvu zimeandikwa kwa dari ngumu. Kiwango cha usalama wa kiutendaji kinachotawala kinafuatwa kwa ufuatiliaji kutoka hitaji hadi msimbo hadi jaribio, na MISRA C au sawa nayo inatekelezwa kwa uchambuzi tuli kwenye kila commit. Majaribio ya vifaa-ndani-ya-mzunguko yanaendesha kwenye bomba. Masasisho ya hewani yaliyosainiwa, ya atomiki yenye kurudi nyuma na uanzishaji salama ndiyo kiwango kinachohitajika kila mahali.
- Ngazi ya 4: Kusimamia. Shirika linapima na kudhibiti eneo lake lililopachikwa dhidi ya vipimo vya msingi. Linafuatilia pembe za muda wa utekelezaji wa hali mbaya zaidi, migawanyo ya mtetemo, viwango vya kukosa muda wa mwisho, nafasi ya kumbukumbu na nguvu, matokeo ya uchambuzi tuli ambayo bado yako wazi, ufikiaji wa ushahidi wa uthibitisho, na viwango vya mafanikio ya sasisho la hewani na kurudisha nyuma, na kuvilinganisha na malengo yaliyokubaliwa. Kuteleza dhidi ya bajeti ya rasilimali au muda huchochea hatua kabla kifaa hakijashindwa uwandani, na maamuzi ya kwenda au kutokwenda kwa matoleo yanasimama juu ya data hii badala ya busara ya papo hapo. Mameneja wanaweza kuona mistari ipi ya bidhaa iko tayari kwa ukaguzi na ipi inaelekea kukosa tarehe ya mwisho au kuvunja bajeti.
- Ngazi ya 5: Kuratibu. Uamuzi, ushahidi wa usalama, na ulinzi vinathibitishwa mfululizo na kuotomatishwa. Uingizaji wa kushindwa na vifaa-ndani-ya-mzunguko huendesha kwa kila badiliko, na vitu vya uthibitisho vinazalishwa kama zao la pembeni la mchakato. Meli inafuatiliwa, kupachikwa, na kusasishwa kwa usalama kwa ukubwa kupitia maisha marefu ya huduma. Shirika hurekebisha misingi yake ya utekelezaji, bajeti za rasilimali, na upokeaji wa viwango chipu zinapokosekana sokoni, vitisho vinapobadilika, na kanuni zinapohama, likisawazisha upya jalada zima la vifaa kwa ushahidi badala ya kuitikia kila mgogoro peke yake.
Mawazo ya kujadili
- Ni kazi zipi za kifaa chenu ni za wakati halisi mgumu kweli, na mnaweza kuthibitisha kila moja daima inatimiza muda wake wa mwisho?
- Mnajua muda wa utekelezaji wa hali mbaya zaidi wa kitanzi chenu muhimu cha udhibiti, au wastani wake tu?
- Kiwango gani cha usalama wa kiutendaji kinatawala bidhaa yenu, na ushahidi wenu wa sasa uko umbali gani kutoka inachodai?
- Kasoro kubwa ikipatikana kwenye kifaa kilicho uwandani kesho, mngeirekebisha vipi, na kwa kasi gani?
- Ugawaji wa kumbukumbu wa kidinamiki bado upo wapi kwenye njia yenu ya udhibiti, na nini kinatokea ukishindwa saa ya 1000?
- Meli yenu ya IoT ingestahimili vipi mshambulizi aliyepata kitambulisho kimoja cha chaguo-msingi kilichoshirikiwa?
Mambo muhimu ya kukumbuka
- Programu iliyopachikwa inaendesha kwenye vifaa vilivyobanwa, na usahihi wa wakati halisi unategemea muda, si jibu sahihi tu.
- Ainisha kila muda wa mwisho kuwa mgumu, imara, au laini, na ubuni kwa muda wa hali mbaya zaidi, mtetemo uliofungwa, na uamuzi kuliko kasi ghafi.
- Chagua RTOS au vifaa tupu kwa makusudi, na uweke bajeti ya kumbukumbu, CPU, na nguvu kama rasilimali zilizowekwa, za daraja la kwanza.
- Weka vishughulikiaji vya kukatiza vidogo sana, linda data ya pamoja, na utenge vifaa nyuma ya violesura safi, vinavyojaribika vya vidhibiti.
- Pokea mapema kiwango cha usalama wa kiutendaji ambacho kikoa chako kinahitaji (IEC 61508, ISO 26262, DO-178C, IEC 62304, MISRA C), kwa ufuatiliaji kamili.
- Jaribu kwa uigaji na vifaa-ndani-ya-mzunguko, na ujenge masasisho ya OTA salama, yaliyosainiwa, yenye kurudi nyuma na usalama wa kifaa tangu siku ya kwanza.
Marejeo na usomaji zaidi
- IEC 61508, Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems
- ISO 26262, Road Vehicles: Functional Safety
- RTCA DO-178C, Software Considerations in Airborne Systems and Equipment Certification
- IEC 62304, Medical Device Software: Software Life Cycle Processes
- MISRA, MISRA C: Guidelines for the Use of the C Language in Critical Systems
- Michael Barr and Anthony Massa, Programming Embedded Systems
- Elecia White, Making Embedded Systems
- Jane W. S. Liu, Real-Time Systems
- Giorgio Buttazzo, Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications
- Colin Walls, Embedded Software: The Works
- Philip Koopman, Better Embedded System Software
- OWASP Internet of Things (IoT) security guidance