Dom > Razstava > Vsebine

Razporejanje operacijskega sistema v realnem času

Mar 08, 2019

V tipičnih modelih ima naloga tri stanja:


Running (izvajanje na CPU);

Pripravljen (pripravljen za izvedbo);

Blokiran (čaka na dogodek, na primer I / O).

Večina opravil je večinoma blokirana ali pripravljena, ker se na CPU običajno lahko izvaja samo ena naloga. Število elementov v čakalni vrsti pripravljenosti se lahko zelo razlikuje, odvisno od števila opravil, ki jih mora sistem opraviti, in vrste razporejevalnika, ki ga sistem uporablja. Na enostavnejših, a ne v izogibnih, vendar še vedno večopravilnih sistemih, mora opravilo odstopiti od časa na CPU za druge naloge, kar lahko povzroči, da ima pripravljena čakalna vrsta večje število splošnih opravil v stanju pripravljenosti za izvajanje (stradanje virov) .


Običajno je struktura podatkov seznama pripravljenosti v načrtovalcu zasnovana tako, da zmanjša najmanjšo dolžino časa, porabljenega v kritičnem odseku planerja, med katerim je onemogočena prednost in v nekaterih primerih so vse prekinitve onemogočene. Toda izbira podatkovne strukture je odvisna tudi od največjega števila nalog, ki so lahko na seznamu pripravljenosti.


Če na seznamu pripravljenih ni nikoli več kot nekaj nalog, je verjetno optimalen dvakrat povezan seznam pripravljenih nalog. Če seznam pripravljenosti običajno vsebuje le nekaj opravil, vendar občasno vsebuje več, je treba seznam razvrstiti po prioriteti. Tako iskanje najvišje prednostne naloge za zagon ne zahteva ponavljanja po celotnem seznamu. Vstavljanje opravila zahteva hoje po pripravljenem seznamu, dokler ne dosežete konca seznama ali opravila z nižjo prioriteto od naloge vstavljene naloge.


Pri tem iskanju je treba paziti, da ne zavirajo izogibanja. Daljše kritične dele je treba razdeliti na majhne koščke. Če pride do prekinitve, zaradi katere je naloga visoke prioritete pripravljena med vstavljanjem naloge z nizko prioriteto, je to nalogo visoke prioritete mogoče vstaviti in zagnati takoj, preden je vstavljena naloga nizke prioritete.


Kritični odzivni čas, ki se včasih imenuje čas preleta, je čas, ki je potreben, da se pripravi nova pripravljena naloga in vrne stanje najvišje prednostne naloge v izvajanje. V dobro zasnovanem RTOS-u bo priprava nove naloge trajala od 3 do 20 navodil za vnos pripravljene čakalne vrste, obnova najbolj prioritetne pripravljene naloge pa bo trajala od 5 do 30 navodil.


V naprednejših sistemih naloge v realnem času delijo računalniške vire z mnogimi nalogami, ki niso v realnem času, seznam pripravljenosti pa je lahko poljubno dolg. V takih sistemih bi bil seznam pripravljenih načrtovalcev, ki se izvaja kot povezan seznam, neustrezen.