Pytanie:
Co powstrzymuje komercyjny odrzutowiec przed elektronicznym „resetowaniem”, tak jak czasami robi to komputer?
Umbrella_Programmer
2020-01-03 08:31:34 UTC
view on stackexchange narkive permalink

Obawiałem się latać przez ostatnie kilka lat i jednym ze sposobów przejawiania się tej irracjonalnej fobii jest niepokój związany z cyklicznymi zmianami mocy samolotu w powietrzu: wyłączanie silników, wyłączanie się urządzeń sterujących itp. / p>

Czasami komputer lub smartfon ulegnie awarii i sam się zrestartuje lub w gorszym przypadku nastąpi awaria zasilania lub baterii i urządzenie nie włączy się ponownie.

Czy to się kiedykolwiek zdarzy komercyjnymi odrzutowcami? Spodziewam się, że są one połączone elektronicznie w zasadniczo inny sposób niż komputery, więc jedna awaria systemu nie ma wpływu na resztę, ale nigdy nie prosiłem pilota.

Powiązane: [Jak działają zwolnienia w systemach samolotów?] (Https://aviation.stackexchange.com/q/21744/3573)
Powiązane: [Dlaczego krytyczne komputery pokładowe są zbędne?] (Https://aviation.stackexchange.com/q/13447/3573)
Cóż, wciąż istnieją przykłady konieczności „ponownego uruchomienia samolotu”;) A350: https://www.theregister.co.uk/2019/07/25/a350_power_cycle_software_bug_149_hours/ i 787: https://www.theregister.co .pl / 2015/05/01 / 787_software_bug_can_shut_down_planes_generators /
Komentarze nie służą do rozszerzonej dyskusji; ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/102895/discussion-on-question-by-umbrella-programmer-what-prevents-a-commercial-jet-fro).
Siedem odpowiedzi:
HiddenWindshield
2020-01-03 09:44:21 UTC
view on stackexchange narkive permalink

Jestem programistą i prywatnym pilotem, więc może pomogę rozwiać niektóre z tych obaw.

  1. Komputery obsługujące komercyjne samoloty są koncepcyjnie znacznie prostsze niż te który obsługuje Twój telefon. Oznacza to znacznie mniejszą szansę na błąd w oprogramowaniu, tylko dlatego, że programista ma mniej do śledzenia.

  2. Jeśli Twój telefon uruchomi się ponownie, nie zagraża to nikomu życia. . Tak więc testy i Q.A. na takie urządzenie jest w zasadzie to, co firma chce zrobić. Z drugiej strony komputery w lotnictwie są znacznie dokładniej testowane, zanim będą mogły być certyfikowane do latania.

  3. Podobnie jak w punkcie 1, komputery w samolocie mają tylko jedną pracę. . Wiele awarii na typowym komputerze PC lub smartfonie jest spowodowanych przez różne aplikacje nadeptywające się nawzajem. (System operacyjny ma rozdzielać każdą aplikację, więc nie mogą tego zrobić, ale punkt 2 dotyczy również systemów operacyjnych).

  4. Samolot to nie jeden pojedynczy komputer, taki jak Twój telefon. Tak, Twój telefon prawdopodobnie ma wiele procesorów, każdy z wieloma rdzeniami, ale są one ściśle ze sobą połączone w celu utworzenia jednego komputera. Komputery w samolocie są połączone w sieć, ale są to oddzielne komputery. Jeśli twój telefon się zawiesza, nawet jeśli facet siedzący obok ciebie jest w tej samej sieci, nie ma to na niego wpływu, prawda? Podobnie, jeśli zawiedzie FADEC dla jednego silnika (zjawisko znikające rzadko, ponieważ koncepcyjnie FADEC należą do najprostszych komputerów), wszystko, co się stanie, to wyłączenie jednego silnika, bez wpływu na resztę samolotu.

  5. Z drugiej strony naprawdę ważne komputery (takie jak kontrolery typu fly-by-wire) mają wiele nadmiarowości. Więc jeśli jeden zawiedzie, reszta może odrobić luz. Nawet pilot nie zauważyłby, gdyby nie lampka ostrzegawcza, która pojawiałaby się w kokpicie.

Jeśli chcesz zobaczyć, co naprawdę się dzieje, gdy coś się nie powiedzie w samolocie, weź spójrz na następujące filmy:

Pilot pilotował samolot ręcznie, wyłączając i ponownie uruchamiając awionika. Lot następnie przebiegał normalnie.

Pilot faktycznie pozwolił autopilotowi mieć go na kilka sekund, tylko z ciekawości, dokąd go zaprowadzi. Ale kiedy zaczął robić więcej, niż powinien, wyłączył autopilota i przejął ręczne sterowanie bez problemu.

Silnik nadal pracował pomimo utraty całego zasilania elektrycznego całego samolotu. Wylądował bezpiecznie.

Edytuj: Cóż, zaledwie dwie godziny temu, kiedy to piszę, na moim kanale YouTube pojawił się kolejny film przedstawiający awarię podczas lotu:

Przełączył się na swój zapasowy generator i poza irytującym jękiem słuchawki, nie miałem innego problemu z lotem.

Czy jest jakiś powód, dla którego w swojej odpowiedzi uwzględniłeś spoilery?
Ja na przykład podoba mi się niepewność, że nie wiem, jak każdy z nich się skończy!
@Valay_17 Na wypadek, gdyby chcieli obejrzeć filmy samodzielnie, nie wiedząc, co się stanie.
@HiddenWindshield Och, nie pomyślałem o tym ... :)
Jeśli to pomoże, OP, infrastruktura krajowa, taka jak sieci telekomunikacyjne, również wykorzystuje tę koncepcję redundancji jako oczywistość. Heck, Stack Overflow wykorzystuje koncepcję redundancji - w przypadku problemu może przełączyć się w tryb tylko do odczytu. A to nie są nawet aplikacje krytyczne dla bezpieczeństwa! Porównanie z twoim domowym komputerem jest po prostu szalone.
Uważam, że punkty 2 i 4 są nieważne. 2: Programy nie są w stanie „nadepnąć sobie nawzajem”, nawet na zwykłym x86 są one silnie oddzielone trybem chronionym i do ominięcia tego potrzebny byłby exploit ring0. Jądro dla Windowsa i Linuksa zostało prawdopodobnie przetestowane przynajmniej tak samo jak jądro używane w lotnictwie. 4: Typowy komputer PC to również zestaw komputerów „połączonych w sieć”, znacznie wykraczający poza twój przykład wielu rdzeni, istnieją kontrolery do wszystkiego, wiele z możliwością masteringu magistrali. Ponadto systemy awioniki mają ścisłe wymagania czasu rzeczywistego, których nie dotyczy typowy komputer PC.
Komputery typu fly-by-wire są nie tylko nadmiarowe, ale są budowane przy użyciu różnych architektur i programowane przez różne zespoły, aby zminimalizować możliwość wystąpienia problemu na wszystkich komputerach jednocześnie. Na przykład A320 ma dwa komputery Intel FBW i dwa komputery Motorola FBW.
@AlphaCentauri - tutaj na Ziemi nie musimy zagłębiać się w jakąś inną przestrzeń procesową, aby „nadepnąć na siebie” - poproś inną aplikację o otwarcie pliku ze złą nazwą pliku lub uruchomienie przeglądarki na stronie z exploitem 0-day lub przesuń API ułatwień dostępu za daleko ... Istnieje wiele oficjalnych kanałów komunikacji między procesami IPC, które mogą być wykorzystane do wywołania problemów nawet w niezamierzony sposób. W tym przypadku koszt testowania zgodnie z normami lotniczymi (lub wszelkimi normami krytycznymi dla życia) jest sposobem na przeszkodę dla dowolnego systemu operacyjnego ogólnego przeznaczenia, który ma zostać przetestowany w celu zakwalifikowania (przynajmniej w domyślnej konfiguracji konsumenckiej).
Dodatkowym powodem, który może dotyczyć tylko Airbusa A380, jest to, że obsługują one oprogramowanie, które jest częściowo formalnie zweryfikowane, co oznacza, że ​​matematycznie udowodniono, że jest wolne od określonych klas błędów. Sądzę, że używają mikrojądra o nazwie [INTEGRITY-178B] (https://www.ghs.com/products/safety_critical/integrity-do-178b.html), zgodnego z DO-178B mikrojądra RTOS.
@AlphaCentauri - Oprócz tego, co powiedział Aleksiej Lewenkow, komputer PC nie jest „zestawem komputerów w sieci”. To jeden komputer z wieloma komponentami. To prawda, że ​​czasami zdarza się, że karta sieciowa, dysk twardy itp. Ulegną awarii bez wpływu na resztę komputera, ale zdarza się to rzadko. Jeśli twój dysk twardy zostanie uszkodzony, lepiej miej nadzieję, że nic nie zostało zamienione w tym czasie z pamięci RAM, ponieważ jeśli tak było, komputer wyświetli niebieski ekran (lub odpowiednik) kilka sekund później. A jeśli jeden z głównych procesorów ulegnie awarii, to wszystko dla całego systemu, niezależnie od tego.
Graham
2020-01-03 17:36:31 UTC
view on stackexchange narkive permalink

Zanim zaczniemy, ważne jest, aby powiedzieć, że Twoje obawy nie są irracjonalne. Gdyby tak się stało lub gdyby systemy sterowania twojego samolotu uległy awarii w inny sposób w niebezpieczny sposób, twoje życie naprawdę byłoby w niebezpieczeństwie.

Nie jesteś pierwszą osobą, która pomyślała o tym. . Z tego powodu mamy kategorię systemów sterowania, które technicznie opisujemy jako związane z bezpieczeństwem , i istnieje cała gałąź inżynierii zwana inżynierią bezpieczeństwa poświęcone formalnej ocenie tych systemów i próbom zapobiegania wypadkom. Obejmuje to systemy sterowania samolotem, ale także przeciwblokujące hamulce, urządzenia medyczne i wszelkie inne systemy, w których ludzie mogą zostać zranieni w wyniku nieprawidłowego działania. Stopień, w jakim ludzie mogą zostać w ten sposób skrzywdzeni, jest formalnie oceniany jako Poziom nienaruszalności bezpieczeństwa na podstawie ryzyka. Ryzyko to kombinacja prawdopodobieństwa zdarzenia, złego wyniku oraz tego, czy zaangażowane osoby mogą podjąć jakiekolwiek działania łagodzące, i jest oceniane pod kątem wszystkich możliwych nieprawidłowości w zachowaniu systemu związanego z bezpieczeństwem.

Pamiętaj, że ta ocena może nie być tak intuicyjna, jak myślisz. Kiedyś pracowałem nad systemem dozowania plew i pochodni do samolotów wojskowych. Można by pomyśleć, że ryzyko braku środków zaradczych i zestrzelenia pilota byłoby twoim głównym ryzykiem - ale ocena bezpieczeństwa (zastosowaliśmy FMEA) wykazała, że ​​pilot miał inne opcje łagodzące, takie jak zbroja i fotel wyrzutnika, zestrzelenie to szansa, którą już zaakceptowali, kiedy podjęli pracę, a ryzyko, że rozbijający się samolot uderzy w budynki, było znikome i coś, co zostało już instytucjonalnie zaakceptowane jako część posiadania sił powietrznych. Najpoważniejszym zagrożeniem było w rzeczywistości niewypalenie systemu podczas przeładowywania go przez zbrojmistrza, ponieważ wtedy z bliskiej odległości trafiali w głowę salwą 36 nabojów do strzelby. Płatnerz nie zgodził się skorzystać z tej szansy i nie było praktycznego sposobu, aby ich chronić. W rezultacie nasz system musiał domyślnie nie uruchamiać się, jeśli były jakieś rozbieżności.

Istnieje wiele sposobów zapewnienia niezawodności. Najpopularniejsza jest redundancja. Możesz mieć wiele czujników w wielu lokalizacjach, więc system zawsze może ustalić, co się dzieje, jeśli jeden (lub może więcej) zawiedzie. Zwykle jest wiele siłowników dla ważnych powierzchni lotu lub wiele powierzchni, na których statek powietrzny może zachować kontrolę, jeśli jeden lub więcej zostanie uszkodzonych. Samoloty pasażerskie na ogół mają również wiele silników i wiele zbiorników paliwa, które można odizolować od siebie w przypadku uszkodzenia. W wielu przypadkach może istnieć wiele systemów sterowania, które „głosują” na właściwe działanie, więc jedna niesprawna jednostka zostanie zignorowana. W skrajnym przypadku każdy system sterowania mógł być nawet zaprogramowany przez inny zespół programistów, więc jest bardzo mało prawdopodobne, że błąd w oprogramowaniu jednego zespołu będzie obecny w oprogramowaniu innego zespołu. I mogą istnieć inne systemy zapasowe, takie jak mechaniczna kontrola.

Kolejną dobrą metodą łagodzenia skutków jest szkolenie. Jest całkowicie dopuszczalne, że coś pójdzie nie tak, jeśli ludzie, którzy go obsługują, są w stanie poradzić sobie z tą awarią i kontynuować pracę. Ważne jest, aby nie lekceważyć tego, jak dobrzy potrafią być ludzie. Ludzie mogą również powodować awarie, więc szkolenie może również polegać na powiedzeniu im „nie rób tego”. Duże samoloty stosunkowo wolno reagują na sterowanie, więc piloci dość często mogą nadmiernie poprawiać i pogarszać sytuację. W przypadku niektórych samolotów komercyjnych standardową reakcją, jakiej uczą się piloci w przypadku niestabilności, jest puszczenie drążka i umożliwienie dronowi poprawienia się.

Warto zauważyć, że oba te czynniki są powodem, dla którego Boeing-737MAX klęski żywiołowe są do tego stopnia, że ​​należy postawić sprawę karną pojedynczo i całej organizacji. Przedmiotowy system nie wykorzystywał nadmiarowych danych wejściowych, mimo że były one dostępne; wpływ systemu, który nie reaguje poprawnie, nie został oceniony ani złagodzony; a załodze nie dano żadnego szkolenia w zakresie radzenia sobie z awarią, ani nawet nie powiedziano, że istnieje. W Wielkiej Brytanii przestępstwo „zabójstwa korporacyjnego” istnieje po to, by ścigać dokładnie tego rodzaju błędy.

Innym elementem tego wszystkiego jest jednak jakość , tak aby w pierwszej kolejności upewnić się, że systemy nie ulegną awarii. Niezawodność oprogramowania jest prawie całkowicie zależna od ilości przeglądów i testów, które mają miejsce. Obecnie pracuję nad oprogramowaniem do sprzętu naukowego i szacuję, że około 10-20% czasu programistycznego poświęcam na testowanie. Komputery i telefony komórkowe będą mniej więcej takie same. Kiedy pracowałem nad systemami motoryzacyjnymi i kosmicznymi, sytuacja była całkowicie odwrotna - liczyliśmy, że około 5-10% czasu poświęcamy na kodowanie, 10-20% na projektowanie, a resztę poświęcamy na przeglądanie i testowanie .

Kontrola zmian jest również radykalnie bardziej ograniczona. Microsoft może wydać aktualizację, a następnie przeprowadzić kontrolę uszkodzeń w kilku przypadkach, w których źle się zachowuje, i wkraść się w kilka dodatkowych funkcji w tym samym czasie. Jednak w programowaniu związanym z bezpieczeństwem nie zmienia się ani jednej linii kodu bez formalnego potwierdzenia, że ​​(a) wszyscy rozumieją, co zrobi ta zmiana, (b) że ta zmiana naprawia ten błąd i nic innego nie zmienia i (c) że ta zmiana jest nawet potrzebna. Wiele sesji selekcji błędów polega na wykrywaniu błędów, w wyniku których ostatecznie decydujemy, że wpływ błędu jest niewielki (być może na przykład 10 ms później włączamy lampkę ostrzegawczą), ale ryzyko próby naprawienia błędu może być potencjalnie wysokie, jeśli zdarzyło nam się źle to zrobić, więc bezpieczniej jest trzymać się tego trywialnego błędu.

Jak pokazuje przypadek Boeinga-737MAX, wszystkie te procesy są warte cholery tylko wtedy, gdy ludzie ich przestrzegają. Te procesy jednak istnieją i są najlepszą praktyką w branży dziesiątek tysięcy inżynierów na całym świecie, która ma wiele międzynarodowych standardów formalnych, które to potwierdzają. Nieprzestrzeganie tych standardów jest niemal z definicji rażącym zaniedbaniem, a większość krajów posiada przepisy, które pozwalają ścigać osoby i firmy, które dopuściły się tego stopnia zaniedbania. Większość inżynierów i tak chciałaby wykonywać dobrą robotę; ale prawo gwarantuje, że organizacja jako całość pozostaje uczciwa i nie idzie na skróty.

Bardzo dobra odpowiedź. Możesz, jeśli masz czas, rozwinąć zdanie lub dwa na temat tego, jak bardzo * procesy * tworzenia oprogramowania i sprzętu dla systemów krytycznych dla bezpieczeństwa są ściśle zdefiniowane, aby zapewnić bezpieczeństwo gotowego produktu, np. jak w [IEC 61508] (https://en.wikipedia.org/wiki/IEC_61508), a następnie normach specyficznych dla domeny. Faktyczne * posiadanie * sprawdzonego, systematycznego, udokumentowanego procesu, który zapewnia spełnienie wymagań, przestrzeganie specyfikacji, przeglądy i testy itp. Jest najważniejszą różnicą w ogólnym rozwoju produktu.
@Peter-ReinstateMonica Dzięki. Oczywiście wszystko jest zgodne z prawdą. Martwiłem się, że szedłem zbyt długo, bo tak było! :)
Warto zauważyć, że proces testowania / jakości wymaga * niezależności * od zespołu, który faktycznie zaimplementował kod w wielu przypadkach. (Z pewnością prawdziwe dla DO-178 i DO-254).
kevin
2020-01-03 09:35:13 UTC
view on stackexchange narkive permalink

Twoje obawy są rozsądne i uzasadnione. Wyłączenie lub ponowne uruchomienie w locie byłoby katastrofalne dla samolotu. Dlatego inżynierowie zaprojektowali systemy w taki sposób, że taki scenariusz jest praktycznie niemożliwy do zrealizowania.

Energia elektryczna

Samolot pasażerski ma wiele źródeł energii elektrycznej. Każdy silnik odrzutowy ma wbudowany generator. Kiedy turbina się obraca, generowana jest energia elektryczna. Każdy generator można niezależnie wyłączyć w przypadku wystąpienia problemu. Większość samolotów ma również pomocniczy zasilacz lub APU. APU można uruchomić w sytuacji awaryjnej, aby zapewnić zapasowe zasilanie elektryczne i hydrauliczne do samolotu, jak to zrobiono w słynnym Hudson Riving Landing.

Jeśli wszystko zawiedzie (na przykład samolotowi kończy się paliwo), ograniczoną moc elektryczną można zapewnić przez wiatraki, albo przy użyciu turbiny Ram Air (np. Boeing 777), albo przez wiatrakowanie samych turbin (np. Boeing 747), ponieważ samolot powoli ślizga się w kierunku miejsca lądowania.

Poza tym jest oczywiście akumulator, który jest cały czas ładowany. W nagłych przypadkach może zapewnić ograniczoną moc.

Komputery

Wszystkie samoloty są wyposażone w wiele komputerów sterujących lotem. Jednostki są budowane przez różnych producentów, na różnych architekturach procesorów i różnych kodach źródłowych. Szansa na jednoczesną porażkę wszystkich jednostek z powodu błędu lub wady jest bardzo niska. W mało prawdopodobnym przypadku, gdyby jedna z jednostek uległa awarii, piloci mogą odłączyć ją od reszty systemu.

Na przykład Airbus A320 ma 2 komputery sterujące wysokością, 3 komputery steru wysokości i 2 komputery pokładowe. Komputery rozszerzające. Każda jednostka może zostać wyłączona, jeśli będzie działać nieprawidłowo.

Mechaniczne połączenie

W niezwykle mało prawdopodobnym przypadku całkowitego zaniku zasilania elektrycznego niektóre elementy sterujące są połączone z kokpitem za pomocą środków mechanicznych i mogą być obsługiwane siłą człowieka. Na przykład procedura awaryjna w przypadku całkowitej awarii komputera pokładowego w Airbusie A320 polega na wylądowaniu samolotu przy użyciu wyłącznie dźwięków steru, pokrętła steru wysokości i przepustnic. To nigdy się nie zdarzyło w historii.

Dodam też, że długie loty oceaniczne, takie jak Londyn do Nowego Jorku, musiałyby posiadać certyfikat ETOPS (samolot, załoga, linia lotnicza itp.). Zapewnia to zawsze miejsce na awaryjne lądowanie w dowolnym momencie lotu, jeśli coś nadal pójdzie nie tak.
Sascha
2020-01-03 19:46:08 UTC
view on stackexchange narkive permalink

jako ktoś, kto przeprowadził testy oprogramowania na nieistotnym (klasa D, wkrótce wyjaśni) systemowi zatwierdzania samolotu do lądowania na lotniskach cywilnych: W samolocie istnieje ścisła hierarchia określająca, jakie funkcje oprogramowania oznaczają; są wymienione w DO-178B.

  • Zakłada się, że systemy klasy A są „bezawaryjne”; są wyjątkowo dobrze przetestowane. Systemy te nie są przeznaczone do ponownego uruchamiania i zazwyczaj nie wyłączają się ani nie wykonują żadnych innych dodatkowych czynności w przypadku wystąpienia błędu. (np. kiedy sterownik silnika straci połączenie z kabiną załogi, pozostanie w swoim ostatnim ustawieniu silnika). Systemy klasy A są opracowywane w warunkach intensywnego testowania i szczegółowej analizy.
  • ...
  • dla systemu (klasy D), który testowałem, główna logika brzmiała „jeśli tam jest błędem, wyślij komunikat o błędzie, a następnie wyjdź z sieci, zatrzymaj się i poczekaj na reset z kokpitu. Nawet testy systemu klasy D obejmują procedury testowe, które nie są często używane (np. testy białej skrzynki z emulatorami sprzętowymi). to nadal najlepiej przetestowane oprogramowanie, jakie widziałem w życiu.

Logika jest taka, że ​​nieistotna awaria systemu nigdy nie będzie przeszkadzała w ważnej funkcji systemu (pilot może wybrać, kiedy odpocząć Większość systemów w samolocie jest podwójnie nadmiarowa. Zastosowane mikrokontrolery i architektura sprzętowa są zaprojektowane w taki sposób, że proste awarie na pokładzie będą miały ograniczony wpływ. Sieć główna (np. AFDX) jest również nadmiarowa, a środki są biorąc pod uwagę interfejs, że dzikie oprogramowanie nie wykracza poza swoje ograniczenia przy korzystaniu z szyn.

Normalny reset procedury są bezpieczne pod względem opuszczania samolotu zawsze w stanie nadającym się do kontroli. Przykładem błędnej procedury resetowania - wyłączanie obu komputerów sterujących lotem, co jest niedozwolone podczas lotu, ponieważ pilot nie był zadowolony z wyników standardowego resetowania komputerów - był Air Asia Flight 8501.

CodeCaster
2020-01-03 18:11:38 UTC
view on stackexchange narkive permalink

Czasami komputer lub smartfon ulega awarii i sam się restartuje

Może się to zdarzyć z dwóch powodów: błędu oprogramowania lub błędu sprzętu. Oba mogą spowodować, że procesor przestanie przetwarzać nowe instrukcje ( tj. „Zawiesić się”) lub spowodować ponowne uruchomienie komputera. Ten ostatni jest bliski zawieszenia, ponieważ system operacyjny wykrywa, że ​​nie może kontynuować normalnej pracy i uruchamia restart sprzętu.

Możliwe przyczyny są nieograniczone, ale skutki sprowadzają się do tego samego: procesor nie może wykonywać żadnych nowych operacji i dlatego nie może kontynuować normalnej pracy. Jest to nieoptymalne, jeśli ludzkie życie zależy od jego ciągłego funkcjonowania.

Błędy sprzętu mogą być spowodowane obniżoną funkcjonalnością, uszkodzeniem lub zużyciem. Na przykład zasilacz, który nie może dostarczać wymaganej mocy przez cały czas lub moduł pamięci, który jest uszkodzony przez wyładowanie elektrostatyczne, powodując „odwrócenie” losowych bitów (1 przypadkowo odczytany jako 0 lub vice versa).

Błędy oprogramowania są spowodowane błędami programisty lub błędami instalacji. Czysta instalacja systemu operacyjnego (Windows, Linux, MacOS, ...) na komputerze lub smartfonie, posiadająca dobrze działający sprzęt, biorąc pod uwagę, że sprzęt jest obsługiwany przez system operacyjny i zainstalowane są odpowiednie sterowniki, aby system operacyjny mógł prawidłowo komunikować się z sprzęt nie ulegnie awarii . Jasne, dziesiątki lat temu niektóre systemy operacyjne były podatne na awarie po pewnym czasie działania, ale teraz jest rok 2020. Wszystkie te problemy zostały usunięte z nowoczesnych systemów operacyjnych.

Problem ze sprzętem i oprogramowaniem klasy konsumenckiej polega na tym, że nie są one krytyczne dla życia, nie są nadmiarowe, a ludzie chcą mieć możliwość instalowania losowych aplikacji na swoich urządzeniach, dystrybuowanych przez przypadkowych programistów. Nie zobaczysz pilota otwierającego App Store w Twoim Airbusie w locie i instalującego nową aplikację Christmas Lights, aby światła w kabinie migały w sposób świąteczny, co po prostu zatrzymało pompy paliwa, ponieważ deweloper nigdy nie testował tego w locie.

Jak więc producenci samolotów mogą temu zapobiec:

  • Redundancja: kiedy jeden system się zatrzymuje (lub jego wyjścia znajdują się poza prawidłowymi wartościami), istnieje system rezerwowy do przejęcia.
  • Specyfika: w przeciwieństwie do komputerów ogólnego przeznaczenia, urządzenia w samolocie mają bardzo konkretny cel i są budowane, instalowane, konfigurowane i testowane pod kątem tego celu.
  • Testowanie: Ty może przynieść komputer lub telefon do sklepu w celu konserwacji, gdy zacznie działać nieprawidłowo. To może być za późno dla tego sprzętu, ale zwykle będą w stanie odzyskać twoje zdjęcia. Kup nowy sprzęt i / lub zainstaluj ponownie system operacyjny i gotowe. Samoloty są sprawdzane częściej.
Uwielbiam czytać tę wymianę stosów, ale niewiele wiem o samolotach. Wiem jednak co nieco o komputerach, więc mam nadzieję, że ta odpowiedź będzie przydatna i na temat.
Nowoczesne systemy operacyjne, takie jak Windows, nie są używane w komputerach pokładowych. Może być używany Linux *, ale myślę, że jest to rzadkie (ze względu na modyfikacje potrzebne do spełnienia standardów awioniki). Częściej byłyby to LynxOS lub VxWorks, które są wysoce wyspecjalizowanymi systemami zaprojektowanymi do pracy z awioniką o wysokiej niezawodności i innymi systemami przemysłowymi i nie są tradycyjnym systemem operacyjnym, jak można by pomyśleć o systemie Windows lub Linux.
@Ron to absolutnie nie to, co chciałem zasugerować, przepraszam, jeśli tak! „Ponowne uruchamianie kontroli silnika dla usługi Windows Update ...”
@RonBeyer - oprócz certyfikatu VxWorks, integralność Greenhills jest również wykorzystywana w aplikacjach awioniki krytycznych dla bezpieczeństwa. vxWorks jest również * bardzo * popularny w awionice w zastosowaniach o znaczeniu krytycznym.
Pulpit ma tendencję do zawieszania się po awarii, więc użytkownik / programista może to zobaczyć i być może uzyskać informacje o tym, dlaczego się zawiesił. (A przynajmniej fakt, że się rozbił). Kiedy masz inne wymagania, które mają priorytet (zachowują działanie), jak wiele systemów wbudowanych, dołączasz zegar nadzorujący, który ponownie uruchamia system, jeśli system operacyjny nie zgłasza go co milisekundę lub cokolwiek innego. Uruchomienie systemów wbudowanych zazwyczaj nie trwa długo. Klasycznym przykładem czegoś podobnego jest [Czy błąd 1202 i związane z nim ponowne uruchomienie zapobiegły katastrofie podczas lądowania Apollo 11?] (// space.stackexchange.com/q/37549)
forest
2020-01-04 14:13:18 UTC
view on stackexchange narkive permalink

Jeśli chodzi o cykliczne włączanie zasilania szczególnie (w przeciwieństwie do generalnie awarii oprogramowania, które inne odpowiedzi są bardzo dobrze opisane), nie stanowi to żadnego problemu. W przeciwieństwie do typowego komputera lub smartfona, których ponowne włączenie wymaga czasu i może utracić dane w przypadku utraty zasilania, systemy sterowania w samolocie są zwykle zaprojektowane w taki sposób, że wznowią pełne działanie po przywróceniu zasilania.

Pomyśl o tym bardziej jak o monitorze temperatury wewnętrznej lodówki niż o komputerze osobistym. Jeśli włączysz go i wyłączysz, natychmiast zacznie znowu działać, jakby nic się nie stało.

W szczególności, oprócz autopilota i systemu nawigacji, prawie żaden z systemów nie jest w rzeczywistości zależny od jakiejkolwiek formy pamięci, nawet pamięci RAM. Zajmują się danymi z czujników w czasie rzeczywistym. Jeśli się zresetują, żadne dane nie zostaną utracone, ponieważ i tak pracują tylko z danymi przechwytywanymi w czasie rzeczywistym. A źle zachowujący się autopilot lub NAV nie powoduje upadku samolotu z nieba, oznacza po prostu, że odpowiedzialność za to, dokąd się wybierasz i gdzie teraz jesteś, przenosi się z komputera na pilota.
@JörgWMittag Cóż, ściśle mówiąc, wszyscy mają pamięć RAM, nawet jeśli ma ona tylko kilka kilobajtów. Chociaż można uruchomić program bez pamięci RAM, jest on zbyt ograniczony nawet do tych celów. Wykonywanie obliczeń na danych z czujników w czasie rzeczywistym, a nawet nietrywialnych obliczeń arytmetycznych, wymaga czegoś więcej niż tylko kilku rejestrów ogólnego przeznaczenia.
Eugene Styer
2020-01-03 20:37:36 UTC
view on stackexchange narkive permalink

Czasami ponowne uruchomienie jest akceptowalne, jeśli można szybko uruchomić komputer ponownie bez utraty ważnych informacji. Miało to miejsce podczas lądowania Apollo 11, kiedy mieli 1202 alarm:

Zdał sobie sprawę, że 1202 był kodem, co oznacza, że ​​komputer naprowadzający na pokładzie statek desantowy był przeciążony zadaniami. Programiści przewidzieli, że pewnego dnia może dojść do tego przeciążenia, dlatego ustalili wewnętrzny aspekt systemu, który automatycznie wykonywałby szybki restart, a następnie przywracanie pamięci w celu przywrócenia pracy komputera.

ale z pewnością nie miałoby to w ogóle zastosowania do przelotu przez kontrolki Ethernet, które obsługują rzeczywiste powierzchnie kontrolne, z pewnością?
W przypadku wykrycia błędu w wielu przypadkach lepiej jest, aby system był tymczasowo nieaktywny podczas ponownego uruchamiania, zamiast utknąć w stanie błędu.
@Fattie na pewno tak. Lepiej nie robić nic przez chwilę, a potem zrobić właściwą rzecz, niż natychmiast zrobić coś złego.
Wydaje się to bardziej komentarzem, ponieważ tak naprawdę nie ma porównania między starożytnym komputerem z pamięcią rdzeni magnetycznych i pamięcią linową oraz wyjątkowo ograniczonymi wymaganiami obliczeniowymi, a złożoną nowoczesną maszyną z setkami mikroprocesorów z niewiarygodnie złożonymi ISA i milionami linii kodu napisanych w wiele języków programowania.
@forest: Nowoczesne systemy wbudowane nadal mają zegar watchdog, który uruchomiłby się ponownie, gdyby system został zablokowany, zamiast po prostu siedzieć tam jak pulpit, aby użytkownik mógł zapisać kod błędu (lub zauważyć, że w pierwszej kolejności się zawiesił). Ale tak, cytat w tej odpowiedzi sprawia, że ​​brzmi to jak prymitywny schemat zbierania śmieci. Jednak Apollo 11 AGC * miał * zegar kontrolny (nazywali go „Nightwatchman”: P i był jedną z kilku rzeczy, które mogły wywołać ponowne uruchomienie: [W jaki sposób komputer naprowadzający Apollo radził sobie z błędami parzystości?] (//space.stackexchange.com/q/35934))


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...