La utilidad Sort/Merge es un programa de mainframe que permite ordenar los registros de un archivo en un orden específico, combinar archivos previamente ordenados en un archivo ordenado o copiar registros seleccionados. Internamente, estas utilidades utilizan uno o más de los algoritmos de ordenamiento estándar , a menudo con código propietario optimizado.
En un principio, los mainframes se suministraban con una memoria principal limitada según los estándares actuales y la cantidad de datos que se debían ordenar era con frecuencia muy grande. Por este motivo, a diferencia de los programas de ordenación más recientes, los primeros programas de ordenación/combinación ponían gran énfasis en técnicas eficientes para ordenar datos en un almacenamiento secundario , normalmente cinta [a] o disco . En 1968, el programa de ordenación/combinación de OS/360 proporcionó cinco "técnicas de distribución de secuencias" diferentes que se podían utilizar según la cantidad y el tipo de dispositivos disponibles. [1]
Históricamente, el "alias" SORT se ha utilizado para referirse al programa de ordenación preferido de una instalación, Sort/Merge de IBM, y a programas Sort/Merge de terceros (es decir, SYNCSORT, CASORT). A menudo se hace referencia a DFSORT por su nombre de programa, ICEMAN (componente ICE; el nombre del programa Sort/Merge original de OS/360 era IERRCO00, componente IER, también con el "alias" SORT).
Antes del System/370 , todos los sistemas operativos de mainframe de IBM incluían utilidades de ordenación/combinación. [b] Con el anuncio de los sistemas operativos de almacenamiento virtual , DOS/VS y OS/VS , IBM desagregó gran parte del software y ofreció productos de programas de ordenación/combinación de pago. Para OS/VS, IBM ofreció 5734-SM1, OS Sort/Merge, y más tarde ofreció 5740-SM1, OS/VS Sort/Merge, posteriormente rebautizado como Data Facility Sort (DFSORT).
En 1990, IBM introdujo un nuevo algoritmo de fusión llamado BLOCKSET en DFSORT, el sucesor de OS/360 Sort/Merge. [2] Cabe destacar que el algoritmo BLOCKSET fue inventado por un ingeniero de sistemas de IBM en 1963 y fue descubierto en los archivos de IBM e implementado en 1990. [3]
Ordenar/Combinar se utiliza con mucha frecuencia; a menudo es el programa de aplicación más usado en una tienda mainframe y generalmente consume alrededor del veinte por ciento de la potencia de procesamiento de la tienda.
Los programas de ordenación/combinación modernos también pueden copiar archivos, seleccionar u omitir determinados registros, resumir registros, eliminar duplicados, reformatear registros, añadir nuevos datos y generar informes. De hecho, la mayoría de las aplicaciones de ordenación/combinación utilizan la amplia gama de capacidades de procesamiento adicionales, en lugar de simplemente ordenar o combinar registros: el producto de ordenación/combinación es una forma muy rápida de realizar entradas y salidas desde estas funciones. Se admiten una gran cantidad de "salidas de usuario", y estas pueden ser módulos de carga (es decir, un miembro de una biblioteca) o conjuntos de objetos (es decir, la salida de un ensamblador), con la aplicación de ordenación/combinación cargando (módulos de carga) o vinculando (conjuntos de objetos; denominado "edición de vínculo dinámico" en DFSORT) la salida, según se especifique y se requiera. Los conjuntos de datos de almacenamiento de trabajo (es decir, SORTWK01, ..., SORTWKnn) pueden ser de disco o cinta, aunque el algoritmo BLOCKSET está restringido al almacenamiento de trabajo en disco; más conjuntos de datos de almacenamiento de trabajo generalmente mejoran el rendimiento.
La ordenación y combinación es tan importante que existen varias empresas que venden sus propios paquetes de ordenación y combinación para mainframes IBM y sus sistemas operativos z/OS , z/VM y z/VSE . Estos programas son en gran medida compatibles con los programas SORT de IBM, a menudo con algunas extensiones. Los principales paquetes de ordenación y combinación son:
(Algunas de estas empresas también venden versiones para otras plataformas, como Unix , Linux o Windows ).
La función Sort/Merge es un componente fundamental de muchos entornos mainframe. Al migrar desde el mainframe a otras plataformas como Unix , Linux o Windows , se necesita una utilidad Sort/Merge; [4] MFSORT de Micro Focus y AHLSORT [5] emulan las funciones de DFSORT fuera del entorno mainframe.
Antes de los sistemas operativos de almacenamiento virtual , "el conjunto de datos de entrada [era] casi siempre demasiado grande para ser llevado al almacenamiento principal y ordenado de una sola vez". SORT utilizó una técnica de selección de reemplazo para reducir el uso del almacenamiento. [1] El programa hizo hincapié en las técnicas de distribución de secuencias , que podían ser predeterminadas según la cantidad y el tipo de dispositivos disponibles, o podían ser especificadas por el usuario, para hacer el mejor uso de los archivos de "trabajo de clasificación" (SORTWK) de almacenamiento secundario. Estas técnicas eran métodos para distribuir secuencias de registros parcialmente ordenados de manera más eficiente.
Había cinco técnicas de distribución disponibles para el SORT OS/360: [1]
Las técnicas de distribución enumeradas para la clasificación de cintas fueron conservadas por el programa OS/VS SORT, ahora llamadas "técnicas convencionales". Las técnicas de clasificación de discos fueron reemplazadas por cuatro nuevas: [6]