Mifano ya mifumo ya uendeshaji ya wakati halisi. Vipengele tofauti vya osrv. VxWorks kutoka WindRiver

Mfumo wa uendeshaji wa wakati halisi

Mfumo wa uendeshaji ambao unaweza kutoa muda unaohitajika wa utekelezaji kwa kazi ya wakati halisi hata katika hali mbaya zaidi, kuitwa mfumo mgumu wa uendeshaji wa wakati halisi.

Mfumo wa uendeshaji ambao unaweza kutoa muda unaohitajika wa utekelezaji kwa kazi ya wakati halisi wastani, kuitwa mfumo laini wa uendeshaji wa wakati halisi.

Mifumo migumu ya wakati halisi hairuhusu ucheleweshaji wa majibu ya mfumo, kwani hii inaweza kusababisha:

  • kupoteza umuhimu wa matokeo
  • hasara kubwa za kifedha
  • ajali na majanga

Ikiwa usindikaji muhimu haufanyiki au haufanyiki haraka vya kutosha, mfumo mgumu wa wakati halisi huondoa operesheni na kuizuia ili uaminifu na upatikanaji wa mfumo wote hauathiri. Mifano ya mifumo ngumu ya wakati halisi inaweza kuwa - mifumo ya bodi udhibiti (kwenye ndege, chombo cha anga, meli, n.k.), mifumo ya ulinzi wa dharura, rekodi za matukio ya dharura.

Mifumo laini ya wakati halisi ina sifa ya uwezekano wa kuchelewa kwa majibu, ambayo inaweza kusababisha kuongezeka kwa gharama ya matokeo na kupunguza utendaji wa mfumo kwa ujumla. Mfano ni uendeshaji wa mtandao wa kompyuta. Ikiwa mfumo haukuwa na wakati wa kushughulikia ijayo kifurushi kilichokubaliwa, hii itasababisha upande wa kutuma kuacha na kutuma tena (kulingana na itifaki). Hakuna data inayopotea, lakini utendaji wa mtandao umepunguzwa.

Tofauti kuu kati ya mifumo ngumu na laini ya wakati halisi inaweza kubainishwa kama ifuatavyo: mfumo mgumu wa wakati halisi hautawahi kuchelewa kujibu tukio, wakati mfumo laini wa wakati halisi haupaswi kuchelewa kujibu tukio.

Wacha tuonyeshe kwa mfumo wa uendeshaji wa wakati halisi mfumo ambao unaweza kutumika kuunda mifumo ngumu ya wakati halisi. Ufafanuzi huu unaonyesha mtazamo kuelekea RTOS kama kitu kilicho na zana muhimu, lakini pia inamaanisha kuwa zana hizi bado zinahitaji kutumiwa kwa usahihi.

Programu nyingi zimeelekezwa kuelekea "laini" Muda halisi. Mifumo kama hii ina sifa ya:

  • muda wa majibu ya uhakika kwa matukio ya nje (kusumbuliwa kutoka kwa vifaa);
  • mfumo mdogo wa kupanga mchakato (kazi za kipaumbele hazipaswi kubadilishwa na zile za kipaumbele cha chini, isipokuwa baadhi);
  • kuongezeka kwa mahitaji ya muda wa majibu kwa matukio ya nje au utendakazi tena (kucheleweshwa kwa kupiga simu kwa kidhibiti cha kukatiza sio zaidi ya makumi ya sekunde, kucheleweshwa wakati wa kubadili kazi sio zaidi ya mamia ya sekunde)

Mfano wa kawaida wa kazi ambapo RTOS inahitajika ni udhibiti wa roboti kuchukua sehemu kutoka kwa ukanda wa conveyor. Sehemu hiyo inasonga, na roboti ina dirisha dogo tu la wakati inapoweza kuichukua. Ikiwa amechelewa, basi sehemu hiyo haitakuwa tena kwenye sehemu inayotakiwa ya conveyor, na kwa hivyo kazi haitakamilika, licha ya ukweli kwamba roboti iko ndani. mahali pazuri. Ikiwa atatayarisha mapema, sehemu hiyo haitakuwa na wakati wa kufika, na atazuia njia yake.

Vipengele tofauti vya RTOS

Jedwali la kulinganisha kati ya RTOS na mifumo ya uendeshaji ya kawaida:

OS ya wakati halisi Mfumo wa Uendeshaji madhumuni ya jumla
Kazi kuu Kuwa na wakati wa kuguswa na matukio yanayotokea kwenye kifaa Sambaza rasilimali za kompyuta kati ya watumiaji na kazi
Je, inalenga nini? Kushughulikia Matukio ya Nje Inachakata vitendo vya mtumiaji
Jinsi imewekwa Chombo cha kuunda vifaa maalum vya wakati halisi na programu tata Inatambulika na mtumiaji kama seti ya programu zilizo tayari kutumika
Imekusudiwa kwa ajili ya nani? Msanidi programu aliyehitimu Mtumiaji wa kati

Usanifu wa RTOS

Katika maendeleo yao, RTOS zilijengwa kwa misingi ya usanifu wafuatayo.

  • . Mfumo wa Uendeshaji hufafanuliwa kama seti ya moduli zinazoingiliana ndani ya kernel ya mfumo na kutoa programu ya programu miingiliano ya pembejeo kwa wito kwa vifaa. Hasara kuu ya kanuni hii ya kujenga OS ni utabiri mbaya wa tabia yake inayosababishwa na mwingiliano tata wa modules na kila mmoja.
  • . Programu ya maombi ina uwezo wa kufikia vifaa sio tu kupitia kernel ya mfumo na huduma zake, lakini pia moja kwa moja. Ikilinganishwa na usanifu wa monolithic, usanifu kama huo hutoa kiwango kikubwa zaidi cha utabiri wa athari za mfumo, na pia inaruhusu. ufikiaji wa haraka maombi ya maombi kwa vifaa. Hasara kuu ya mifumo hiyo ni ukosefu wa multitasking.
  • Usanifu wa seva ya mteja. Kanuni yake kuu ni kuleta huduma za OS katika mfumo wa seva kwa kiwango cha mtumiaji na kufanya kazi za microkernel za meneja wa ujumbe kati ya mteja. programu za watumiaji na seva - huduma za mfumo. Faida za usanifu huu:
  1. Kuongezeka kwa uaminifu, kwa kuwa kila huduma ni, kwa kweli, maombi ya kujitegemea na ni rahisi kutatua na kufuatilia makosa;
  2. Uboreshaji wa uboreshaji, kwani huduma zisizo za lazima zinaweza kutengwa na mfumo bila kuathiri utendaji wake;
  3. Kuongezeka kwa uvumilivu wa kosa, kwani huduma iliyohifadhiwa inaweza kuanza tena bila kuanzisha upya mfumo.

Vipengele vya Kernel

Kiini cha RTOS huhakikisha utendakazi wa kiwango cha kati cha mfumo wa uendeshaji, ambacho huficha maelezo kutoka kwa programu ya programu. kifaa kiufundi processor (wasindikaji kadhaa) na vifaa vinavyohusiana.

Huduma za kimsingi

Safu hii ya muhtasari hutoa aina tano kuu za huduma za programu ya programu.

  • Usimamizi wa kazi. wengi zaidi kundi kuu huduma. Huruhusu wasanidi programu kubuni bidhaa za programu kama seti za vipande tofauti vya programu, ambavyo kila kimoja kinaweza kuhusiana na eneo lake la mada, kufanya kazi tofauti na kuwa na kipande chake cha wakati kilichotengewa kwa ajili ya kazi. Kila kipande kama hicho kinaitwa kazi. Huduma katika kikundi hiki zina uwezo wa kuzindua kazi na kuzipa vipaumbele. Huduma kuu hapa ni Meneja wa kazi. Inafuatilia utekelezaji wa kazi za sasa, inazindua mpya katika muda unaofaa na inafuatilia hali yao ya uendeshaji.
  • Ugawaji wa Kumbukumbu ya Nguvu. Kernels nyingi (lakini sio zote) za RTOS zinaunga mkono kikundi hiki cha huduma. Huruhusu kazi kuazima maeneo ya RAM kwa matumizi ya muda katika kuendesha programu. Mara nyingi maeneo haya huhama kutoka kazi hadi kazi, na kupitia hii uhamisho wa haraka data nyingi kati yao. Baadhi ya kokwa ndogo sana za RTOS zinazokusudiwa kutumika katika mazingira ya maunzi yenye vikomo vikali vya kumbukumbu hazitumii huduma badilika za ugawaji kumbukumbu.
  • Usimamizi wa saa. Kwa kuwa mifumo iliyopachikwa ina mahitaji madhubuti ya muda wa utekelezaji wa kazi, msingi wa RTOS unajumuisha kundi la huduma zinazotoa usimamizi wa kipima muda ili kufuatilia kikomo cha muda ambacho kazi lazima itekelezwe. Huduma hizi hupima na kuweka vipindi mbalimbali vya muda (kutoka μs 1 na zaidi), hutoa ukatizaji vipindi vya muda vinapoisha, na kuunda kengele za wakati mmoja na za mzunguko.
  • Mawasiliano kati ya kazi na maingiliano. Huduma katika kikundi hiki huruhusu kazi kubadilishana habari na kuhakikisha usalama wake. Pia huwezesha vipande vya programu kuratibu kazi zao kwa kila mmoja ili kuongeza ufanisi. Ikiwa huduma hizi zimetengwa kutoka kwa msingi wa RTOS, basi kazi zitaanza kubadilishana habari zilizopotoka na zinaweza kuingilia kati kazi ya kazi za jirani.
  • Ufuatiliaji wa kifaa cha I/O. Huduma katika kikundi hiki hutoa kiolesura kimoja cha programu ambacho huingiliana na viendeshi vingi vya kifaa ambavyo ni vya kawaida kwa mifumo mingi iliyopachikwa.

Mbali na huduma za kernel, RTOS nyingi hutoa mistari vipengele vya ziada kupanga dhana za hali ya juu kama vile mfumo wa faili, mitandao, usimamizi wa mtandao, usimamizi wa hifadhidata, kiolesura cha picha cha mtumiaji, n.k. Ingawa vipengele vingi hivi ni vikubwa na changamano zaidi kuliko msingi wa RTOS wenyewe, wanategemea huduma zake. Kila moja ya vipengele hivi imejumuishwa katika mfumo ulioingizwa tu ikiwa huduma zake ni muhimu kutekeleza programu iliyoingia na tu ili kupunguza matumizi ya kumbukumbu kwa kiwango cha chini.

Tofauti kutoka kwa mifumo ya uendeshaji ya madhumuni ya jumla

Mifumo mingi ya uendeshaji ya madhumuni ya jumla pia inasaidia huduma zilizo hapo juu. Walakini, tofauti kuu kati ya huduma za msingi za RTOS ni ya kuamua, kwa kuzingatia udhibiti mkali wa wakati, asili ya kazi zao. KATIKA kwa kesi hii Kwa kubainisha tunamaanisha kuwa utekelezaji wa huduma moja ya mfumo wa uendeshaji unahitaji muda wa muda unaojulikana. Kinadharia, muda huu unaweza kuhesabiwa kwa kutumia fomula za hisabati, ambazo lazima ziwe na aljebra madhubuti na zisijumuishe vigezo vya muda vya asili nasibu. Tofauti yoyote ya nasibu ambayo huamua muda wa utekelezaji wa kazi katika RTOS inaweza kusababisha ucheleweshaji usiohitajika katika programu, basi kazi inayofuata haitafikia kipande chake cha wakati, ambacho kitasababisha hitilafu.

Kwa maana hii, mifumo ya uendeshaji ya madhumuni ya jumla sio ya kuamua. Huduma zao zinaweza kuruhusu ucheleweshaji wa mara kwa mara katika uendeshaji wao, ambayo inaweza kusababisha kupungua kwa majibu ya programu kwa vitendo vya mtumiaji kwa wakati usiojulikana. Wakati wa kuunda mifumo ya uendeshaji ya kawaida, watengenezaji hawaelekezi mawazo yao kwenye vifaa vya hisabati vya kuhesabu wakati wa utekelezaji. kazi maalum na huduma. Hii sio muhimu kwa aina hii ya mfumo.

Kupanga majukumu

Kazi ya mratibu

RTOS nyingi hufanya upangaji wa kazi kulingana na mpango ufuatao. Kila kazi katika programu imepewa kipaumbele fulani. Kadiri kipaumbele kilivyo juu, ndivyo utendakazi wa kazi unavyopaswa kuwa wa juu zaidi. Reactivity ya juu hupatikana kwa kutekeleza mbinu upangaji wa kipaumbele wa mapema(ratiba ya mapema), kiini chake ni kwamba mpangaji anaruhusiwa kusimamisha utekelezaji wa kazi yoyote kwa wakati wa kiholela ikiwa imedhamiriwa kuwa kazi nyingine inapaswa kuanza mara moja.

Mpango ulioelezwa hufanya kazi kulingana na kanuni ifuatayo: ikiwa kazi mbili ziko tayari kukimbia kwa wakati mmoja, lakini ya kwanza ina kipaumbele cha juu na ya pili ina kipaumbele cha chini, basi mpangaji atatoa upendeleo kwa kwanza. Kazi ya pili itazinduliwa tu baada ya ya kwanza kumaliza kazi yake.

Inawezekana kwamba kazi ya kipaumbele cha chini tayari inaendeshwa, na mpangaji ratiba anapokea ujumbe kwamba kazi nyingine ya kipaumbele cha juu iko tayari kutekelezwa. Sababu ya hii inaweza kuwa ushawishi fulani wa nje (kukatizwa kutoka kwa vifaa), kama vile mabadiliko katika hali ya ubadilishaji wa kifaa kinachodhibitiwa na RTOS. Katika hali kama hii, mratibu wa kazi atatenda kulingana na mbinu ya upangaji wa kipaumbele kama ifuatavyo. Kazi yenye kipaumbele cha chini itaruhusiwa kukamilisha amri ya sasa ya mkusanyiko (lakini si amri iliyoelezwa katika msimbo wa chanzo wa programu katika lugha ya kiwango cha juu), baada ya hapo utekelezaji wa kazi unasimama. Ifuatayo, kazi ya kipaumbele cha juu inazinduliwa. Baada ya kuchakatwa, kipanga ratiba huanza kazi ya kwanza iliyokatizwa na maagizo ya kusanyiko kufuatia ya mwisho kutekelezwa.

Kila wakati mratibu wa kazi anapokea ishara kuhusu tukio la tukio la nje (trigger), sababu ambayo inaweza kuwa vifaa au programu, hufanya kulingana na algorithm ifuatayo.

  1. Huamua ikiwa kazi inayoendeshwa kwa sasa inapaswa kuendelea kufanya kazi.
  2. Inaweka kazi ambayo inapaswa kufanya ijayo.
  3. Huhifadhi muktadha wa kazi iliyosimamishwa (ili iweze kuanza tena kazi kutoka mahali iliposimamishwa)
  4. Huweka muktadha wa kazi inayofuata.
  5. Huendesha jukumu hili.

Hatua hizi tano za algorithm pia huitwa kubadili kazi.

Utekelezaji wa kazi

Katika RTOS za kawaida, kazi inaweza kuwa katika hali 3 zinazowezekana:

  1. Kazi inakamilika;
  2. Kazi iko tayari kutekelezwa;
  3. Jukumu limezuiwa.

Mara nyingi, kazi nyingi huzuiwa. Jukumu moja tu linaweza kutekelezwa kwenye CPU kwa kila wakati huu wakati. Katika RTOS za zamani, orodha ya kazi zilizo tayari kutekelezwa kawaida ni fupi sana; inaweza kuwa na vitu visivyozidi viwili au vitatu.

Kazi kuu ya msimamizi wa RTOS ni kuunda mpangilio wa kazi kama huo.

Ikiwa orodha ya kazi tayari kwa utekelezaji haina zaidi ya mbili au tatu, basi inadhaniwa kuwa kazi zote ziko kwa utaratibu mzuri. Ikiwa hali kama hizo zitatokea kwamba idadi ya kazi kwenye orodha inazidi kikomo kinachoruhusiwa, basi kazi zinapangwa kwa mpangilio wa kipaumbele.

Kupanga algorithms

Hivi sasa, mbinu mbili zinaendelezwa kwa nguvu zaidi kutatua tatizo la upangaji bora katika RTOS.

  • Algorithms ya kuratibu tuli(RMS, Rate Monotonic Ratiba). Tumia upangaji wa kipaumbele wa mapema. Kipaumbele kinapewa kila kazi kabla ya kuanza kutekeleza. Upendeleo hutolewa kwa kazi zilizo na vipindi vifupi vya kukamilisha.
  • Algorithms za kuratibu zinazobadilika(EDF, Ratiba ya Mapema ya Makataa ya Kwanza). Kipaumbele kinawekwa kwa kazi kwa nguvu, na upendeleo unatolewa kwa kazi na wakati wa mwanzo wa utekelezaji (kukamilisha).

Mwingiliano kati ya kazi na kugawana rasilimali

  • Kuzima kwa muda kukatizwa
  • Semaphores za binary
  • Kutuma ishara

RTOSes kawaida haitumii njia ya kwanza kwa sababu programu ya mtumiaji haiwezi kudhibiti kichakataji kadri inavyotaka. Walakini, mifumo mingi iliyopachikwa na RTOS huruhusu programu kufanya kazi katika hali ya kernel kufikia simu za mfumo na kutoa udhibiti wa mazingira ya utekelezaji bila uingiliaji wa OS.

Kwenye mifumo ya kichakataji kimoja, suluhisho bora ni kuendesha programu katika hali ya kernel, ambayo imewezeshwa kuzuia kukatizwa. Wakati ukatizaji umezimwa, programu ina matumizi pekee ya rasilimali za mchakato na hakuna kazi nyingine au kukatiza kunaweza kutekeleza. Kwa njia hii rasilimali zote muhimu zinalindwa. Baada ya programu kukamilisha shughuli muhimu, lazima iondoe vizuizi vya kukatizwa, ikiwa vipo. Kuzima ukatizaji kwa muda kunaruhusiwa tu wakati muda mrefu zaidi wa utekelezaji wa sehemu muhimu ni chini ya muda unaoruhusiwa wa kujibu kukatizwa. Kwa kawaida, njia hii ya ulinzi hutumiwa tu wakati urefu wa msimbo muhimu hauzidi mistari kadhaa na hauna loops. Njia hii ni bora kwa ulinzi wa rejista.

Wakati urefu wa sehemu muhimu ni mkubwa kuliko upeo wa juu au una vitanzi, kipanga programu lazima kitumie mbinu zinazofanana na au kuiga tabia ya mifumo ya madhumuni ya jumla, kama vile semaphores na ishara.

Ugawaji wa kumbukumbu

Matatizo yafuatayo ya ugawaji kumbukumbu yanazingatiwa zaidi katika RTOS kuliko katika mifumo ya uendeshaji ya madhumuni ya jumla.

Kwanza, kasi ya ugawaji kumbukumbu. Mpango wa kawaida wa ugawaji wa kumbukumbu unahusisha kuchanganua orodha ya urefu usiojulikana ili kupata eneo la kumbukumbu la bure ukubwa uliopewa, na hii haikubaliki, kwa kuwa katika RTOS, ugawaji wa kumbukumbu lazima ufanyike kwa muda uliowekwa.

Pili, kumbukumbu inaweza kugawanyika ikiwa sehemu zake za bure tayari zimegawanywa michakato inayoendesha. Hii inaweza kusababisha programu kusimama kwa sababu ya kutokuwa na uwezo wa kutumia eneo jipya la kumbukumbu. Algorithm ya ugawaji kumbukumbu ambayo huongeza hatua kwa hatua kugawanyika kwa kumbukumbu inaweza kufanya kazi vyema kwenye mifumo ya kompyuta ya mezani ikiwa imewashwa upya angalau mara moja kwa mwezi, lakini haikubaliki kwa mifumo iliyopachikwa ambayo hutumika kwa miaka mingi bila kuwashwa upya.

Algorithm rahisi ya urefu usiobadilika inafanya kazi vizuri sana katika mifumo rahisi iliyopachikwa.

Algorithm hii pia inafanya kazi vizuri kwenye mifumo ya kompyuta ya mezani, haswa wakati, wakati msingi mmoja unashughulikia kipande cha kumbukumbu, sehemu inayofuata ya kumbukumbu inachakatwa na msingi mwingine. RTOS zilizoboreshwa kwenye eneo-kazi kama vile Unison Mfumo wa Uendeshaji au DSPnano RTOS hutoa uwezo huu.

Mifumo ya uendeshaji ya wakati halisi (orodha)

Ikumbukwe kwamba orodha haijumuishi mifumo iliyotengenezwa katika USSR kwa mifumo ya kijeshi na nafasi - kwa sababu za wazi zinazohusiana na utawala wa usiri. Hata hivyo, kuwepo na matumizi yao kwa miongo kadhaa ni ukweli usio na shaka ambao unapaswa kuzingatiwa.

Vidokezo

Fasihi

  • Zyl S. Mfumo wa uendeshaji wa wakati halisi wa QNX: kutoka kwa nadharia hadi mazoezi. - Toleo la 2. - St. Petersburg. : BV-Petersburg, 2004. - 192 p. - ISBN 5-94157-486-Х
  • Zyl S. Matukio ya QNX. Misingi ya Maombi. - St. Petersburg. : BV-Petersburg, 2004. - 256 p. - ISBN 5-94157-430-4
  • Kurten R. Utangulizi wa QNX/Neutrino 2. - St. : Petropolis, 2001. - 512 p. - ISBN 5-94656-025-9
  • Auslander D.M., Ridgley J.R., Ringenberg J.D. Kudhibiti programu kwa mifumo ya mitambo: Muundo unaolenga kitu wa mifumo ya wakati halisi. - M.: Binom. Maabara ya Maarifa, 2004. - 416 p. - ISBN 5-94774-097-4

Viungo

  • Muhtasari wa mifumo ya uendeshaji ya wakati halisi

Msingi wa tata yoyote ya vifaa na programu, ikiwa ni pamoja na wale wanaofanya kazi kwa wakati halisi, ni mfumo wa uendeshaji (OS). Mfumo wa uendeshaji ni seti ya programu ambazo hutoa usimamizi wa rasilimali za programu-programu tata (mfumo wa kompyuta) na michakato inayotumia rasilimali hizi katika mahesabu. Nyenzo katika muktadha huu ni sehemu yoyote ya kimantiki au halisi (na kwa jumla) ya mfumo wa kompyuta au maunzi na programu tata na uwezo unaotoa.

Rasilimali kuu ni processor (wakati wa processor), RAM na vifaa vya pembeni.

Usimamizi wa rasilimali unakuja kwa kufanya kazi zifuatazo: kurahisisha ufikiaji wa rasilimali, kuzisambaza kati ya michakato.

Suluhisho la shida ya kwanza hukuruhusu "kuficha" huduma za vifaa vya mfumo wa kompyuta, na kwa hivyo kuifanya ipatikane kwa mtumiaji au programu. mashine virtual na udhibiti rahisi sana. Kwa hivyo, OS inasaidia miingiliano ifuatayo: mtumiaji (lugha ya amri ya kudhibiti uendeshaji wa mfumo na seti ya huduma); programu (seti ya huduma zinazomkomboa mtayarishaji programu kutoka kwa shughuli za utaratibu wa usimbaji). Kazi ya usambazaji wa rasilimali ni mojawapo ya kazi muhimu zaidi kutatuliwa na OS, hata hivyo, sio asili katika OS zote, lakini tu katika wale wanaohakikisha wakati huo huo. utekelezaji wa programu kadhaa (taratibu).

Mchakato ni mlolongo wa vitendo vilivyowekwa na programu au sehemu yake kamili ya kimantiki, pamoja na data inayotumiwa katika hesabu. Mchakato ni kitengo cha chini kazi ambayo rasilimali zimetengwa.

Hivi sasa, kuna anuwai ya mifumo ya uendeshaji, ambayo imeainishwa kulingana na vigezo vifuatavyo:

o idadi ya watumiaji wanaohudumiwa na mfumo wakati huo huo;

o idadi ya michakato ambayo inaweza kukimbia wakati huo huo chini ya udhibiti wa OS;

o aina ya ufikiaji wa mtumiaji kwenye mfumo;

o aina ya maunzi na programu tata.

Kwa mujibu wa ishara ya kwanza, mifumo ya uendeshaji moja na ya watumiaji wengi inajulikana.

Kipengele cha pili kinagawanya OS katika kazi moja na nyingi.

Kwa mujibu wa kipengele cha tatu, mifumo ya uendeshaji imegawanywa katika:

o mifumo na usindikaji wa kundi. Katika kesi hii, kifurushi kinaundwa kutoka kwa programu zinazopaswa kutekelezwa na kuwasilishwa kwa mfumo wa usindikaji. Katika kesi hii, watumiaji hawaingiliani moja kwa moja na OS;

o mifumo ya kushiriki wakati ambayo hutoa ufikiaji wa mwingiliano kwa wakati mmoja mfumo wa kompyuta watumiaji wengi kupitia vituo. Katika kesi hii, rasilimali za mfumo zinatolewa kwa kila mtumiaji "kwa upande wake", kwa mujibu wa nidhamu moja au nyingine ya huduma;

o mifumo ya muda halisi, ambayo lazima itoe muda wa majibu uliohakikishwa kwa matukio ya nje (tazama hapa chini kwa maelezo zaidi).

Kipengele cha nne kinagawanya OS katika moja- na multiprocessor, mtandao na kusambazwa. Kwa mifumo ya uendeshaji ya watumiaji wengi na ya kazi nyingi, nidhamu ya matengenezo ni kiashiria muhimu. Kwa mujibu wa hili, tofauti hufanywa kati ya njia za mapema na za kuratibu za kazi nyingi. Katika shirika la mapema, ni OS pekee inayohusika na kutenga muda wa processor kwa kazi (kwa mfano, kwa kila kazi, processor imetengwa kwa zamu, na kwa muda uliowekwa madhubuti, lakini huduma ya kipaumbele pia inawezekana). Katika kesi ya shirika linalofanana, kila kazi, baada ya kupokea udhibiti, yenyewe huamua wakati wa "kutoa" processor kwa kazi nyingine. Kwa ujumla, uratibu ni bora na wa kuaminika zaidi kuliko ukombozi, lakini jambo la kuamua katika utekelezaji wa programu ni ukweli kwamba. programu hii haipaswi kuhodhi wakati wa CPU.

Mfumo wa Muda Halisi (RTS)- hii ni mfumo, kazi sahihi ambayo inategemea si tu juu ya usahihi wa mantiki ya mahesabu, lakini pia kwa wakati ambapo mahesabu haya yanafanywa.

Kwa matukio yanayotokea katika mfumo huo, wakati ambapo matukio haya hutokea na usahihi wao wa kimantiki ni muhimu. Mfumo hufanya kazi kwa wakati halisi ikiwa utendaji wake unatosha kwa kasi ya michakato ya kimwili katika ufuatiliaji au udhibiti wa vitu (maana ya michakato inayohusiana moja kwa moja na kazi zinazofanywa na mfumo maalum wa muda halisi). Mfumo wa udhibiti lazima kukusanya data, kusindika kulingana na algorithms maalum na kutoa hatua ya udhibiti katika kipindi cha muda ambacho kinahakikisha kukamilika kwa mafanikio ya kazi zilizopewa.

1.1 Mfumo wa wakati halisi ni nini

KATIKA Hivi majuzi Kwa kuongezeka, tunakabiliwa na kazi zinazohitaji usimamizi wa michakato ngumu au vifaa kwa kutumia kompyuta. Aidha, matukio yote katika taratibu hizi hutokea wakati yanapotokea. Kompyuta inaweza tu kufanya idadi ndogo ya shughuli kwa muda mfupi, kwa hivyo swali linatokea: kompyuta itakuwa na wakati wa kufanya kazi? kasi inayohitajika hesabu hali na toa vitendo maalum vya udhibiti ambavyo vitatosha haswa katika muda fulani wakati. Kwa maoni yangu, shida za aina hii ziliibuka kwa sababu ya matumizi ya sana kasi ya juu V uzalishaji wa kisasa. Ni wazi kuwa ishara katika maumbile huenea kwa kasi ya mwisho, kasi ya operesheni pia ni ya mwisho, kwa hivyo kimsingi haiwezekani kutarajia vitendo vya papo hapo (vilivyosababishwa na tukio fulani) kutoka kwa kompyuta. Baada ya yote, haijalishi kompyuta ni ya kisasa (kusoma - yenye nguvu katika utendaji, i.e. kasi kubwa ya maagizo na shughuli), inahitaji angalau sehemu ya sekunde kufanya kazi ndogo. kikundi rahisi amri, na wakati mwingine wakati huu ni mwingi. Kwa hivyo, wakati wa majibu ya mfumo kwa tukio fulani ni kubwa kuliko sifuri. Kazi halisi huruhusu kuchelewa kwa vitendo, na ikiwa mfumo una muda wa majibu chini ya ucheleweshaji huu unaokubalika, basi ni sawa kuuita mfumo wa wakati halisi. Tangu katika asili michakato mbalimbali endelea kwa kasi tofauti; mfumo mmoja na huo unaweza kutoshea ndani ya mfumo uliopeanwa kwa mchakato mmoja na haufai kwa mwingine. Kwa hivyo, ni mantiki kuzungumza juu ya mfumo wa wakati halisi kuhusiana na kazi maalum. Kwa mfano, kupanga utegemezi wa wastani wa halijoto ya hewa kwa siku moja ya wiki, karibu kompyuta yoyote iliyo na karibu programu yoyote itafanya kazi kama mfumo wa wakati halisi. Ikiwa tunadhibiti kutua kwa ndege, ambapo milliseconds huchukua jukumu muhimu, itakuwa sahihi zaidi kuchagua maunzi na programu kwa uangalifu.

Mbali na kazi inayozingatiwa ya kujibu tukio fulani, kuna madarasa mengine ya kazi za wakati halisi. Moja ya wale wanaokutana mara kwa mara ni kazi ya ufuatiliaji wa mara kwa mara au udhibiti wa mchakato wa nguvu, i.e. wakati unahitaji kubadilishana ishara kila wakati na ulimwengu wa nje. Kompyuta ni mfumo wa kipekee, kwa hivyo ni muhimu kutekeleza vitendo kadhaa na vipindi fulani vya muda, ikizingatiwa kuwa katika kipindi hiki kifupi ulimwengu wa nje unabaki bila kubadilika. Ikiwa mfumo wetu una uwezo wa kuchakata taarifa na kuzalisha ishara za udhibiti kwa mzunguko unaohitajika, basi inaweza kuitwa mfumo wa wakati halisi. Si vigumu kuelewa kuwa tatizo hili linaweza kupunguzwa kwa urahisi hadi lile lililotangulia, kwa kutumia mwanzo wa muda unaofuata kama tukio. Muda wa majibu lazima uwe chini ya muda wa sampuli ya mchakato. Kwa hivyo, kazi iliyoelezwa hapo awali ni muhimu zaidi wakati tunazungumzia kuhusu mifumo ya muda halisi. Ikumbukwe kwamba uendeshaji wa mfumo usiofaa katika suala la latency katika baadhi ya kazi inaweza kusababisha matokeo mabaya, na kwa wengine hakuna hali isiyo ya kawaida au isiyofaa itatokea. Kwa mfano: ikiwa mfumo wa kipimo cha joto kutoka kwa mfano ulioelezewa hapo juu unafika kwa bahati mbaya kwa muda usiokubalika, basi hii ina maana kwamba tulibadilisha tu uteuzi wa pointi za kusoma joto, na bado tutapata matokeo sahihi, lakini ikiwa moja kwa moja. njia kwenye ndege ya abiria inachelewa kwa sekunde kwa bahati mbaya kwa upepo wa ghafla, ndege inaweza isifike kwenye njia ya kurukia na makumi ya watu watakufa. Kwa hivyo, mifumo inapaswa kugawanywa katika mifumo ngumu na laini ya wakati halisi.

Mfumo wa Uendeshaji wa Wakati Halisi (RTOS) ni Mfumo wa Uendeshaji unaohakikisha uwezo fulani kwa muda fulani. Kwa mfano, inaweza kuundwa ili kuonyesha kuwa kitu kimefikiwa na roboti kwenye mstari wa kuunganisha. Makombora kama hayo yamegawanywa katika "ngumu" na "laini".

Mifumo ya uendeshaji ngumu ya wakati halisi inadhani kuwa hesabu haiwezi kufanywa ikiwa kitu haipatikani ndani ya muda uliowekwa (operesheni kama hiyo itashindwa).

Katika mfumo laini wa uendeshaji wa wakati halisi, laini ya kuunganisha itaendelea kufanya kazi chini ya masharti haya, lakini uzalishaji unaweza kuwa wa chini kwa sababu vitu haviwezi kupatikana kwa wakati uliopangwa, na kusababisha roboti kutozalisha kwa muda.

Kabla ya kutoa mifano ya mifumo ya uendeshaji ya wakati halisi, ni muhimu kuelewa vipengele vya matumizi yao. Mifumo mingine ya uendeshaji huundwa kwa programu maalum, zingine kwa zile za jumla zaidi. Kwa kuongezea, makombora ya madhumuni ya jumla pia wakati mwingine hutumiwa kwa kazi ya wakati halisi. Windows 2000 inayojulikana au IBM Microsoft/390 inaweza kufanya aina hii. Hiyo ni, hata kama OS haikidhi mahitaji fulani, inaweza kuwa na sifa zinazoiruhusu kuzingatiwa kama suluhisho la shida fulani ya programu kwa wakati halisi.

Mifano ya mifumo ya uendeshaji na sifa zao

Kwa ujumla, wakati halisi una sifa zifuatazo:

  • Kufanya kazi nyingi.
  • Mito ya kiteknolojia ambayo inaweza kupewa kipaumbele.
  • Idadi ya kutosha ya viwango vya kukatiza.

Mifumo ya uendeshaji ya wakati halisi mara nyingi hutumiwa kama sehemu ya makombora madogo yaliyopachikwa ambayo hutumiwa katika umbizo la kifaa kidogo. Kwa hivyo, baadhi ya kernels zinaweza kuzingatiwa kama mifumo ya uendeshaji ya kazi moja (mifano: kernels katika IOS, Android, nk) kwa wakati halisi. Walakini, zinahitaji vipengee vingine vya kifaa, kama vile viendeshi, kutekeleza majukumu yao yaliyokusudiwa. Ndio maana iliyojaa, kama sheria, ni zaidi ya msingi tu.

Mfano wa kawaida wa programu ya RTOS ni mpokeaji na onyesho la HDTV. Lazima asome ishara ya digital, isimbue na uionyeshe kama data inayoingia. Ucheleweshaji wowote utaonekana kama video ya pixelated na/au sauti iliyopotoka.

Wakati huo huo, wakati ombi linafanywa "kutoa mifano ya mifumo ya uendeshaji ya aina hii," inamaanisha kutaja zaidi majina maarufu. Ni nini kimejumuishwa katika kikundi hiki?

VxWorks kutoka WindRiver

VxWorks ni mfumo wa uendeshaji wa wakati halisi uliotengenezwa kama programu ya umiliki na WindRiver. Iliyotolewa kwa mara ya kwanza mwaka wa 1987, VxWorks ilikusudiwa kutumika katika mifumo iliyopachikwa inayohitaji utendakazi wa wakati halisi na bainifu. Kwa hivyo, mifano ya mifumo ya uendeshaji ya aina hii hutumiwa katika nyanja za usalama na usalama, tasnia anuwai (haswa anga na ulinzi), utengenezaji. vifaa vya matibabu, vifaa vya viwandani, roboti, nishati, usimamizi wa usafiri, miundombinu ya mtandao, kuboresha vifaa vya elektroniki vya magari na watumiaji.

VxWorks inasaidia Intel (x86, ikijumuisha IntelQuarkSoC na x86-64), MIPS, PowerPC, SH-4 na usanifu wa ARM. RTOS hii inakuja na msingi wenye nguvu, kati programu, msaada uliolipwa vifurushi vya ziada na teknolojia ya vifaa watengenezaji wa chama cha tatu. Katika toleo lake la hivi punde - VxWorks 7 - mfumo umeundwa upya kwa urekebishaji na uboreshaji ili kernel ya OS ihifadhiwe tofauti na vifaa vya kati, programu na vifurushi vingine.

QNX Neutrino

Pia mifano ya kawaida ya mifumo ya uendeshaji ya aina hii ni ganda kama Unix. Hii ni QNX Neutrino, iliyotengenezwa mwanzoni mwa miaka ya 1980 na kampuni ya Kanada ya Quantum Software Systems. Hatimaye, maendeleo yalinunuliwa na BlackBerry mwaka wa 2010. QNX ni mojawapo ya mifumo ya uendeshaji ya microkernel iliyofanikiwa kibiashara, ambayo inatumika katika vifaa mbalimbali, ikiwa ni pamoja na gari na simu za mkononi.

BureRTOS

FreeRTOS ni mfumo wa uendeshaji wa kernel wa muda halisi kwa vifaa vilivyopachikwa ambavyo vimepakiwa na vidhibiti vidogo 35. Inaenea chini Leseni ya GPL Na kizuizi cha ziada na vighairi vya hiari. Kizuizi kinakataza uwekaji alama, wakati ubaguzi unaruhusu kanuni mwenyewe watumiaji pamoja na msimbo wa chanzo uliofungwa, huku wakihifadhi kernel yenyewe. Hii hurahisisha kutumia FreeRTOS katika programu zako mwenyewe.

Windows CE

Windows Embedded Compact ni familia ndogo ya mifumo ya uendeshaji iliyotengenezwa na Microsoft Corporation kama sehemu ya Bidhaa za Windows Imepachikwa. Tofauti na Windows Embedded Standard, ambayo inategemea Windows NT, mifumo hii ya uendeshaji ya sampuli hutumia punje ya mseto ya kipekee. Microsoft hutoa Leseni za Windows CE kwa OEMs ambao wanaweza kurekebisha na kuunda miingiliano yao maalum, kutoa msingi wa kiufundi kwa hii; kwa hili.

Mifumo ya uendeshaji ya wakati halisi (RTOS) imeundwa ili kutoa kiolesura cha rasilimali za mifumo ya muda halisi ya muda muhimu. Kazi kuu katika mifumo hiyo ni wakati wa usindikaji wa data.

Sharti kuu la RTOS ni kuhakikisha utabiri au uamuzi wa tabia ya mfumo chini ya hali mbaya zaidi ya nje, ambayo inatofautiana sana na mahitaji ya utendaji na kasi ya mifumo ya uendeshaji ya ulimwengu wote. RTOS nzuri ina tabia inayotabirika chini ya hali zote za upakiaji wa mfumo (kukatizwa kwa wakati mmoja na utekelezaji wa nyuzi).

Kuna tofauti fulani kati ya mifumo ya wakati halisi na mifumo iliyopachikwa. Mfumo uliopachikwa hauhitajiki kila wakati kuwa na tabia inayotabirika, katika hali ambayo sio mfumo wa wakati halisi. Walakini, hata mtazamo wa haraka haraka katika mifumo inayowezekana iliyoingia unaonyesha kuwa mifumo mingi iliyoingia inahitaji tabia inayotabirika, kulingana na angalau, kwa utendakazi fulani, na kwa hivyo, mifumo hii inaweza kuainishwa kama mifumo ya wakati halisi.

Ni kawaida kutofautisha kati ya mifumo laini na ngumu ya wakati halisi. Katika mifumo ngumu kweli kutokuwa na uwezo wa kutoa jibu kwa matukio yoyote muda maalum husababisha kushindwa na kushindwa kukamilisha kazi. Katika fasihi nyingi za lugha ya Kirusi, mifumo kama hiyo inaitwa mifumo yenye wakati wa kuamua. Katika matumizi ya vitendo wakati wa majibu unapaswa kuwa mdogo. Mifumo laini ya wakati halisi ni mifumo ambayo haingii chini ya ufafanuzi wa "ngumu", kwa sababu Hakuna ufafanuzi wazi kwao katika fasihi bado. Mifumo laini ya wakati halisi haiwezi kuwa na wakati wa kutatua shida, lakini hii haileti kushindwa kwa mfumo kwa ujumla. Katika mifumo ya muda halisi, ni muhimu kuanzisha tarehe fulani ya mwisho (katika fasihi ya Kiingereza - tarehe ya mwisho), kabla ya kumalizika kwa muda ambao kazi lazima lazima (kwa mifumo laini ya wakati halisi - ikiwezekana) ikamilike. Tarehe ya mwisho hii hutumiwa na mratibu wa kazi kutoa kipaumbele kwa kazi inapozinduliwa na wakati wa kuchagua kazi ya utekelezaji.

Martin Timmerman aliandaa mahitaji yafuatayo muhimu kwa RTOS:

  • Mfumo wa Uendeshaji lazima uwe wa kazi nyingi na unaowezekana,
  • OS lazima iwe na wazo la kipaumbele kwa nyuzi,
  • Mfumo wa Uendeshaji lazima uunge mkono mifumo inayoweza kutabirika ya ulandanishi,
  • Mfumo wa Uendeshaji lazima utoe utaratibu wa kurithi vipaumbele,
  • Tabia ya Mfumo wa Uendeshaji lazima ijulikane na iweze kutabirika (kukatiza ucheleweshaji wa usindikaji, ucheleweshaji wa kubadili kazi, ucheleweshaji wa madereva, nk); hii ina maana kwamba katika hali zote za mzigo wa kazi wa mfumo, muda wa juu zaidi wa majibu lazima uamuliwe.

Katika kipindi cha miaka 25-30 iliyopita, muundo wa mifumo ya uendeshaji umebadilika kutoka kwa monolithic hadi muundo wa OS wa safu nyingi hadi usanifu wa seva ya mteja. Katika muundo wa monolithic, OS ina seti ya moduli, na mabadiliko kwenye moduli moja huathiri moduli zingine. Modules zaidi, machafuko zaidi kuna wakati wa uendeshaji wa mfumo huo. Zaidi ya hayo, haiwezekani kusambaza OS kwenye mfumo wa multiprocessor. Katika muundo wa multilayer, mabadiliko katika safu moja huathiri tabaka za karibu; kwa kuongeza, inversion kupitia safu haiwezekani. Kwa mifumo ya wakati halisi, ufikiaji wa moja kwa moja kwa kila safu ya OS lazima itolewe, na wakati mwingine moja kwa moja kwenye vifaa.

Wazo kuu la teknolojia ya seva ya mteja katika OS ni kupunguza msingi wa OS kwa kiwango cha chini (mratibu na primitives ya maingiliano). Utendaji mwingine wote huhamishwa hadi kiwango kingine na kutekelezwa kupitia nyuzi au kazi. Seti ya kazi kama hizo za seva huwajibika kwa simu za mfumo. Maombi ni wateja wanaoomba huduma kupitia simu za mfumo.

Teknolojia ya seva ya mteja inaruhusu uundaji wa mifumo ya uendeshaji inayoweza kuenea na kurahisisha usambazaji katika mfumo wa multiprocessor. Wakati wa kuendesha mfumo, kuchukua nafasi ya moduli moja haina kusababisha athari ya "mpira wa theluji"; Kwa kuongeza, kushindwa kwa moduli sio daima kunajumuisha kushindwa kwa mfumo kwa ujumla. Sasa kuna uwezo wa kupakia na kupakua moduli kwa nguvu. Tatizo kuu katika mfano huu ni ulinzi wa kumbukumbu, kwani michakato ya seva lazima ilindwe. Kila wakati ombi la huduma linapofanywa, mfumo lazima ubadilike kutoka kwa muktadha wa programu hadi muktadha wa seva. Kwa usaidizi wa ulinzi wa kumbukumbu, muda wa kubadili kutoka mchakato mmoja hadi mwingine huongezeka.

Kama sheria, RTOS nyingi za kisasa zimejengwa kwa msingi wa microkernel (kernel au nucleus), ambayo hutoa ratiba na kupeleka kazi, pamoja na mwingiliano wao. Ingawa kernel inapunguza vifupisho vya OS, microkernel bado inahitaji kuwa na uelewa wa uondoaji wa mchakato. Vidokezo vingine vyote vya dhana ya mifumo ya uendeshaji huhamishwa nje ya kernel, ikiitwa ombi, na kutekelezwa kama programu.

Vipengele tofauti RTOS kutoka kwa madhumuni ya jumla ya OS

Mifumo ya uendeshaji ya madhumuni ya jumla, haswa ya watumiaji wengi kama UNIX, inalenga usambazaji bora rasilimali za kompyuta kati ya watumiaji na kazi. Katika mifumo ya uendeshaji ya wakati halisi, kazi kama hiyo inafifia nyuma - kila kitu kinarudi nyuma kazi kuu- kuwa na muda wa kukabiliana na matukio yanayotokea kwenye kituo.Tofauti nyingine ni kwamba matumizi ya mfumo wa uendeshaji wa wakati halisi daima huhusishwa na vifaa, na kitu, na matukio yanayotokea kwenye kituo. Mfumo wa uendeshaji wa wakati halisi unazingatia usindikaji wa matukio ya nje. Mfumo wa uendeshaji wa wakati halisi unaweza kuwa sawa katika kiolesura cha mtumiaji kwenye OS ya madhumuni ya jumla, lakini imeundwa tofauti kabisa.Kwa kuongeza, matumizi ya mifumo ya uendeshaji ya wakati halisi daima ni maalum. Ikiwa OS ya madhumuni ya jumla kawaida hugunduliwa na watumiaji (sio watengenezaji) kama seti iliyotengenezwa tayari ya programu, basi mfumo wa uendeshaji wa wakati halisi hutumika tu kama zana ya kuunda vifaa maalum vya wakati halisi na programu. Na kwa hiyo, darasa pana zaidi la watumiaji wa mifumo ya uendeshaji ya wakati halisi ni watengenezaji wa mifumo ya wakati halisi, watu wanaounda mifumo ya udhibiti na upatikanaji wa data. Wakati wa kubuni na kutengeneza mfumo mahususi wa wakati halisi, mtayarishaji programu anajua kila wakati ni matukio gani hasa yanaweza kutokea kwenye kituo, na anajua muda muhimu wa kuhudumia kila moja ya matukio haya. Mfumo wa RT lazima uwe na muda wa kujibu tukio lililotokea. kwenye kituo ndani ya muda muhimu kwa tukio hili. Thamani ya wakati muhimu kwa kila tukio imedhamiriwa na kitu na tukio lenyewe, na inaweza kuwa tofauti, lakini wakati wa majibu ya mfumo lazima utabiri (kuhesabiwa) wakati wa kuunda mfumo. Kukosa kujibu kwa wakati uliotabiriwa kunachukuliwa kuwa kosa kwa mifumo ya wakati halisi. Mfumo lazima uweze kujibu matukio yanayotokea kwa wakati mmoja. Hata matukio ya nje mawili au zaidi yakitokea kwa wakati mmoja, ni lazima mfumo uwe na muda wa kuitikia kila moja kati ya vipindi muhimu vya matukio haya.

OS ya wakati halisi

Kusudi la jumla la OS

Kazi kuu

Kuwa na wakati wa kuguswa na matukio yanayotokea kwenye kifaa

Sambaza rasilimali za kompyuta kati ya watumiaji na kazi

Je, inalenga nini?

Kushughulikia Matukio ya Nje

Inachakata vitendo vya mtumiaji

Jinsi imewekwa

Chombo cha kuunda vifaa maalum vya wakati halisi na programu tata

Inatambulika na mtumiaji kama seti ya programu zilizo tayari kutumika

Imekusudiwa kwa ajili ya nani?

Msanidi programu aliyehitimu

Mtumiaji wa kati

Mifumo ngumu na laini ya wakati halisi

Kuna aina mbili za mifumo ya wakati halisi - mifumo ngumu ya wakati halisi na mifumo laini ya wakati halisi.

Mifumo migumu ya wakati halisi hairuhusu kucheleweshwa kwa majibu ya mfumo chini ya hali yoyote kwa sababu:

  • matokeo inaweza kuwa bure kama kuchelewa
  • maafa yanaweza kutokea ikiwa majibu yamechelewa
  • gharama ya kuchelewa inaweza kuwa isiyo na mwisho.

Mifano ya mifumo ngumu ya wakati halisi ni mifumo ya udhibiti wa ubaoni, mifumo ya ulinzi wa dharura, virekodi vya matukio ya dharura.

Mifumo laini ya wakati halisi ina sifa ya ukweli kwamba ucheleweshaji wa majibu sio muhimu, ingawa inaweza kusababisha kuongezeka kwa gharama ya matokeo na kupungua kwa utendaji wa mfumo kwa ujumla.Mfano ni uendeshaji wa mtandao. Ikiwa mfumo hauna wakati wa kusindika pakiti inayofuata iliyopokelewa, hii itasababisha kuisha kwa upande wa kutuma na kutuma tena (kulingana na itifaki, bila shaka). Data haipotei, lakini utendakazi wa mtandao umepunguzwa. Tofauti kuu kati ya mifumo ngumu na laini ya wakati halisi inaweza kuonyeshwa kama ifuatavyo: mfumo mgumu muda halisi hautachelewa kuitikia tukio, mfumo laini wa muda halisi haupaswi kuchelewa kujibu tukio.

Kiini cha mfumo wa uendeshaji

Kernel ni sehemu ya kati ya mfumo wa uendeshaji (OS), ikitoa programu na ufikiaji ulioratibiwa wa rasilimali za kompyuta, kumbukumbu, maunzi ya nje, vifaa vya kuingiza na kutoa, kutafsiri amri za lugha ya programu katika lugha ya msimbo wa binary ambayo kompyuta inaelewa. Kama jambo la msingi. kipengele cha OS, kernel inawakilisha zaidi kiwango cha chini vifupisho kwa programu kupata rasilimali za mfumo zinazohitajika kwa uendeshaji wao. Kwa kawaida, kernel hutoa ufikiaji kama huo kwa michakato ya utekelezaji ya programu zinazolingana kupitia utumiaji wa mifumo. mawasiliano ya mwingiliano na wito wa maombi kwa simu za mfumo Mfumo wa Uendeshaji.

Msingi wa monolithic

Kerneli ya monolithic hutoa seti tajiri ya vifupisho vya vifaa. Sehemu zote za kerneli ya monolithic hufanya kazi katika nafasi sawa ya anwani. Huu ni muundo wa mfumo wa uendeshaji ambao vipengele vyote vya kernel yake ni vipengele programu moja, tumia miundo ya jumla data na kuingiliana na kila mmoja kwa taratibu za kupiga simu moja kwa moja. Msingi wa monolithic - njia ya zamani zaidi shirika la mifumo ya uendeshaji. Mfano wa mifumo iliyo na kerneli ya monolithic ni mifumo mingi ya UNIX.

Faida: Kasi ya operesheni, ukuzaji rahisi wa moduli.

Mapungufu: Kwa kuwa kernel nzima inafanya kazi katika nafasi sawa ya anwani, kushindwa katika mojawapo ya vipengele kunaweza kuharibu mfumo mzima.

Baadhi ya kokwa za zamani za monolithic, haswa mifumo ya darasa la UNIX/Linux, ilihitaji urejeshaji wakati wowote muundo wa maunzi ulipobadilika. Wengi punje za kisasa hukuruhusu kupakia moduli wakati wa operesheni ambayo hufanya sehemu ya kazi za kernel. Katika kesi hii, vipengele vya mfumo wa uendeshaji sio moduli za kujitegemea, na vipengele vya moja programu kubwa inayoitwa kernel monolithic, ambayo ni seti ya taratibu, ambayo kila mmoja anaweza kupiga simu kila mmoja. Taratibu zote zinaendeshwa katika hali ya upendeleo.

Microkernel

Microkernel hutoa tu kazi za msingi za udhibiti wa mchakato na seti ndogo ya vifupisho vya kufanya kazi na maunzi. Kazi nyingi hufanywa kupitia michakato maalum ya mtumiaji inayoitwa huduma. Kigezo cha maamuzi cha "microkernelism" ni uwekaji wa madereva na moduli zote au karibu zote katika michakato ya huduma.

Faida: Upinzani wa kushindwa kwa vifaa na makosa katika vipengele vya mfumo. Faida kuu ya usanifu wa microkernel ni shahada ya juu modularity ya kernel ya mfumo wa uendeshaji. Hii inafanya kuwa rahisi zaidi kuongeza vipengele vipya kwake. Katika mfumo wa uendeshaji wa microkernel, unaweza kupakia na kupakua viendeshi vipya, mifumo ya faili, nk bila kukatiza uendeshaji wake.Mchakato wa kurekebisha vipengele vya kernel umerahisishwa kwa kiasi kikubwa, kwani toleo jipya madereva yanaweza kupakiwa bila kuanzisha upya mfumo mzima wa uendeshaji. Vipengele vya kernel ya mfumo wa uendeshaji sio tofauti kimsingi na programu za watumiaji, kwa hivyo unaweza kutumia zana za kawaida kuzitatua. Usanifu wa Microkernel huboresha kutegemewa kwa mfumo kwa sababu kutofaulu katika kiwango cha programu kisicho na usalama ni hatari kidogo kuliko kutofaulu katika kiwango cha modi ya kernel.

Mapungufu: Kupitisha data kati ya michakato kunahitaji uendeshaji.

Mazingira ya wakati wa kukimbia

Mahitaji ya mazingira ya utekelezaji wa mifumo ya wakati halisi ni kama ifuatavyo.

  • kumbukumbu ya mfumo mdogo - kwa uwezekano wa kupachika kwake;
  • mfumo lazima uwe mkazi wa kumbukumbu kabisa ili kuzuia ubadilishanaji wa ukurasa wa kumbukumbu au ubadilishaji;
  • mfumo lazima uwe na kazi nyingi - kuhakikisha kiwango cha juu matumizi bora rasilimali zote za mfumo;
  • msingi na kipaumbele kwa kukatizwa kwa huduma. Kipaumbele cha kukatiza kinamaanisha kuwa mchakato ambao uko tayari kuendeshwa na una kipaumbele fulani lazima uwe na kipaumbele katika foleni juu ya mchakato wenye kipaumbele cha chini, haraka kuchukua nafasi ya mwisho na kuendelea na utekelezaji. Msingi unamaliza yoyote kazi ya utumishi, mara tu kazi inapofika na kipaumbele cha juu. Hii inahakikisha utabiri wa mfumo;
  • meneja wa kipaumbele - huruhusu msanidi programu kukabidhi kila moduli ya kuwasha kipaumbele ambayo haiko chini ya mfumo. Mgawo wa kipaumbele hutumiwa kuamua utaratibu ambao programu ambazo ziko tayari kutekelezwa zinatekelezwa. Njia mbadala ya aina hii ya kuratibu ni upangaji wa jukwa, ambapo kila programu ambayo iko tayari kuendelea inapewa nafasi sawa ya kuendesha. Kwa njia hii, hakuna udhibiti juu ya programu ambayo itatekelezwa na lini. Hii haikubaliki katika mazingira ya wakati halisi. Utumaji kulingana na kipaumbele na kerneli ya kipaumbele cha usumbufu humpa msanidi programu udhibiti kamili wa mfumo. Ikiwa tukio la kipaumbele cha juu litatokea, mfumo huacha kuchakata kazi ya kipaumbele cha chini na kujibu ombi jipya lililopokelewa.

Mchanganyiko wa mali iliyoelezwa hapo juu huunda mazingira yenye nguvu na yenye ufanisi ya utekelezaji wa wakati halisi.

Mbali na mali ya mazingira ya wakati wa kukimbia, ni muhimu pia kuzingatia huduma inayotolewa na kernel ya OS ya wakati halisi. Msingi wa mazingira yoyote ya wakati halisi wa kukimbia ni kernel au dispatcher. Kernel inadhibiti vifaa vya kompyuta inayolengwa: processor ya kati, kumbukumbu na vifaa vya pembejeo/pato; inadhibiti uendeshaji wa mifumo mingine yote na programu ya asili ya kutumika. Katika mfumo wa wakati halisi, mtumaji hukaa kati ya maunzi ya kompyuta inayolengwa na programu ya programu. Inatoa huduma maalum, muhimu kwa kuendesha programu za wakati halisi. Huduma inayotolewa na kernel inatoa programu za maombi ufikiaji wa rasilimali za mfumo kama vile kumbukumbu au vifaa vya kuingiza/toe.

Kernel inaweza kutoa aina tofauti za huduma:

  • Kubadilishana kwa kazi. Mara nyingi ni muhimu kuhamisha data kati ya programu ndani ya mfumo sawa.Aidha, programu nyingi zinahitaji kuwasiliana na mifumo mingine kupitia mtandao. Intercom inaweza kufanywa kupitia mfumo wa ujumbe. Mawasiliano ya nje inaweza kupangwa ama kupitia datagram ( njia bora utoaji), au kupitia njia za mawasiliano (uwasilishaji uliohakikishwa). Uchaguzi wa njia moja au nyingine inategemea itifaki ya mawasiliano.
  • Mgawanyiko wa data. Katika programu za wakati halisi, ukusanyaji wa data huchukua muda mrefu zaidi. Data mara nyingi ni muhimu kwa uendeshaji wa programu nyingine au inahitajika na mfumo kufanya baadhi ya kazi zake. Mifumo mingi hutoa ufikiaji sehemu za jumla kumbukumbu. Uwekaji foleni wa data umeenea. Kuna aina nyingi za foleni zinazotumiwa, ambayo kila moja ina faida zake.
  • Inachakata maombi kutoka kwa vifaa vya nje. Kila programu ya programu imeunganishwa kwa wakati halisi kwa kifaa cha nje aina fulani. Ni lazima kernel itoe huduma za I/O zinazoruhusu programu za programu kusoma na kuandika kwa vifaa hivi. Kwa maombi ya wakati halisi, ni kawaida kuwa na a maombi haya kifaa cha nje. Ni lazima kernel itoe huduma ambayo hurahisisha kufanya kazi na viendesha kifaa. Kwa mfano, fanya iwezekane kurekodi katika lugha ngazi ya juu- kama vile C au Pascal.
  • Kushughulikia hali maalum. Isipokuwa ni tukio linalotokea wakati wa utekelezaji wa programu. Inaweza kusawazishwa ikiwa kutokea kwake kunaweza kutabirika, kama vile kugawanya kwa sifuri. Na inaweza pia kuwa ya asynchronous ikiwa itatokea bila kutabirika, kama vile kushuka kwa voltage. Kutoa uwezo wa kushughulikia aina hizi za matukio huruhusu programu katika wakati halisi kujibu kwa haraka na kwa kutabiri matukio ya ndani na nje. Kuna njia mbili za kushughulikia vighairi - kutumia maadili ya serikali kugundua hali za makosa na kutumia kidhibiti cha ubaguzi kunasa hali za makosa na kuzirekebisha.

Muhtasari wa usanifu wa RTOS

Katika historia yake, usanifu wa mfumo wa uendeshaji umepata maendeleo makubwa. Moja ya kanuni za kwanza za ujenzi. monolithic Mfumo wa Uendeshaji (Mchoro wa 1) ulijumuisha kuwasilisha Mfumo wa Uendeshaji kama seti ya moduli zinazoingiliana kwa njia mbalimbali ndani ya msingi wa mfumo na kutoa programu za programu na miingiliano ya ingizo ya kufikia maunzi.

kiwango cha OS (Kielelezo 2) Mfano wa OS hiyo ni inayojulikana sana Mfumo wa MS-DOS. Katika mifumo ya darasa hili, programu tumizi zinaweza kufikia vifaa sio tu kupitia kernel ya mfumo au huduma zake za wakaazi, lakini pia moja kwa moja. RTOS zimejengwa juu ya kanuni hii kwa miaka mingi. Ikilinganishwa na mifumo ya uendeshaji ya monolithic, usanifu huu hutoa kiwango kikubwa zaidi cha kutabirika kwa athari za mfumo, na pia inaruhusu programu za maombi kufikia haraka maunzi. Hasara

Kinachofanya mifumo kama hii kuwa mbaya ni ukosefu wao wa kufanya kazi nyingi. Ndani ya usanifu huu, tatizo la kuchakata matukio ya asynchronous lilipunguzwa hadi ujumbe wa kuakibisha, na kisha kupigia kura kwa mpangilio buffers na kuzichakata. Wakati huo huo, kufuata makataa muhimu ya huduma ilihakikishwa na utendaji wa juu wa tata ya kompyuta ikilinganishwa na kasi ya michakato ya nje.

Kielelezo 2. Usanifu wa Layered OS

Moja ya usanifu bora zaidi wa kujenga mifumo ya uendeshaji ya wakati halisi ni usanifu wa seva ya mteja. Mpango wa jumla Mfumo wa uendeshaji kwa kutumia teknolojia hii umeonyeshwa kwenye Mchoro 3. Kanuni kuu ya usanifu huu ni uhamisho wa huduma za OS kwa namna ya seva hadi kiwango cha mtumiaji, na microkernel hufanya kama meneja wa ujumbe kati ya programu za mtumiaji wa mteja na seva - mfumo. huduma. Usanifu huu hutoa faida nyingi kwa suala la mahitaji ya RTOS na mifumo iliyoingia. Miongoni mwa faida hizi ni:

1. Kuegemea kwa OS huongezeka, kwa sababu Kila huduma, kwa kweli, ni programu huru na ni rahisi kutatua na kufuatilia makosa.

2. Mfumo kama huo ni bora zaidi, kwani huduma zisizo za lazima zinaweza kutengwa na mfumo bila kuathiri utendaji wake.

3. Uvumilivu wa makosa ya mfumo huongezeka, kwa sababu Huduma iliyogandishwa inaweza kuwashwa tena bila

anzisha upya mfumo.

Kielelezo 3. Kujenga OS kwa kutumia usanifu wa seva ya mteja

Kwa bahati mbaya, leo hakuna mifumo mingi ya uendeshaji inayotekelezwa kwa kanuni ya seva ya mteja. Miongoni mwa RTOS zinazojulikana zinazotekeleza usanifu wa microkernel ni OS9 na QNX.

Orodha ya fasihi iliyotumika:

1) http://ru.wikipedia.org/wiki/Real_time_operating system

2) http://www.asutp.ru/?p=600591

3) http://www.mka.ru/?p=40774

4) http://www.4stud.info/rtos/lecture1.html

5)http://www.ozon.ru/context/detail/id/3092042/