18
Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo [email protected]

Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo [email protected]

Embed Size (px)

Citation preview

Page 1: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Sistemi Operativi in Tempo Reale: incidenti famosi

[email protected]

Page 2: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Alcuni incidenti famosi in applicazioni spaziali dovuti a errori software Missione Pathfinder + Sojourner 6 mesi di viaggio 4 Luglio 1997 atterraggio su Marte 15 luglio 1997 il sistema si auto resetta per time-out Il robot cessa di funzionare 16 luglio 1997 ricerca delle cause 17 luglio 1997 viene identificato un evento di

sovraccarico del Sistema Operativo che aveva una probabilità di verificarsi pari a 1/106 e che non era stato previsto

Page 3: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Architettura del sistema

Page 4: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997Missione Pathfinder + Sojourner6 mesi di viaggio4 Luglio 1997 atterraggio su Marte15 luglio 1997 il sistema si auto resetta per time-outIl robot cessa di funzionareOgni reset provoca perdita di dati

Page 5: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Caratteristiche del sistema Il SO realizza schedulazione pre-emptive dei thread le priorità vengono assegnate in base alla urgenza relativa dei

thread Il BUS è un tipo di memoria comune usata per scambiare

informazioni tra le differenti componenti del sistema Task:

Alta priorità: gestione del bus BCT. L’accesso al bus viene sincronizzato con semafori binari (mutex)

Media priorità: comunicazione radio SCT Bassa priorità: acquisizione di dati metereologici MT. L’operazione di

pubblicazione dei dati avviene mediante acquisizione di un mutex, scrittura su bus e rilascio del mutex

Page 6: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Problema di inversione di priorità

Evento infrequente: interrupt che schedula il task a media priorità (comunicazioni) mentre il task ad alta priorità (gestione del bus) è bloccato su un mutex in attesa del bus (in attesa della acquisizione di dati meteo)

Il task di comunicazione, a media priorità, ha maggiore priorità rispetto alla acquisizione dati blocco delle acquisizioni blocco del task di gestione del bus.

Time-out del task di gestione del bus conclude che c’è un grave errore del sistema reset

Page 7: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Soluzione adottata: uso dell’algoritmo Priority inheritance Sistema operativo: l’uso o meno della priority inheritance viene introdotto mediante un flag: il S.O. Inviato su Marte aveva il flag settato ad ‘off’ Il flag viene cambiato da terra

Page 8: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Schedulazione senza conflitti

Priorità

Page 9: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Conflitto su una sezione critica

Priorità B

Page 10: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Conflitto su una sezione critica

Priorità B

Page 11: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Protocollo Non Preemptive (NPP)

Elimina le interruzioni nelle sezioni critiche

Implementazione: quando un task entra in una sezione critica, la sua priorità viene aumentata al valore massimo

PROBLEMA: i task ad alta priorità che non usano la sezione critica possono bloccarsi

Page 12: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Schedulazione con NPP

Priorità

Page 13: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Pathfinder - 1997

Priority Inheritance

Priorità B

Prioritàdel task MT

Page 14: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione “Mars Climate Orbiter”

MCO: per orbitare intorno a Marte e raccogliere informazioni metereologiche (11/12/98)

9 mesi di viaggio. Era stata programmata anche la possibilità di comunicare con MPL che

doveva essere lanciato qualche mese più tardi Il 23 settembre 99 MCO interruppe le comunicazioni Probabilmente l’orbita venne mancata per un errore nel calcolo

dell’angolo di ingresso. L’angolo era calcolato da due grandezze fornite da due moduli software

sviluppati da due gruppi diversi. Si scoprì che I due gruppi usavano diverse unità di misura: uno usava unità inglesi e l’altro usava unità metriche.

Il sistema aveva accumulato errori durante il viaggio e arrivò alla atmosfera con un angolo sbagliato.

Quindi: causa dell’incidente: inadeguata comunicazione tra diversi gruppi di sviluppo software e insufficiente test del sistema.

Page 15: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Lancio: 11 dicembre 1998

11 mesi di viaggio, 4 correzioni di rotta

Arrivo il 23 settembreManovre di immissione

nell’orbita

Missione MCO - 1998

Page 16: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione MPL - 1999 3 gennaio 99 tre sistemi spaziali: il “Mars Polar Lander” (MPL) e due

sistemi “Deep Space” (DP2). MPL doveva atterrare su Marte, mentre DP2 doveva semplicemente

raccogliere dati cadendo attraverso l’atmosfera. I tre sistemi dovevano sospendere le comunicazioni prima di entrare

nella atmosfera e riprenderle dopo essere arrivati sul pianeta. La comunicazione non venne più ristabilita. Probabilmente la causa

sono stati dei segnali elettromagnetici di disturbo acquisiti durante la discesa.

disturbo interpretato erroneamente come atterraggio con conseguente spegnimento dei motori

Non c’era nessuna specifica di progetto per considerare disturbi di quel tipo, test successivi mostrarono che le cablature potevano acquisire disturbi di quel tipo

Inoltre non erano stati predisposti test software per risolvere quel tipo di problema

Quindi: causa dell’incidente: progetto hardware/software inadeguato e insufficiente test del sistema.

Page 17: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Lancio: 3 gennaio 1999

11 mesi di viaggio, 4 correzioni di rotta

Arrivo il 3 dicembreApertura paracaduta

Accensione razzi di frenatura

AtterragioComunicazone attraverso MCO

Missione MPL - 1999

Page 18: Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo mumolo@units.it

Missione Mars Rover -2004

Lancio: giugno 2003 Il robot Spirit usa una CPU R6000, 120 MB di Ram e 256 MB di disco a

stato solido Il sistema operativo viene caricato completamente in RAM e il disco viene

usato per memorizzare dati. Quando vengono creati abbastanza file, inizia la trasmissione verso la terra

e eventualmente la ritrasmissione se alcuni dati sono mancanti. Quando la trasmissione termina i file vengono cancellati.

19 giorni dall’atterraggio Spirit cercò di creare più file di quanti potessero essere memorizzati eccezione Spirit entra in un ciclo infinito di caricamento del sistema operativo ed eccezione.

Spirit interrompe le comunicazioni Ipotizzando una mancanza di spazio sul disco viene inviato uno script che

cancella circa 1000 file, risolvendo il problema