Американские ученые разработали язык программирования для написания программ, которые могут продолжать работу после отключения компьютера от питания. Об этом сообщается на сайте Университета Карнеги-Меллон.
Существующие сейчас языки программирования не учитывают возможности отключения компьютера от питания и не способны обеспечить сохранение промежуточных операций. Программы и операционные системы, которые предполагают такую возможность (например, российская «Фантом»), работают по принципу контрольных точек. Они сохраняют результаты работы через заданные промежутки времени. На восстановление такие программы расходуют большое количество вычислительной мощности. Кроме того, они не распространяются среди пользователей.
В новой работе ученые представили язык программирования Chain, который позволяет писать более совершенные программы такого типа. Они не предполагают наличия контрольных точек, поскольку процесс в этом случае делится на информацию о состоянии (завершена или нет) и о результатах промежуточной задачи.
При стабильной подаче питания программа, написанная с помощью Chain, будет исполняться последовательно. По завершении вычисления задача сохранит статус и результат, после чего передаст их другой задаче. Последняя проверяет данные на предмет окончательности и при положительном результате использует их. Таким образом по цепочке данные передаются до полного исполнения программы.
В случае сбоя исполнение программы возобновляется с задачи, на которой произошло отключение от питания. При этом перезапускаемый процесс также сперва проверяет результаты предыдущих вычислений и после этого переходит к собственным. По мнению разработчиков, такой подход позволяет экономить на потреблении электроэнергии и расходах вычислительных мощностей.