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 →