Citat:
Ursprungligen postat av
MeanME
Jo, jobbat med realtidssystem för processindustrin och ansvarat för utvecklingen av styrsystem och övervakning av sådant, finns inte utrymme för buggar där. Du kan ha processer igång av användaren som kostar flera miljoner om ett styrsystem lägger av för att inte tala om hur mycket ett produktionsbortfall kostar så det skall bara fungera när en produkt levereras så enkelt är det.
Helst vill jag i sådana lägen undvika dynamiska minnes allokeringar, och allokerar allt som kan behövas på en gång - realtidssystem behöver sällan mycket minne för att snurra.
Timingen är ytterst viktigt i sådana styrsystem, tänk dig styrsystemet på JAS, i att datorerna måste reagera inom XX millisekunder, annars går det åt helvete.
Man kan stressa sådana här system med att köra dem i simuleringar mot ett fiktivt virtuellt produktionssystem eller en fiktiv modell av flygplanet
och tex sakta ner CPU-hastigheten (görs bäst i en virtuell maskin), därmed kan man se när det blir risk för att systemet ballar ur, dvs när timing kraven inte kan upprätthållas., och var dessa fel först uppstår,
Och viktigaste om hur mycket marginal det finns kvar att vinka på
En annan sak som jag löste något problem med, minns knappt vad - gjorde ett sådant lattjolajbanjobb att jag helt enkelt körde ett program avsiktligt långsammare än vanligt - och dumpade hela CPU-innehålllet på en buffer och kollade i efterhand vad som hänt
Realtidssystem har på sätt och vis en stor fördel programmeringsmässigt, vi vet redan i förväg om hur miljön ser ut där man kör programvaran. Så är inte fallet i en vanlig PC, där kan miljön variera enormt även under exekveringstiden, olika versioner av DLL-er finns, olika versioner av OS, konkurrerande processer, osv osv
Sådana realtidssystem som måste använda asynkrona enheter har ju en speciell svårighet med detta, man kan behöva handkoda sådan hantering pga att det inte finns libs som stödjer sådant. Tex antingen kan man polla den asynkrona enheten, ellr välja att bygga den på tex interrupts ellr timers. Pollning är ju slöseri med CPU-cykler, men om det inte är viktigt så what if and else or not ?
Citat:
Ursprungligen postat av
MeanME
Det är därför jag anser det är så viktigt att minimalisera metoder ner till en process per metod när det är möjligt, så tiden för felsökning blir minimal och rättelsen påverkar minst möjliga antal andra system.
Ja fast jag sett funktioner med 100 tals variabler och parametrar där bara dessa upptar flera sidor (avancerad matematik). Det är mkt svårt att klippa upp sådana att de blir mer lättförståeliga utan att antalet nya funktionsanrop blir så många att det går avsevärt långsammare, och man får stora problem bara med att hitta på funktionsnamn på delfunktionerna osv.
Citat:
Ursprungligen postat av
MeanME
W4an var ju ingen hit den med när den levererades i början.
Windows NT 4.51 var mycket riktigt ett bekymmersamt OS, dels fick man installera det via disketter alldeles i början, och man kunde räkna med att en del drivare kunde man glömma, NT 4.51 var ett system man bara kunde köra vissa program som ofta var de allra mest använda. Ett riktigt uppsatt NT 4.51 system kunde dock fungera bra, om användarna följde råden de fått. Dock om man hade hade störig nätverksuppkoppling så blev det snabbt stora problem.
Citat:
Ursprungligen postat av
MeanME
Novell som var deras stora utmanare på nätverk på den tiden svarade med att leverera ett användargränssnitt till deras servrar skriven i java har jag för mig som var totalt obrukbart, segt var ett understatement och extremt fult till råga på allt, det räckte för att de som varit den största aktören på marknaden fick lägga ner trots att de hade i grunden en bättre fungerande produkt, Lotus 123 (sista större programmet helt skrivet i assembler vill jag minnas) åkte ju på storstryk av Excel just på grund av användargränssnittet vill jag minnas som en liten parentes trots att de med hade en imho långt bättre produkt...
Java hypen höll i sig med många misslyckade projekt, någon grupp av töntar hade ju tagit an sig att skriva en databashanterare i Java men det sket sig helt vill jag minnas, -- den var väl så långsam att ett vanligt papperskartotek hade varit snabbare. Novell hade ju riktigt smarta ide'er genom att kunna packa in programvaran på så lite minne som kärrorna hade då. Jag gillade Novell för de jobbade mycket för att få det att fungera med olika nätverksprotokoll. Novell gick ju riktigt bra som företag vill jag minnas, med många sålda licenser, - doch så upptod den väl runt > 50 st 3,5 tums disketter kanske
.
.