ESA (Европейската космическа агенция) изстреля Solar Orbiter към едно от най-неприятните места в галактиката – Слънцето. По време на мисията летателния апарат ще е на 10 милиона километра по-близо до него, отколкото е най-близката планета (Меркурий). Имайте предвид, че температурата на нея достига до 450 градуса по Целзий. Тогава как точно ще се справи Solar Orbiter с дори по-високи от тези?
Той разполага със специално разработен щит. Проблемът е, че той го пази само когато е насочен право срещу звездата, но няма никаква защита отстрани и отзад. Точно затова от ESA са разработили real-time operating system (RTOS), която работи с голяма прецизност. Максималното позволено отклонение от оста спрямо Слънцето е само 6.5 градуса, а всяко над 2.3 градуса, е приемливо само за много кратко време. Ако нещо се обърка, Solar Orbiter ще има само 50 секунди да реагира. Казано направо: тази операционна система, намираща се на милиони километри от Земята, трябва да бъде рестартирана дистанционно за 50 секунди или апарата буквално ще се изпържи.
За да може да бъдат спазени тези условия, машини като Solar Orbiter работят с операционни системи, които са коренно различни в начина си на действие от тези, които познаваме от смартфоните и компютрите ни. Критериите, по които съдим Windows или macOS, са прости. Най-просто казано, задаваме задача, при което те правят изчисления и ако са верни, тогава тя е успешна.
При операционните системи в Космоса има още едно ключово условие – тези изчисления ТРЯБВА да бъдат направени за определено време. Ако не успеят, то тогава задачата не е успешно изпълнена и бива терминирана. А в случая на космическите апарати това значи, че вече са се отклонили от траекторията си или вече са се превърнали в огнено кълбо. Няма смисъл заданието да бъде пробвано отново. Вече е твърде късно.
Всяка задача отнема точно определено време да бъде изпълнена. Може да отнеме три секунди да бъдат изпратени данни до Земята, четири, за да се задействат двигателите, и така нататък. Нито милисекунда повече или по-малко. Всяка отделна задача си има време за изпълнение и приоритет. По-наложителните са с предимство. По този начин софтуерните дизайнери знаят точно коя задача да бъде изпълнена в дадена ситуация и колко време ще отнеме.
Ако вземем най-новите модели на iPhone и Samsung и направим тест за бързина помежду им (всички сме гледали такива в YouTube), резултатите може да са различни всеки път. Никой не може да каже с точност за колко време ще се рестартират устройствата и дали следващият път ще отнеме същият интервал. Има прекалено много фактори. Зависи от каква изходна позиция ги рестартираме, колко от RAM паметта е била заета в този момент (защото кешът трябва да се изчисти), а и от самите оптимизации на системата, които са специфични за всяко от двете устройства.
Това е, защото Android и iOS не са детерминиращи операционни системи. Ако бяха (като тази, за която си говорихме по-горе), софтуерен инженер щеше да може във всеки един момент да влезе в кода им и да види какво следва и в каква последователност. Така вече може да се изчисли точното време за изпълнение на дадена задача. Космическият софтуер трябва да бъде предсказуем, за да се справя с крайните срокове.
Снимки: ESA
Вижте още: Mестата в Слънчевата система, които вероятно притежават условия за живот