Кибернетики из университета Карнеги-Меллон в Пенсильвании создали новый язык программирования. С его помощью можно будет написать программы для систем, которые всегда готовы к постоянным и неожиданным перебоям с электроэнергией.
Компьютеры будущего не будут бояться отключения электроэнергии

Язык Chain разработали создатели компьютеров, которые нельзя включить в сеть электропитания. Эти устройства получают энергию непосредственно из окружающей среды. Разработчики считают, что за такими устройствами будущее, но пользователям придется учитывать специфику энергии окружающей среды: она не всегда доступна. Поэтому системам без штепселя нужно научиться легко переносить внезапные перебои с питанием. О таких же компьютерах мечтают создатели космических аппаратов, которые зависят от не всегда доступной энергии Солнца.

Все существовавшие до Chain языки программирования не учитывали возможность прекращения подачи питания на ЭВМ. Некоторые программы и операционные системы рассчитаны на перебои с электроэнергией, но все они работают по одному принципу — сохраняя сами себя через определенные промежутки времени. Среди таких ОС — российская разработка «Фантом», американские IBM и EROS. Но такие системы сами по себе очень энергоемкие. Периодические бэкапы — не выход для космического зонда, которому нужно дотянуть до следующего поворота солнечными панелями к Солнцу.

Фото Написанные на Chain программы обезопасят космические аппараты от потери данных, когда солнечные панели надолго окажутся в тени.

Язык программирования Chain имеет два механизма сохранения данных. Во‑первых, все процессы в нем делятся на небольшие задачи, и статус каждой задачи (завершена или нет) сохраняется. Также сохраняются результаты выполненных задач (например, результаты вычислений и логических операций). Каждая задача сохраняет свой статус и результат и передает их следующей задаче. Та проверяет статус и, если предыдущая задача была завершена, то ее данные используются для решения новой.

Если происходит сбой питания, при восстановлении программа возобновляет работу с последней задачи, которая проверяет статус предыдущей перед тем, как приступить к работе. Разработчики утверждают, что такой метод позволяет экономить электроэнергию и вычислительные мощности и в то же время не бояться перепадов напряжения