Jaký je rozdíl mezi operačními systémy v reálném čase, jako je VxWorks, a tradičními operačními systémy, jako je Windows?


Odpověď 1:

Operační systémy poskytují záruku, že úkoly budou dokončeny v určitém časovém období. To může být v některých doménách životně důležité. Jako příklad lze uvést autonomní systém řízení vozidla. Chcete se ujistit, že výpočty jsou dokončeny v omezeném čase, aby nedošlo k selhání otáčením kol.

To znamená, že design OS je odlišný, takže plánovač může poskytnout takové záruky ohledně toho, jak se na zařízení pracuje. Současně to znamená, že aplikace psané pro tento operační systém se díky těmto požadavkům a předpokladům jemně liší.

Na druhou stranu, ve Windows, pokud se program nedokončí za 20ms, ačkoli se systém může zdát pomalý, nebude to mít za následek scénář katastrofického selhání. Tento typ prostředí je často lepší pro uživatele, kteří se pokoušejí komunikovat se systémem, protože různé věci mohou být upřednostňovány.


Odpověď 2:

Saleem Abdulrasool má vynikající odpověď, je to všechno o latenci systému. Při výpočtu definice reálného času je zaručená doba odezvy mezi událostmi, které se obvykle odehrávají, obvykle nějakým přerušením a systémem, který na tuto událost reaguje.

Zjistíte, že různí výrobci operačních systémů definují dobu odezvy v závislosti na hardwarové kombinaci a rychlosti, kterou běží se základní sadou hardwaru, kterou používají pro měření všech změn a testů.

Můžete definovat Windows jako reálný čas definováním doby odezvy na 1 sekundu. Je možné, že tato doba odezvy je dostatečná pro proces, který je považován za skutečný čas.

Kódování v systému v reálném čase má také stejná omezení, váš kód by měl skončit před dalším přerušením typu, na který váš kód reaguje, a umožnit tak další přerušení, se kterými se systém musí vypořádat. Pokud k tomu nedojde, existuje reálné riziko, že váš kód rozbije zásobník.


Odpověď 3:

V zásadě souhlasím s tím, co řekl Saleem a Andrew. Obecně je rozdíl mezi RTOS a tradičním OS algoritmy plánování. To je založeno na aplikační doméně operačního systému a na tom, jaké priority musí stanovit.

V tradičním OS je prioritou propustnost a spravedlnost, takže maximální počet úkolů může být splněn v daném množství času a veškerá práce má šanci dokončit.

V RTOS existují některé úkoly, které budou vyžadovat co nejblíže k zaručenému času dokončení okna. I když to znamená nespravedlnost k jiným úkolům a celkově se snižuje nadbytek. Protože existuje určitá kritičnost pro úkol v reálném čase, jak je určen uživatelem RTOS. Dokonce i úkol, který byl spuštěn dříve, lze předběžně vyprázdnit a odložit k dokončení úkolu v reálném čase. To narušuje férovost, ale je nutné, aby byla zajištěna zásada real-time.

Důvod, proč jsem řekl „co nejblíže“ zaručené době dokončení, je ten, že pokud spustíte 5 úkolů v reálném čase ve stejnou dobu, nebude možné je všechny dokončit v požadovaném okně. Návrhář systému bude muset při navrhování celkového systému a plánování kapacity brát takové možnosti v úvahu.


Odpověď 4:

Protože VxWorks je operační systém v reálném čase (RTOS) a Windows je operační systém pro všeobecné účely (GPOS), lze na vaši otázku pohlížet jako na RTOS vs GPOS.

Nejzákladnější rozdíl je v tom, že RTOS je deterministické v chování načasování, zatímco GPOS je nedeterministické.

Deterministické v časování chování znamená, že úkoly RTOS spotřebují pouze známé a očekávané jednotky času. např. můžeme říct, že výpočet vzorkování (úkol) bude proveden za 2ms.

V GPOS mohou služby (úkoly) vkládat náhodné časové zpoždění do aplikačního softwaru, a tak způsobit neočekávanou pomalou odezvu. např. nemůžeme zaručit, že se aplikace Microsoft Word v systému Windows otevře do 2 sekund po kliknutí na něj.