Об использования операционной системы OS/2 Warp для решения задачи обработки информации, получаемой с метеорологических ИСЗ NOAA.


Felix Herbeck 2:5045/61

В этой статье речь пойдёт об одном из применений OS/2 Warp, в котором этой системе, по-видимому, на сегодняшний день не существует альтернативы на x86 платформе -- обработке спутниковых данных. Представляется, что результаты этого рассмотрения могут быть легко перенесены на многие задачи обработки больших объёмов данных сложной структуры, требующие визуализации значительных объёмов графической информации. Я постараюсь описать все критерии выбора OS/2 для решения подобных задач.

Сразу скажу, что здесь будут рассматриваться только коммерческие операционные системы. Было бы недальновидным доверять столь сложные и ответственные задачи системе неизвестного кустарного происхождения, разработанной без возможности использования технологий программирования, существующих на данный момент в мире. В кустарных условиях невозможно хорошо спроектировать систему, а с учетом географической разбросанности участников проекта, нельзя скоординировать их действия и провести тестирование как отдельных модулей, так и их взаимодействия. Кроме того, у руководства проекта нет реальных рычагов воздействия на участников, которые не получают денег за разработку.

Объём исходных данных, получаемых с метеорологических спутников NOAA за один сеанс, достаточно велик (около 40-90 Mb), и, кроме того, в процессе их обработки возникает большое количество промежуточных данных. Это приводит к тому, что для обработки в идеале требуются нереальные на сегодняшний день объёмы оперативной памяти (порядка 500Mb-1Gb в зависимости от сложности обработки), и недостаток памяти приходится компенсировать большими дисковыми перекачками. Уже этот факт говорит в пользу того, что здесь можно применить параллельную обработку (во время перекачки с диска процессор свободен). Раньше подобные проблемы решались введением в программу подкачки данных с диска, однако это является порочной практикой, т.к. при таком подходе сильно страдает масштабируемость программы, которая в настоящее время, в связи с быстрым увеличением объёмов памяти на компьютерах, является одним из самых важных качеств программного обеспечения. Альтернативой такому подходу может служить использование встроенных во все современные ОС возможностей организации виртуальной памяти. Все эти соображения приводят к требованию от ОС, под которой будет вестись обработка, наличия средств организации виртуальной памяти и высокой производительности файловой системы. Сюда также необходимо добавить требование надёжности файловой системы, т.к. исходные спутниковые данные невоспроизводимы в случае их утраты и достаточно дороги. Hа этом этапе мы можем увидеть, что для обработки спутниковых данных не подходят все системы, основанные на MS-DOS (собственно DOS и всевозможные Windows 9x), т.к. их файловая система FAT крайне неэффективна (думаю, никто не станет оспаривать этот факт) и ненадёжна. Все системные области этой файловой системы собраны в одном месте диска и могут быть легко уничтожены как со злым умыслом, так и в результате механического повреждения (в том числе и износа) диска или ошибок в программном обеспечении.

Кроме того, виртуальная память в DOS вообще отсутствует, а в Windows не эффективна уже исходя из того, что swap-файл лежит на FAT (кто-нибудь пытался класть swap файл-OS/2 на FAT?). Система Windows NT обладает феноменально ненадёжной файловой системой NTFS. Хотя эта файловая система по организации напоминает больше HPFS, чем FAT, но Microsoft сделал всё возможное и невозможное для того, чтобы пользователи этой ОС чувствовали себя в постоянном страхе за свои данные. Стоит вспомнить, что обычно случается с NTFS при внезапном отключении питания, и то, что при записи 1000000 файлов на логический диск NTFS будет безвозвратно повреждена (кажется, последнее исправлено в каком-то SP, но сколько там ещё подобных ошибок - никто сказать не может). В то же время OS/2 полностью соответствует этим требованиям. Файловая система HPFS (в особенности HPFS386) на сегодняшний день является самой эффективной файловой системой для платформы x86. В надёжности HPFS тоже не приходится сомневаться. Системные области HPFS равномерно распределены по диску, что сильно уменьшает вероятность их полного повреждения. Исключение составляет только карта свободного пространства, которая лежит в середине раздела, но в случае ее повреждения она с легкостью восстанавливается программой chkdsk.

Другое немаловажное требование -- гибкость системы обработки. Спутниковая информация представляет собой совокупность измерений исходящего излучения в различных каналах спектра, и в её формирование вносят вклад природные процессы и объекты как на поверхности Земли, так и в её атмосфере. Разделение её на составляющие -- задача крайне трудная и требующая серьезных вычислительных мощностей. Она осложняется ещё и тем, что состояние и динамика и поверхности, и атмосферы в различных географических регионах (даже соседствующих -- например, Японское и Охотское моря) также весьма различны и по-разному влияют друг на друга. Поэтому не только параметры, но и набор функций обработки спутниковых данных сильно меняется в зависимости от задач, объектов и условий наблюдений в регионе.

Из этого следует, что система обработки не может быть выполнена в виде одной большой программы, и должна состоять из большого числа отдельных процедур, взаимодействующих между собой посредством некоторого сервера обработки. Такой подход требует от операционной системы поддержки эффективных средств передачи данных между процессами. В качестве подобного средства хорошо подходит DSOM, но IBM последнее время пытается удушить эту технологию. Однако в OS/2 имеются и другие средства взаимодействия, такие как трубы и общие области памяти (shared memory). В своей разработке я использую именно эти средства: трубы -- для передачи небольших объемов информации, а shared memory -- для совместного использования исходных данных и промежуточных результатов обработки в различных процессах. Координирует это сервер обработки, который осуществляет все дисковые операции, требуемые при обработке. Такой подход позволяет минимизировать число дисковых операций при передаче данных между процессами (в идеале все идет через память, более того, физический перенос и дублирование данных в памяти не происходит).

Еще одно из важных требований к обработке спутниковых данных -- оперативность. Это свойство также в какой-то степени зависит от выбора операционной системы. Известно, что потребности в ресурсах Windows NT неоправданно высоки. Это свойство NT, с учётом того, что задача обработки спутниковых данных требует более серьёзных компьютеров, чем PC, оказывается катастрофичным. Суть задачи такова, что из компьютера должно быть выжато всё, на что он способен, с минимальными накладными расходами.

Учитывая то, что основными конечными результатами обработки спутниковых данных являются большие объёмы графической информации, а сам процесс обработки не может быть полностью автоматизирован (например, для многих задач требуется производить ручную коррекцию географической привязки изображения), операционная система должна предоставлять эффективные средства организации диалога и вывода графической информации. OS/2 полностью удовлетворяет этому требованию - в то время, как ни одна UNIX- система не предоставляет адекватных средств. Hи в одной UNIX- системе мной не было обнаружено ничего, хотя бы отдаленно напоминающего DIVE. Кроме того, в X Window используется TCP/IP для организации взаимодействия с X Server'ом внутри одной машины, что является неприемлемым для данной задачи из соображений эффективности. Кроме того, одновременная работа интерактивных и чисто счётных задач требует от системы очень хорошей многозадачности, а известно, что OS/2 по части многозадачности опережает все существующие системы для x86.

Поскольку спутниковые данные обладают большими размерами, целесообразно организовать их централизованное хранение на сервере и сделать их доступными по сети. В то же время необходимо защитить их от несанкционированного доступа и повреждения. Система OS/2 является идеальной системой для этого - ее LAN Server 5.0 является наиболее эффективным и защищенным сетевым сервером для x86. Кроме того, для OS/2 Warp существует и клиентское сетевое ПО.

Поскольку наш проект системы обработки достаточно сложен и ведётся сравнительно малыми силами, необходимо наличие под ОС, для которой ведется разработка, развитых средств объектно-ориентированного программирования (ООП). Объектно-ориентированная парадигма разработки ПО позволяет минимизировать усилия, затрачиваемые на разработку больших программных комплексов. Лучшими средствами ООП являются продукты семейства IBM VisualAge. Они существуют для OS/2, AIX и Windows NT. AIX для нас недоступен по причине недоступности RS/6000, а Windows NT мы отвергли по указанным выше причинам.

Таким образом, система OS/2 является оптимальной операционной системой (из существующих для x86) для построения под ней систем клиент/сервер, предназначенных для сложной с вычислительной стороны, частично интерактивной обработки больших массивов информации, результатом которой является графическая информация, поскольку:


Новые статьи на нашем сайте:


Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ