Утилита Sort/Merge — это мэйнфреймовая программа для сортировки записей в файле в указанном порядке, объединения предварительно отсортированных файлов в отсортированный файл или копирования выбранных записей. Внутри эти утилиты используют один или несколько стандартных алгоритмов сортировки , часто с фирменным тонко настроенным кодом.
Первоначально мэйнфреймы поставлялись с ограниченной оперативной памятью по сегодняшним меркам, а объем сортируемых данных часто был очень большим. Из-за этого, в отличие от более поздних программ сортировки, ранние программы сортировки/слияния уделяли большое внимание эффективным методам сортировки данных на вторичном хранилище , обычно на ленте [a] или диске . В 1968 году программа сортировки/слияния OS/360 предоставляла пять различных «методов распределения последовательностей», которые можно было использовать в зависимости от количества и типа доступных устройств. [1]
Исторически «псевдоним» SORT использовался для обозначения предпочитаемой программой сортировки установки, IBM Sort/Merge, и сторонних программ сортировки/слияния (например, SYNCSORT, CASORT). DFSORT часто называют по ее имени программы, ICEMAN (компонент ICE; оригинальное имя программы сортировки/слияния OS/360 было IERRCO00, компонент IER, также с «псевдонимом» SORT).
До System/370 все операционные системы для мэйнфреймов IBM включали утилиты сортировки/слияния. [b] С объявлением о выпуске операционных систем виртуального хранения DOS/VS и OS/VS IBM разделила большую часть программного обеспечения и предложила платные программные продукты сортировки/слияния. Для OS/VS IBM предложила 5734-SM1, OS Sort/Merge, а позже предложила 5740-SM1, OS/VS Sort/Merge, впоследствии переименованную в Data Facility Sort (DFSORT).
В 1990 году IBM представила новый алгоритм слияния под названием BLOCKSET в DFSORT, преемнике OS/360 Sort/Merge. [2] Исторически важно отметить, что алгоритм BLOCKSET был изобретен системным инженером IBM в 1963 году и был обнаружен в архивах IBM и реализован в 1990 году. [3]
Сортировка/слияние используется очень часто; зачастую это наиболее часто используемая прикладная программа в цехе с мэйнфреймами, обычно потребляющая около двадцати процентов вычислительной мощности цеха.
Современные программы сортировки/слияния также могут копировать файлы, выбирать или пропускать определенные записи, суммировать записи, удалять дубликаты, переформатировать записи, добавлять новые данные и создавать отчеты. Действительно, большинство приложений сортировки/слияния используют широкий спектр дополнительных возможностей обработки, а не просто сортируют или объединяют записи: продукт сортировки/слияния является очень быстрым способом выполнения ввода и вывода из этих функций. Поддерживается довольно много «пользовательских выходов», и это могут быть загрузочные модули (т. е. член библиотеки) или объектные колоды (т. е. вывод ассемблера), с загрузкой приложения сортировки/слияния (загрузочные модули) или связыванием (объектные колоды; называемые «динамическим редактированием ссылок» в DFSORT) выходом, как указано и требуется. Рабочие наборы данных хранения (т. е. SORTWK01, ..., SORTWKnn) могут быть дисковыми или ленточными, хотя алгоритм BLOCKSET ограничен дисковым рабочим хранилищем; большее количество рабочих наборов данных хранения, как правило, повышает производительность.
Сортировка/слияние настолько важны, что есть несколько компаний, каждая из которых продает свой собственный пакет сортировки/слияния для мэйнфреймов IBM и их операционных систем z/OS , z/VM и z/VSE . Эти программы в значительной степени совместимы с программами SORT IBM, часто с некоторыми расширениями. Основные пакеты сортировки/слияния:
(Некоторые из этих компаний также продают версии для других платформ, таких как Unix , Linux или Windows .)
Сортировка/слияние является критически важным компонентом многих сред мэйнфреймов. При миграции с мэйнфрейма на другие платформы, такие как Unix , Linux или Windows , необходима утилита сортировки/слияния; [4] MFSORT от Micro Focus и AHLSORT [5] эмулируют функции DFSORT вне среды мэйнфрейма.
До появления операционных систем виртуального хранения «входной набор данных [был] почти всегда слишком большим, чтобы его можно было перенести в основное хранилище и отсортировать все сразу». SORT использовала технику выбора замены для сокращения использования хранилища. [1] Программа делала акцент на методах распределения последовательностей , которые могли быть установлены по умолчанию в зависимости от количества и типа доступных устройств или могли быть указаны пользователем для наилучшего использования файлов «сортировки» (SORTWK) вторичного хранилища. Эти методы были методами наиболее эффективного распределения частично отсортированных последовательностей записей.
Для OS/360 SORT было доступно пять методов распределения: [1]
Методы распределения, перечисленные для сортировки на ленте, были сохранены программой OS/VS SORT, теперь называемой «обычными методами». Методы сортировки на диске были заменены четырьмя новыми: [6]