Открыть сервис

Cray Operating System

Cray Operating System (COS) — это операционная система, разработанная компанией Cray Research для суперкомпьютеров серий Cray-1, Cray X-MP и Cray-2. COS представляла собой специализированную операционную систему реального времени, ориентированную на максимальную производительность при выполнении векторных и параллельных вычислений, и была одной из первых коммерческих ОС для суперкомпьютеров.

История

Разработка COS началась в середине 1970-х годов, параллельно с созданием первого суперкомпьютера Cray-1. Основной задачей было создание операционной системы, способной эффективно управлять ресурсами векторного процессора, памятью и подсистемой ввода-вывода, не снижая пиковой производительности машины. Первая версия COS была выпущена в 1976 году вместе с Cray-1.

Изначально COS базировалась на операционной системе SCOPE (Supervisory Control of Program Execution), разработанной в Control Data Corporation (CDC) для компьютеров CDC 6600 и CDC 7600. Однако Cray Research значительно переработала её, адаптировав к архитектуре Cray-1 и добавив поддержку векторных вычислений, многозадачности и нового файлового менеджмента.

В 1980-х годах, с появлением Cray X-MP (1982) и Cray-2 (1985), COS была существенно расширена. Она получила поддержку многопроцессорных конфигураций (до 4 процессоров в X-MP и до 8 в Cray-2), а также улучшенные средства управления памятью и вводом-выводом. В 1986 году Cray Research представила UNICOS, операционную систему на базе UNIX System V, которая постепенно вытеснила COS. Последняя версия COS, 1.17, была выпущена в 1989 году. К началу 1990-х годов большинство пользователей Cray перешли на UNICOS, и COS была снята с поддержки.

Архитектура и особенности

COS была разработана как операционная система реального времени с монолитным ядром. Её архитектура была ориентирована на минимизацию накладных расходов и максимальную пропускную способность при выполнении пакетных заданий.

Управление процессами

COS использовала модель пакетной обработки (batch processing). Пользователь не имел прямого интерактивного доступа к системе; задания (jobs) отправлялись через входной поток (input stream) и выполнялись в порядке очереди. Система поддерживала многозадачность, позволяя одновременно выполнять несколько заданий, но с приоритетом для векторных вычислений.

Управление памятью

COS работала с физической памятью напрямую, без использования виртуальной памяти. Это было сделано для устранения задержек, связанных с трансляцией адресов. Память делилась на сегменты, которые могли быть выделены процессам. Для Cray-2, оснащённого 512 мегабайтами динамической памяти, COS поддерживала механизм «свопинга» (swapping) — выгрузки неактивных процессов на диск для освобождения памяти.

Ввод-вывод

Подсистема ввода-вывода COS была спроектирована для работы с высокоскоростными дисковыми массивами (DD-60, DD-61) и ленточными накопителями. Она поддерживала асинхронный ввод-вывод, что позволяло процессам продолжать вычисления, пока данные считывались или записывались. Файловая система COS была иерархической, но с ограниченной глубиной вложенности.

Планировщик

Планировщик COS был основан на приоритетах и использовал алгоритм «вытесняющей многозадачности» (preemptive multitasking) для процессов реального времени. Для пользовательских заданий применялся алгоритм «карусель» (round-robin) с квантами времени, адаптируемыми под нагрузку.

Командный интерфейс

COS имела собственный командный язык (CLI), который был унаследован от SCOPE и CDC. Команды вводились в виде карт (cards) в пакетном режиме. Основные команды включали:

  • JOB — определение задания;
  • USER — указание идентификатора пользователя;
  • ACCOUNT — указание счётчика для учёта ресурсов;
  • LOAD — загрузка исполняемого модуля;
  • EXECUTE — запуск задания;
  • ENDJOB — завершение задания.

Позднее, в версиях для Cray X-MP и Cray-2, был добавлен ограниченный интерактивный режим через терминалы, но он не был основным.

Применение

COS использовалась в основном для научных и инженерных расчётов, требующих высокой производительности:

  • Моделирование климата и погоды (например, в Национальном центре атмосферных исследований США).
  • Аэродинамические расчётыNASA и Boeing).
  • Ядерная физика (в Ливерморской национальной лаборатории).
  • Нефтегазовая разведка (обработка сейсмических данных).

COS позволяла запускать программы, написанные на Fortran (основной язык для суперкомпьютеров того времени), с минимальными накладными расходами.

Критика и ограничения

Несмотря на высокую производительность, COS имела ряд недостатков:

  • Отсутствие виртуальной памяти — это ограничивало размер выполняемых программ и требовало ручного управления памятью.
  • Пакетный режим — отсутствие полноценного интерактивного доступа затрудняло отладку и разработку.
  • Сложность администрирования — система требовала высокой квалификации операторов.
  • Закрытость — COS была проприетарной и несовместимой с другими операционными системами, что затрудняло перенос программ.

Наследие

COS оказала значительное влияние на развитие операционных систем для суперкомпьютеров. Её подход к минимизации накладных расходов и ориентации на пакетную обработку был позже заимствован в UNICOS и других ОС для высокопроизводительных вычислений. Многие концепции COS, такие как асинхронный ввод-вывод и приоритетное планирование, стали стандартом для систем реального времени.

Источники

  • Cray Research, Inc. «Cray Operating System (COS) Reference Manual» (1985).
  • Cray Research, Inc. «Cray-1 Computer System: Hardware Reference Manual» (1976).
  • Cray Research, Inc. «Cray X-MP: System Overview» (1982).
  • Cray Research, Inc. «Cray-2: System Description» (1985).
  • Cray Research, Inc. «UNICOS: A UNIX-Based Operating System for Cray Supercomputers» (1986).
  • Cray Research, Inc. «Cray Operating System (COS) Version 1.17 Release Notes» (1989).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →