Development of a Software Environment for Reliable Space Applications

Definition of new methodologies and instruments to support the design of high-reliable systems for space applications starting from commercial-of-the-shelf (COTS) components which are not individually designad to guarantee the required reliability requirements for this class of applications.

  • Duration: 2000
  • Coordinator: Politecnico di Torino
  • Partners: Politecnico di Torino
  • Funded by: Politecnico di Torino through the young researchers call

L’imponente crescita dell’attività spaziale e delle telecomunicazioni satellitari è stata largamente condizionata dallo straordinario sviluppo dell’elettronica e dell’infor¬matica, che ha reso possibile la realizzazione dei sistemi di calcolo e di controllo altamente sofisticati da cui satelliti e sistemi terrestri sono criticamente dipendenti.

In applicazioni spaziali, i dispositivi digitali si trovano a lavorare in un ambiente in cui il livello di radiazioni è molto più elevato rispetto all’ambiente terrestre. Sotto l’effetto di tali radiazioni, la probabilità di occorrenza di guasti temporanei e talvolta permanenti all’interno dei sistemi stessi non è più trascurabile [CaCS99] [Slab98]. Di conseguenza, tra i principali requisiti dei sistemi per applicazioni aerospaziali vanno annoverati l’elevata affidabilità e l’eventuale funzionamento in sicurezza. In questo ambito, si definisce “affidabilità” la capacità di un sistema di rilevare, localizzare ed eventualmente eliminare un guasto che appaia al suo interno. L’elevata affidabilità, richiesta dalla costosa e spesso impossibile attività di manutenzione, deve garantire che le attività di collaudo, diagnostica e ripristino della corretta funzionalità possano essere delegate al sistema stesso; il funzionamento in sicurezza viene invece imposto da tutte quelle applicazioni in cui un malfunzionamento può indurre conseguenze catastrofiche. Per garantire tali caratteristiche di funzionamento, è in genere necessario progettare architetture hardware tolleranti i guasti (fault tolerant), o utilizzare componenti molto costosi qualificati per l’utilizzo in ambito spaziale, le cui prestazioni sono generalmente inferiori a quelle dei componenti commerciali per applicazioni non spaziali. Limiti di budget molto rigidi richiedono tuttavia generalmente di limitare i costi di sviluppo evitando il progetto ad-hoc di dispositivi hardware e software ad alta affidabilità o l’utilizzo di componenti hardware o software qualificati per lo spazio.

Una delle soluzioni più adottate per ridurre il costo di sviluppo di tali sistemi è l’utilizzo di componenti commerciali (COTS), non progettati individualmente per garantire i livelli d’affidabilità richiesti. Nel progetto di un sistema complesso che includa una piattaforma a microprocessore, sistema operativo e software, l’utilizzo di tecniche basate sulla ridondanza hardware non è generalmente la soluzione più efficace dal punto di vista economico; è dunque chiaro che il progetto di sistemi ad alta affidabilità basato sull’utilizzo di componenti COTS sposta il problema a livello del software, ora responsabile di garantire i livelli di affidabilità richiesti nel sistema. In questo contesto, il principale obiettivo è garantire che il software sia sempre in grado di produrre risultati corretti, anche in presenza di guasti nell’hardware del sistema. Il software deve quindi essere in grado di rilevare ed eventualmente correggere comportamenti errati del sistema.

Il problema dell’affidabilità via software è generalmente affrontato a tre livelli distinti:

  • Sistema Operativo: il sistema operativo può essere modificato in modo da aumentarne le caratteristiche di affidabilità. L’approccio può essere molto efficace ma è in pratica molto costoso in quanto richiede una modifica a basso livello del codice del sistema operativo.
  • Applicazione utente [Stru98] [WiSh90] [MaSi92] [DJLu82] [RMSi96] [YHsu95]: tecniche quali Assertions, Time redundancy, Algorithm-Based Fault Tolerance and Control Flow checking sono alcune delle tecniche proposte in letteratura per rendere un applicativo utente più affidabile. Sebbene efficaci, queste tecniche richiedono la modifica del codice sorgente dell’applicazione che, ad esempio nel caso di software commerciale, non è disponibile o troppo complesso per essere modificato senza introdurre errori.
  • Middleware [Jone93] [AISS98] [GoSH99] [NaMM99] [BWKI98]: negli ultimi anni è nata l’idea di utilizzare i cosiddetti Interposition Agents in applicazioni critiche per l’affidabilità. Gli Interposition Agents sono moduli software posti tra il sistema operativo e l’applicazione utente e sono in grado di intercettare e modificare le comunicazioni tra essi in modo da aumentarne le caratteristiche di affidabilità.

Bibliografia:

[AISS98] Albert D. Alexandrov, Maximilian Ibel, Klaus E. Schauser and Chris J. Scheiman, Ufo: A Personal Global File System Based on User-Level Extensions to the Operating System. In ACM Transactions on Computer Systems, Vol. 16, No. 3, August 1998, pages 207-233

[BWKI98] S. Bagchi, K. Whisnant, Z. Kalbarczyk, R. K. Iyer, Chameleon: A Software Infrastructure for Adaptive fault Tolerance, In Proc. of the 28th Fault Tolerant Computing Symposium (FTCS-28), June 1998, Munich.

[CaCS99] Carreira, J.V., Costa, D., and Silva, J.G.: Fault injection spot-checks computer system dependability. IEEE Spectrum, pp. 50-55, August 1999

[DJLu82] D.J. LU, “Watchdog Processor and Structural Integrity Checking”, IEEE Transaction on Computers, vol. C-31, No. 7, pp. 681-685, July 1982

[GoSH99] A.K. Ghosh, M. Schmid, F. Hill, Wrapping Windows NT Software for Robustness, Proc. Of the 29th IEEE Fault Tolerant Computing Symposium, Madison (WI), USA, June 1999

[Jone93] Michael B. Jones, Interposition Agents : transparently Interposing User Code at the System Interface. In Proc. of the fourteenth ACM symposium on Operating systems principles, December 1993, Asheville (USA), pag. 80-93

[MaSi92] H. Madeira, J.G. Silva, “On-line Signature Leraning and Checking”, Dependable Computing for Critical Applications 2, Springer-Verlag, pp. 395-420, 1992

[NaMM99] P. Narasimhan, L. E. Moser, P.M. Melliar-Smith, Using Interceptors to Enhance CORBA, IEEE Computer, Vol. 32, N. 7, July 1999

[RMSi96] M. Zenha Rela, H. Madeira, J. G. Silva, Experimental Evaluation of the Fail-Silent Behavior in Programs with Consistency Checks, Proc. FTCS-26, Sendaj (J), 1996, pp. 394-403

[Slab98] G. Slabodkin.: Software glitches leave navy smart ship dead in the water, July 13 1998, available online at http://www.gen.com/gcn/1998/July13/cov2.htm

[Stru98] V. Strumpen, Portable and Fault-Tolerant Software Systems, IEEE Micro, September-October 1998, pp. 22-32

[WiSh90] K. Wilken, J.P. Shen, “Continuous Signature Monitoring: Low-Cost Concurrent-Detection of Processor Control errors”, IEEE Transaction on Computer Aided Design, vol. 9, No. 6, pp. 629-641, June 1990

[YHsu95] Y.M. Hsu et al., “Time redundancy for error detecting neural networks”, Proc. IEEE Int. Conf. on Wafer Scale Integration, pp. 111-121, Jan. 1995

Leave a Reply

Your email address will not be published. Required fields are marked *