Программное обеспечение MarkIV Field System
В настоящее время для организации всех РСДБ наблюдений, проводимых по геодезическим программам IVS, а также многих астрофизических наблюдений, используется программное обеспечение MarkIV Field System (FS). ПО FS стало фактическим международным стандартом для РСДБ, им оснащены большинство радиотелескопов в разных странах мира, регулярно участвующих в РСДБ наблюдениях.
Процесс подготовки и проведения наблюдений с использованием FS в значительной степени автоматизирован и осуществляется следующим образом. Для планирования РСДБ экспериментов используются специальные программные пакеты: NASA SKED, предназначенный преимущественно для геодезических экспериментов, и NRAO SCHED, используемый для планирования астрофизических экспериментов. С помощью этих пакетов подготавливается файл расписания РСДБ сеанса, который рассылается по всем пунктам, участвующим в эксперименте. В настоящее время используются файлы расписаний двух форматов: SKD и VEX (VLBI Experiment). Файл расписания содержит всю необходимую информацию о РСДБ эксперименте для всех участвующих в нем радиотелескопов: список наблюдаемых источников и их координаты, времена наблюдения источников для каждого пункта, требуемые параметры системы радиоинтерферометрической регистрации и т.д.
На каждом наблюдательном пункте сети файл расписания эксперимента предварительно обрабатывается программой drudg, входящей в состав FS, которая выделяет информацию, относящуюся к данному пункту, и формирует подробную развернутую программу эксперимента на языке SNAP (Standard Notation for Astronomy Procedures - стандартная запись астрономических процедур). Эта программа содержит последовательность элементарных команд, выполняемых FS в процессе наблюдения. Интерпретатор языка SNAP является центральным элементом FS.
При выполнении программы устанавливаются требуемые режимы работы приемной аппаратуры и систем регистрации, в заданные моменты времени производится наведение антенны на наблюдаемые источники, включается и выключается запись данных на носители информации (магнитные ленты или диски).
В ходе эксперимента FS формирует LOG файл, содержащий детальную информацию о процессе наблюдения. В этот файл записываются выполняемые команды SNAP, сообщения о результатах их выполнения, сообщения об ошибках, различная дополнительная информация, которая используется при корреляционной обработке. LOG файл и магнитные ленты пересылаются в центр обработки.
Разработка программного обеспечения FS была начата в NASA в 1979 году и продолжается по настоящее время. За это время FS превратилась из программы для геодезических наблюдений с системой регистрации MarkIII в универсальный пакет управления процессом подготовки и проведения радиоинтерферометрических наблюдений с использованием различных систем регистрации, а также для радиоастрономической юстировки и исследования параметров радиотелескопов. Список поддерживаемых в настоящее время систем регистрации включает MarkIII, MarkIV, Mark5, VLBA, VLBA4, S2-RT и S2-DAS, K4.
Первые версии FS разрабатывались на компьютерах HP-1000 под управлением операционной системы HP-RTE. Версия 8, созданная 1992 году, работала в среде VENIX (один из вариантов UNIX для PC). В 1994 году совместно с EVN была осуществлена разработка FS версии 9 для операционной системы Linux, которая используется сейчас и является основой для дальнейшей модификации.
Программы, появившиеся в составе FS на ранних стадиях разработки, написаны на языке Фортран. Их доработка продолжается на этом языке. Более поздние компоненты написаны на языке Си. Отдельные программы разработаны на языках Tcl/Tk, Perl и UNIX shell. Интерфейс пользователя реализован в графической среде XWindow. Общий объем исходных текстов программ FS составляет около 180000 строк, в том числе около 90000 строк на Фортране и 60000 - на Си.
Координатором всей разработки MarkIV Field System и автором большинства программ является Эд Химвич (Ed Himwich), Годдардский Центр Космических Полетов НАСА.
Язык SNAP
Управляющие команды для FS записываются на языке SNAP. Существует около ста стандартных команд, с помощью которых задаются отдельные действия, выполняемые FS:
- управление процессом работы FS в целом;
- управление наведением антенны;
- управление системами регистрации, приемниками и другой аппаратурой радиотелескопа;
- запрос и индикация состояния программ FS и аппаратуры радиотелескопа.
Сообщения о выполнении команд выводятся на дисплей компьютера и одновременно записываются в LOG файл.
Команды языка SNAP являются "командами быстрого исполнения" ("quick response commands"), т.е. завершение команды, требующей длительного времени выполнения, например, перехода к сопровождению нового источника, на самом деле означает только начало этого процесса.
FS может выполнять отдельные команды языка SNAP, вводимые вручную оператором, или работать по программе, составленной на этом языке.
Язык SNAP не является языком программирования в обычном понимании, т.к. не содержит ни переменных, ни операторов для проверки условий, ни средств для организации циклов. Программа наблюдения, сформированная на этом языке, представляет собой расписание, рассчитанное заранее при планировании эксперимента, которое предполагает только последовательное выполнение. Время начала выполнения команд в программе на языке SNAP задается специальными командами контроля времени. Программы радиоинтерферометрических наблюдений обычно не составляются вручную на языке SNAP, они формируются автоматически программой drudg из исходного файла расписания РСДБ сеанса.
Отдельные команды можно помещать в список команд для периодического исполнения. Команды из этого списка автоматически повторяются с заданным интервалом времени.
Для управления специфическим оборудованием конкретного радиотелескопа можно разрабатывать нестандартные команды SNAP или переопределять стандартные команды.
Команды SNAP можно объединять в процедуры. Это позволяет выполнять часто используемые последовательности команд, просто указав имя процедуры. Процедуры содержатся в файлах библиотек процедур, которые можно создавать и редактировать с помощью специальной программы pfmed. В FS предусмотрен большой набор стандартных процедур для наблюдений, калибровок, тестовых проверок, исследований параметров радиотелескопов и т.д.
Структура ПО Field System
Программы, входящие в состав FS, можно разделить на две части: интерпретатор языка SNAP и отдельные программы-утилиты.
Центральной частью FS является интерпретатор языка SNAP. Он состоит из программных модулей, каждый из которых работает как отдельный процесс в среде UNIX. Все модули запускаются одновременно с помощью специальной программы-загрузчика. В процессе работы модули взаимодействуют между собой, образуют единую программную систему и не могут функционировать отдельно от среды интерпретатора SNAP. Взаимодействие модулей производится путем передачи сообщений-запросов от одного модуля другому, причем источник запроса может ждать ответ на посланный запрос или продолжить работу, если ожидание ответа не требуется. Совместно используемые данные размещаются в общей области памяти, к которой имеют доступ все модули интерпретатора. Для синхронизации действий, выполняемых параллельно разными модулями, используется система семафоров.
В отличие от модулей интерпретатора SNAP, программы-утилиты FS запускаются как обычные программы. Некоторые утилиты взаимодействуют с интерпретатором и могут использоваться только во время его работы.
Возможности расширения Field System
Программное обеспечение FS устанавливается на радиотелескопах, которые имеют различные системы управления и могут оснащаться различным оборудованием. В отличие от систем радиоинтерферометрической регистрации, для работы с которыми FS предоставляет готовые к использованию программные средства, полностью готовой системы управления какой-либо конкретной антенной в FS нет. Поэтому для обеспечения работы FS на конкретном радиотелескопе требуется разработка дополнительного программного обеспечения для управления антенной и специфическим для данного радиотелескопа оборудованием. Это программное обеспечение предназначено для реализации стандартных возможностей FS, таких как функции управления антенной, через взаимодействие с нестандартными (с точки зрения FS) системами, а также для реализации дополнительных функций.
Для решения этих задач в FS предусмотрены следующие возможности:
- включение дополнительных программных модулей в структуру интерпретатора SNAP;
- разработка нестандартных команд языка SNAP и переопределение стандартных команд;
- дополнительная общая область памяти для совместно используемых данных;
- изменение стандартных процедур;
- разработка дополнительных процедур и программ-утилит.
Значительная часть настроек FS на радиотелескопе производится через изменение стандартных процедур SNAP. Эти процедуры имеют определенные имена и вызываются из программ FS для выполнения многих стандартных действий, при этом содержание этих процедур на разных радиотелескопах может отличаться.