RAM na Marsie - wywiad z Mike'm Delimanem

Mike Deliman jest jednym z niewielu ludzi na świecie, który może pochwalić się tym, że stworzył system operacyjny, który świetnie sprawdził się w Kosmosie - to on, wraz z grupą współpracowników z firmy Wind River Systems, jest autorem systemu zastosowanego m.in. w sondzie Pathfinder oraz robotach eksplorujących powierzchnię Marsa - Spirit oraz Opportunity. Nasi koledzy z amerykańskiego oddziału PC Worlda mieli okazję z nim porozmawiać.

Mike Deliman

Mike Deliman

Rozmowa z Delimanem odbyła się w dwa dni po tym, jak robot Spirit wznowił swą misję po serii problemów technicznych (jak się później okazało, problem był jeden, z tym, że wystąpił wielokrotnie). Poniżej prezentujemy jej obszerne fragmenty.

PC World: Na czym polegał problem ze Spirit?

Deliman: Krótka, "grzeczna" wersja jest taka, że zabrakło pamięci RAM i system musiał "kolejkować" kolejne zadania, co z kolei sprawiało, że absorbował coraz więcej pamięci RAM... Tak powstał "efekt kaskady". Trzeba pamiętać, że zastosowany w Spirit system wykonuje setki działań jednocześnie - dlatego łatwo o wyczerpanie się zasobów pamięci RAM. W takiej sytuacji system zaczyna się resetować - z tego co wiem, Spirit wyłączał się i włączał ponad 60 razy, zanim zaczęły się wyczerpywać akumulatory.

Mówiło sie także, że to może być problem z pamięcią flash - skąd takie głosy?

Pamięc flash wykorzystywana jest przez Spirit do przechowywania wszystkich danych, zarówno plików systemowych, jak i fotografii, danych naukowych itp. Czasami system zapisuje części tych danych w pamięci RAM - a jako, że na pokładzie Spirit jest tylko 32 MB RAMu, to czasami różne procesy i aplikacje odwoływały się zbyt często tych samych obszarów RAMu - wtedy zdarzało się, że system szwankował.

Dlaczego więc nie zaopatrzono robota w więcej RAMu?

Trudno o komponenty, który bez problemów będą działały w przestrzeni kosmicznej - takie urządzenia są bardzo, bardzo, bardzo drogie. Dlatego też na pokładzie Spirit mieliśmy procesor taktowany zegarem 20 MHz i 32 MB pamięci RAM - a i tak taki zestaw (notabene, bardzo podobny do komputera IBM RS 6000 z 1990 r.) kosztował ponad 300 tys. USD.

Skoro teraz wiecie już, co spowodowało problem, czy uaktualniliście system operacyjny Spirit?

Zrobiliśmy co tylko było możliwe - usunęliśmy część starych i niepotrzebnych plików z pamięci flash, co sprawiło, że system przestał się ustawicznie resetować i nie "pożerał" już tak gwałtownie RAMu. Mówiąc w skrócie - określiliśmy (w przybliżeniu), ile operacji może być uruchomione jednocześnie - tak, by nie powodowało to żadnych problemów. Teraz pracuję nad zdefiniowaniem optymalnejliczby katalogów i plików, ich rozmiarów, a także liczby uruchomionych jednocześnie aplikacji - tak by ich działanie nie zakłócało pracy systemu.

Czym właściwie jest zastosowany w marsjańskich robotach "system operacyjny w czasie rzeczywistym"? Co odróżnia takie rozwiązanie od systemów stosowanych przez nas w "pecetach"?

W systemach stosowanych w komputerach PC mamy do czynienia z pewną grupą uruchomionych jednocześnie procesów, które mają restrykcyjnie przypisane obszary pamięci i nie powinny ze sobą interferować. W przypadku "systemu operacyjnego w czasie rzeczywistym" sprawa jest trudniejsza, bo nie wykorzystuje on twardego dysku (np. do buforowania danych) - tu wszystko odbywa się w pamięci RAM, bo tak jest po prostu szybciej. Problem polega na tym, że wszystkie polecenia muszą zostać wykonane natychmiast - bo nie ma dysku, na którym można by coś "odłożyć na później" (czyli zbuforować). Dlatego też system musi zostać zoptymalizowany tak, by zajmował jak najmniej pamięci - naszemu wystarczają zaledwie 4 MB. A poza tym - w Kosmosie nie ma żartów. Jeżeli zajdzie coś nieprzewidzianego, to system nie może się "zastanawiać" - potrzebna jest natychmiastowa reakcja.

Wygląda na to, że takie oprogramowania ma same zalety - dlaczego więc nie wykorzystujemy go w domowych komputerach?

To proste - nie ma szans, aby możliwe było "upchnięcie" np. systemu Windows i wszystkich aplikacji w pamięci RAM. Tu potrzebne jest wirtualna pamięć - czyli twardy dysk. A to znacząco zwalnia cały proces.

Więcej informacji:

http://www.pcworld.com/news/article/0,aid,114712,00.asp


Zobacz również