[elektro] fault-tolerant (volt C)

Moczik Gabor pm_levlista at progzmaster.hu
Tue Feb 15 17:54:04 CET 2011


Jó lenne ha sortöréssel írnál, akkor lehetne részekre válaszolni...

hg12345 wrote:
> Igen ezért!!!!
> 
> A ritkítás nagyon sokat számít, ha zavaró jelenségek pl percenként keletkeznek, akkor nem mindegy hogy a ~100 lesz egy bevett zavar, vagy ~10000-ként....

Attól függ.
Ha csak egy kütyü, akkor valóban, átlagban naponta egyszer resetelni 
kell, elmegy, ötvenszer már idegesítő.

De ha mondjuk a folyamat nem csak úgy újraindítható, vagy pl. az autóban 
egy ABS vagy légzsák elektronika, ott ez nem jó.

> 1, a program öninicializáló és önellenörző, akkor egy hiba esetén az adott folyamat automatikusan újra tud indulni, és javíthatja magát, anélkül hogy a teljes rendszert újra inditaná.

Kérdés, hogy a RAM-ban tárolt adatokból miben bízunk meg, és miben nem.
Mert ez korántsem ilyen egyszerű mint ezt így leírni.
Pl. pont a egy terület ellenőrzése közben, épp a ciklusváltozóban megbízunk?

Lehet ECC RAM-ot használni vagy hamming kódot használni minden 
memóriahelyre, de ez nagy munka, és főleg hardver támogatás kéne hozzá.

> 2, Amúgy egy folyamatos üzemű rendszer esetén a legtöbb változó (mint a neve is mutatja változik) mig egy C init alatt egyszer feltöltött konstans két év múlva is azt kéne hogy tartalmazza...... erre kicsi az esély.....
> A legtöbb változó nem teljesen tölti ki a tárolási terét, ezért a program többször is ellenörzi akarva akaratlanul, egy konstanst is ellenörizhetsz, de a C forditó mint halott ágat azonnal kioptimalizálja, de ha még benne maradna a kód javítani akkor se tudod nemengedi írni :-(, max újra indítható a rendszert.

Egy konstanst ellenőrizni felesleges is lenne, kisebb munka (kód) egyből 
a helyes értéket újra beírni, feltétel nélkül.
Ez egyszerűen megoldható, nem kell konstansként deklarálni.

> Ezért sokkal egyszerübb egy nagy energia megváltoztatású helyen tárolni a konstanst, és a teljes blokkot valamilyen CRC v. ellenörzőösszeggel védeni... 

Célszerűbb, ezzel egyetértek, de azzal akkor sem értek egyet, hogy ez 
bármennyire is helyettesíti a többi (hardveres preventív) megoldást.

Teszfázisban éppenhogy talán jobb is lenne enélkül, hamarabb előjönnek a 
  hiányosságok.

> Egyébbként a rendszer megbizhatatlan azt is detektálni kell!, amig fel nem ismered ezt az állapotott addig az egy megbizható rendszer... A felismerés a lényeg, a komolyabb rendszereknél kell felülvédelem, meg más ellenörzés....

Nem éppen.
Ha én nem ismerem fel (vagy csak későn), és az eredmény nem jó, az attól 
még megbízhatatlan rendszer. Ha mondjuk egy mérési folyamat végtermékét 
a megrendelőnek kell reklamálni hogy szar amit szállítottunk, de mi ezt 
nem tudjuk észrevenni, mert nincs a végellenőrzés után még 
végellenőrzés-ellenőrzés, attól még a mérés nem lesz megbízható.

Azt hogy valami nem jó, azt többnyire úgy tudod kideríteni hogy van 
valami infó róla, hogy mi a jó. Pl. egy A/D konverterrel mért eredmény 
hitelességéről szinte semmit nem tudsz, ha nem méred egy másik független 
  eszközzel is.

A RAM-ban tárolt adat ugyanez a kategória. Vagy tárolsz minden elemre 
hamming kódot, CRC-t, hash-t, akármit, vagy csak saccolni tudsz.
Ha az előbbit választod, és nincs hw támogatás, akkor talán az a 
legkevesebb probléma, hogy a konstanst hogyan deklaráld, majdhogynem 
fordítót kellene írni hozzá...

> Mint mindig a kis részletekben vesznek el a kérdések a listán és ezen kezdödik egy a kérdező számára érdektelen kérdés válasz sorozat...(elnézést minden segítő szándékú kollégától) 

Te dobtad be ezt a részt...

-- 
((( Móczik Gábor  )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))



More information about the Elektro mailing list