Dom > Izložba > Sadržaj

Arhitekture ugrađenog softvera

Mar 08, 2019

Postoji nekoliko različitih tipova softverske arhitekture u zajedničkoj upotrebi.


Jednostavna kontrolna petlja

U ovom dizajnu, softver jednostavno ima petlju. Petlja poziva podrutine, od kojih svaka upravlja dijelom hardvera ili softvera. Stoga se naziva jednostavna kontrolna petlja ili kontrolna petlja.


Sistem sa kontrolom prekida

Neki ugrađeni sistemi su uglavnom kontrolisani prekidima. To znači da se zadaci koje izvodi sistem pokreću različitim vrstama događaja; prekid može biti generisan, na primer, pomoću tajmera na unapred definisanoj frekvenciji ili kontrolera serijskog porta koji prima bajt.


Ove vrste sistema se koriste ako rukovatelji događajima trebaju nisku latenciju, a rukovatelji događaja su kratki i jednostavni. Obično, ove vrste sistema pokreću jednostavan zadatak u glavnoj petlji, ali ovaj zadatak nije jako osjetljiv na neočekivana kašnjenja.


Ponekad rukovalac prekida doda duže zadatke strukturi reda. Kasnije, nakon što je prekidač završio, ovi zadaci se izvršavaju u glavnoj petlji. Ovaj metod dovodi sistem u blizinu višezadaćnog jezgra s diskretnim procesima.


Zadružni multitasking

Neuprezivni sistem sa više zadataka je vrlo sličan jednostavnoj shemi kontrolne petlje, osim što je petlja skrivena u API-ju. Programer definira niz zadataka, a svaki zadatak dobiva svoje okruženje za "pokretanje". Kada je zadatak u stanju mirovanja, on poziva neaktivnu rutinu, obično nazvanu "pauza", "čekanje", "prinos", "nop" (ne predstavlja operaciju), itd.


Prednosti i nedostaci slični su onima u kontrolnoj petlji, osim što je dodavanje novog softvera lakše, jednostavnim pisanjem novog zadatka ili dodavanjem u red.


Preemptive multitasking ili multi-threading

U ovom tipu sistema, nizak nivo koda prebacuje između zadataka ili niti na osnovu tajmera (povezanog sa prekidom). Ovo je nivo na kojem se sistem generalno smatra da ima kernel "operativnog sistema". U zavisnosti od toga koliko funkcionalnosti je potrebno, ona uvodi više ili manje složenosti upravljanja višestrukim zadacima koji se odvijaju konceptualno paralelno.


Kako svaki kôd potencijalno može oštetiti podatke drugog zadatka (osim u većim sustavima koji koriste MMU), programi moraju biti pažljivo dizajnirani i testirani, a pristup dijeljenim podacima mora biti kontroliran nekom strategijom sinkronizacije, kao što su redovi poruka, semafori ili ne -sinkronizacijska shema blokiranja.


Zbog ovih složenosti, uobičajeno je da organizacije koriste operativni sistem u realnom vremenu (RTOS), koji omogućava programerima aplikacija da se koncentriraju na funkcionalnost uređaja, a ne na usluge operativnog sistema, barem za velike sisteme; manji sistemi često ne mogu sebi priuštiti opterećenje povezano sa generičkim sistemom u realnom vremenu, zbog ograničenja u pogledu veličine memorije, performansi ili trajanja baterije. Međutim, izbor koji se zahteva od RTOS-a donosi sopstvene probleme, ali izbor mora da se izvrši pre početka procesa razvoja aplikacija. Ovaj vremenski raspored prisiljava programere da izaberu ugrađeni operativni sistem za svoj uređaj na osnovu trenutnih zahtjeva i tako ograničava buduće opcije u velikoj mjeri. Ograničenje budućih opcija postaje više problem jer se životni vijek proizvoda smanjuje. Pored toga, nivo složenosti se neprestano povećava jer su uređaji potrebni za upravljanje varijablama, kao što su serijski, USB, TCP / IP, Bluetooth, bežični LAN, trunk radio, višestruki kanali, podaci i glas, poboljšana grafika, više država, više niti, brojne države čekanja i tako dalje. Ovi trendovi dovode do preuzimanja ugrađenog middleware-a pored operativnog sistema u realnom vremenu.


Mikrokerneli i egzokeri

Mikrokernel je logičan korak od operativnog sistema u realnom vremenu. Uobičajeni aranžman je da kernel operativnog sistema dodjeljuje memoriju i prebacuje CPU na različite niti izvršenja. Procesi korisničkog načina implementiraju glavne funkcije kao što su datotečni sistemi, mrežni interfejsi itd.


Uopšteno, mikro-jezgra uspijevaju kada je prebacivanje zadataka i komunikacija među zadacima brza i neuspješna kada su spora.


Exokerneli efikasno komuniciraju sa normalnim pozivima potprograma. Hardver i sav softver u sistemu su dostupni i proširivi od strane aplikativnih programera.


Monolithic kernels

U ovom slučaju, relativno veliki kernel sa sofisticiranim mogućnostima prilagođen je ugrađenom okruženju. To daje programerima okruženje slično desktop operativnom sistemu kao što je Linux ili Microsoft Windows, te je stoga vrlo produktivno za razvoj; s druge strane, to zahtijeva znatno više hardverskih resursa, često je skuplje i, zbog složenosti ovih kernela, može biti manje predvidljivo i pouzdano.


Uobičajeni primeri ugrađenih monolitnih kernela su ugrađeni Linux i Windows CE.


Uprkos povećanim troškovima hardvera, ovaj tip ugrađenog sistema je sve popularniji, posebno na moćnijim ugrađenim uređajima kao što su bežični ruteri i GPS navigacioni sistemi. Evo nekih od razloga:


Dostupni su portovi za zajedničke ugrađene skupove čipova.

Oni dozvoljavaju ponovnu upotrebu javno dostupnog koda za upravljačke programe uređaja, web poslužitelje, vatrozide i druge kodove.

Razvojni sistemi mogu početi sa širokim skupovima značajki, a onda se distribucija može konfigurirati tako da isključi nepotrebnu funkcionalnost i da sačuva trošak memorije koju će potrošiti.

Mnogi inženjeri vjeruju da je pokretanje aplikacijskog koda u korisničkom modu pouzdaniji i lakši za otklanjanje grešaka, što olakšava razvojni proces, a kôd je prenosiviji.

Karakteristike koje zahtevaju brži odgovor nego što se može garantovati, često se mogu postaviti u hardver.

Dodatne softverske komponente

Pored osnovnog operativnog sistema, mnogi ugrađeni sistemi imaju i dodatne softverske komponente gornjeg sloja. Ove komponente se sastoje od skupova protokola mrežnog protoka kao što su CAN, TCP / IP, FTP, HTTP i HTTPS, kao i mogućnosti skladištenja kao što su FAT i fleš memorije. Ako ugrađeni uređaj ima audio i video mogućnosti, onda će odgovarajući upravljački programi i kodeci biti prisutni u sistemu. U slučaju monolitnih kernela, mnogi od ovih softverskih slojeva su uključeni. U RTOS kategoriji, dostupnost dodatnih softverskih komponenti zavisi od komercijalne ponude.


Arhitekture specifične za domenu

U automobilskom sektoru, AUTOSAR je standardna arhitektura za ugrađeni softver.