El método de acceso al almacenamiento virtual ( VSAM ) [ 1 ] es un método de acceso al almacenamiento de archivos de dispositivos de almacenamiento de acceso directo (DASD) de IBM , utilizado por primera vez en los sistemas operativos OS/VS1 , OS/VS2 Release 1 (SVS) y Release 2 (MVS), utilizado posteriormente en toda la arquitectura Multiple Virtual Storage (MVS) y ahora en z/OS . Originalmente un sistema de archivos orientado a registros , [ NB2 ] VSAM comprende cuatro [ NB2 ] organizaciones de conjuntos de datos : secuenciado por clave (KSDS), registro relativo (RRDS), secuenciado por entrada (ESDS) y lineal (LDS). [ 2 ] Las organizaciones KSDS, RRDS y ESDS contienen registros, mientras que la organización LDS (añadida posteriormente a VSAM) contiene una secuencia de páginas sin estructura de registro intrínseca, para su uso como un archivo mapeado en memoria .
Descripción general
Un libro rojo de IBM llamado "VSAM PRIMER" (especialmente cuando se usa con el manual "Opciones del método de acceso al almacenamiento virtual (VSAM) para aplicaciones avanzadas") explica los conceptos necesarios para usar VSAM. [ 3 ] IBM usa el término conjunto de datos en la documentación oficial como sinónimo de archivo , y dispositivo de almacenamiento de acceso directo ( DASD ) para dispositivos con acceso aleatorio a ubicaciones de datos, como unidades de disco, a diferencia de dispositivos como unidades de cinta que solo se pueden leer secuencialmente.
Los registros VSAM pueden tener una longitud fija o variable. Se organizan en bloques de tamaño fijo llamados intervalos de control (IC), [ 4 ] [ 5 ] y luego en divisiones más grandes llamadas áreas de control (AC). El tamaño de los intervalos de control se mide en bytes ( por ejemplo, 4 kilobytes ), mientras que el tamaño de las áreas de control se mide en pistas o cilindros de disco. Los intervalos de control son las unidades de transferencia entre el disco y el ordenador, por lo que una solicitud de lectura leerá un intervalo de control completo. Las áreas de control son las unidades de asignación, por lo que, cuando se define un conjunto de datos VSAM, se asignará un número entero de áreas de control.
El programa de utilidad IDCAMS , perteneciente al servicio de métodos de acceso , se utiliza habitualmente para manipular («eliminar y definir») conjuntos de datos VSAM. Los programas personalizados pueden acceder a los conjuntos de datos VSAM mediante sentencias de definición de datos (DD) en el lenguaje de control de trabajos (JCL), a través de la asignación dinámica o en regiones en línea, como en el sistema de control de información del cliente (CICS).
Tanto IMS/DB como Db2 [ 6 ] [ 7 ] están implementados sobre VSAM y utilizan sus estructuras de datos subyacentes .
Archivos
La organización física de los conjuntos de datos VSAM difiere considerablemente de las organizaciones compatibles con otros métodos de acceso, como se detalla a continuación.
Un archivo VSAM se define como un conjunto de componentes VSAM; por ejemplo, para KSDS, un componente DATA y un componente INDEX.
Intervalos de control y áreas de control
Los componentes VSAM constan de bloques físicos de longitud fija agrupados en intervalos de control (IC) y áreas de control (AC) de longitud fija [ 4 ] [ 5 ] . El tamaño de los IC y las AC viene determinado por los Servicios de Método de Acceso (AMS), y su uso normalmente no es visible para el usuario. Cada área de control contiene un número fijo de intervalos de control.
Un intervalo de control normalmente contiene varios registros. Estos se almacenan dentro del intervalo de control, comenzando desde la dirección más baja y avanzando hacia arriba. La información de control se almacena en el otro extremo del intervalo, comenzando desde la dirección más alta y avanzando hacia abajo. El espacio entre los registros y la información de control es espacio libre. La información de control comprende dos tipos de entrada: un campo descriptor del intervalo de control (CIDF), que siempre está presente, y campos descriptores de registro (RDF), que están presentes cuando hay registros dentro del intervalo de control y describen la longitud del registro asociado. El espacio libre dentro de un intervalo de control siempre es contiguo.
Cuando se insertan registros en un intervalo de control, se colocan en el orden correcto con respecto a los demás. Esto puede requerir que algunos registros se muevan dentro del intervalo. Del mismo modo, cuando se elimina un registro, los registros posteriores se desplazan hacia abajo para que el espacio libre permanezca contiguo. Si no hay suficiente espacio libre en un intervalo de control para insertar un registro, este se divide. Aproximadamente la mitad de los registros se almacenan en el intervalo de control original, mientras que el resto se traslada a un nuevo intervalo. Este nuevo intervalo se selecciona de un conjunto de intervalos libres dentro de la misma área de control que el original. Si no queda ningún intervalo libre dentro de esa área, esta se divide y los intervalos se distribuyen equitativamente entre la antigua y la nueva área.
Con VSAM se pueden utilizar tres tipos de organización de archivos orientada a registros (el contenido de los conjuntos de datos lineales no tiene estructura de registro):
Organización secuencial
Un conjunto de datos secuenciado por entrada ( ESDS ) es un tipo de organización de conjuntos de datos compatible con VSAM. [ 2 ] Se accede a los registros según su orden secuencial, es decir, el orden en que se escribieron en el archivo; [ 8 ] [ 9 ] [ 10 ] lo que significa que acceder a un registro en particular implica buscar todos los registros secuencialmente hasta encontrarlo, o mediante el uso de una dirección de byte relativa [ NB 3 ] (RBA), es decir, el número de bytes desde el principio del archivo para comenzar la lectura. [ 11 ]
Los registros se cargan independientemente de su contenido y sus direcciones de bytes no se pueden modificar.
Si bien un ESDS no tiene clave, se pueden definir índices alternativos (AIX) para permitir el uso de campos como claves. [ 12 ] Un índice alternativo es en sí mismo un KSDS.
Organización indexada
Un conjunto de datos secuenciado por clave (KSDS) es un tipo de conjunto de datos compatible con VSAM. Cada registro en un archivo de datos KSDS contiene una clave única. [ 13 ] Un KSDS consta de dos partes: el componente de datos y un archivo de índice independiente , conocido como componente de índice, que permite al sistema localizar físicamente el registro en el archivo de datos mediante su valor de clave. [ 14 ] En conjunto, los componentes de datos e índice se denominan clúster. [ 15 ]
Se puede acceder a los registros de forma aleatoria o secuencial, y su longitud puede ser variable.
Como conjunto de datos VSAM , los componentes de datos e índices de KSDS consisten en intervalos de control [ 16 ] que se organizan a su vez en áreas de control. [ 17 ] A medida que se agregan registros aleatoriamente a un KSDS, los intervalos de control se llenan y deben dividirse en dos nuevos intervalos de control, recibiendo cada nuevo intervalo de control aproximadamente la mitad de los registros. De manera similar, a medida que se agotan los intervalos de control en un área de control, esta se dividirá en dos nuevas áreas de control, recibiendo cada nueva área de control aproximadamente la mitad de los intervalos de control. [ 18 ]
Si bien un KSDS básico solo tiene una clave (la clave primaria), se pueden definir índices alternativos para permitir el uso de campos adicionales como claves secundarias. [ 19 ] Un índice alternativo es en sí mismo un KSDS. [ 20 ]
La estructura de datos utilizada por un KSDS se conoce actualmente como un árbol B+ . [ 21 ] [ 22 ]
Organización relativa
Un conjunto de datos de registro relativo (RRDS) es un tipo de organización de conjuntos de datos compatible con VSAM. [ 2 ] Se accede a los registros según su posición ordinal en el archivo ( número de registro relativo , RRN). [ 23 ] Por ejemplo, el registro deseado podría ser el número 42 de un total de 999. El concepto de RRDS es similar al método de acceso secuencial , pero permite el acceso aleatorio y dinámico a los datos.
Un RRDS consta de registros de datos en secuencia, donde el número de registro indica la posición lógica del registro en el conjunto de datos. [ 24 ] Un programa puede acceder a los registros de forma aleatoria utilizando este número de posición o acceder a ellos de forma secuencial. [ 25 ] Pero a diferencia de un conjunto de datos secuenciado por clave , un RRDS no tiene claves, por lo que el programa no puede acceder a los registros mediante el valor de la clave.
Organización lineal
Un conjunto de datos lineal (LDS) es un tipo de organización de conjuntos de datos compatible con VSAM. [ 2 ] El LDS tiene un tamaño de intervalo de control de 4096 bytes a 32768 bytes [ 26 ] en incrementos de 4096. [ 27 ] Un LDS no tiene información de control incrustada, porque no la contiene, por lo que no se puede acceder al LDS como si contuviera registros individuales. [ 28 ]
El direccionamiento dentro de un LDS se realiza mediante direcciones de bytes relativas (RBA), lo que permite su uso por sistemas como IBM Db2 o el sistema operativo. La ventaja es que sistemas como el sistema operativo pueden acceder a múltiples discos y considerarlos como una única implementación de almacenamiento. Sin embargo, la limitación radica en que esto no resulta particularmente útil para niveles de abstracción superiores. Los servicios Data In Virtual [ 29 ] (DIV) y Windows [ 30 ] proporcionan un método alternativo para el uso directo de VSAM para acceder a un LDS con un tamaño de CI de 4096.
Técnicas de acceso a datos
Existen cuatro tipos de técnicas de acceso para los datos VSAM:
- Los Recursos Locales Compartidos (LSR) están optimizados para el acceso "aleatorio" o directo. El acceso a LSR es fácil de lograr desde CICS . [ 31 ]
- Recursos Compartidos Globales (GSR) [ 32 ]
- Recursos no compartidos (NSR), que está optimizado para el acceso secuencial. Históricamente, el acceso NSR ha sido más fácil de usar que LSR para programas por lotes. [ 31 ]
- La administración de archivos distribuidos (DFM, por sus siglas en inglés), una implementación de un servidor de arquitectura de administración de datos distribuidos , permite que los programas en computadoras remotas creen, administren y accedan a archivos VSAM.
Compartir datos
El intercambio de datos VSAM entre regiones CICS se puede realizar mediante el Intercambio a Nivel de Registro (RLS) de VSAM. Esto añade almacenamiento en caché de registros y, lo que es más importante, bloqueo de registros. El registro y el procesamiento de confirmaciones siguen siendo responsabilidad de CICS, lo que significa que el intercambio de datos VSAM fuera de un entorno CICS está muy restringido.
El intercambio entre regiones CICS y trabajos por lotes requiere VSAM transaccional , DFSMStvs. Este es un programa opcional que se basa en VSAM RLS añadiendo registro y confirmación en dos fases, utilizando los servicios del sistema z/OS subyacente. Esto permite el intercambio generalizado de datos VSAM.
Historia
VSAM se introdujo como reemplazo de los métodos de acceso más antiguos [ 33 ] y tenía como objetivo agregar funcionalidad, facilitar su uso y superar los problemas de rendimiento y dependencia del dispositivo. VSAM se introdujo en la década de 1970 cuando IBM anunció los sistemas operativos de almacenamiento virtual (DOS/VS, OS/VS1 y OS/VS2) para su nueva serie System/370, como sucesores de los sistemas operativos DOS/360 y OS/360 que se ejecutaban en su serie de computadoras System/360. Si bien se mantuvo la retrocompatibilidad, los métodos de acceso más antiguos sufrían problemas de rendimiento debido a la traducción de direcciones requerida para el almacenamiento virtual.
La organización KSDS se diseñó para reemplazar ISAM (Método de Acceso Secuencial Indexado). Los avances en la tecnología de discos habían provocado que la búsqueda de datos en conjuntos de datos ISAM se volviera muy ineficiente. Además, era difícil mover conjuntos de datos ISAM, ya que contenían punteros integrados a ubicaciones físicas del disco que dejaban de ser válidos al mover el conjunto de datos. IBM también proporcionó una interfaz de compatibilidad para permitir que los programas programados para usar ISAM utilizaran KSDS en su lugar.
La organización RRDS se diseñó para reemplazar a BDAM , el Método Básico de Acceso Directo. En algunos casos, los conjuntos de datos BDAM contenían punteros incrustados que impedían su transferencia. Sin embargo, la mayoría de los conjuntos de datos BDAM no los contenían, y el incentivo para migrar de BDAM a VSAM RRDS era mucho menos atractivo que el de migrar de ISAM a VSAM KSDS.
Posteriormente se añadieron conjuntos de datos lineales, seguidos de VSAM RLS y, a continuación, VSAM transaccional.
Véase también
- Lenguaje de control de trabajos (JCL)
- Programas de utilidad para mainframes de IBM
- ISAM
- Ginebra ERS
- Servicios de gestión de registros , un sistema similar desarrollado por Digital Equipment Corporation.
- Enscribe , un sistema similar desarrollado por Tandem Computers.
- Base de datos de Berkeley
Notas
- ↑ Ya no se usa.
- 1 2 Con la excepción de los catálogos, los espacios de páginas y los espacios de intercambio [ NB 1 ] , a los que las aplicaciones no autorizadas solo podían acceder a través de servicios especializados del sistema operativo. Sin mencionar el hecho de que también ha estado en VSE desde siempre y se utiliza en z/VSE.
- ↑ Dado que las áreas de control pueden estar dispersas, esta no es una dirección física relativa.
Referencias
- ↑ "Nueva vida para los sistemas heredados en LaBarge" . Datamation . 11 de mayo de 2007.
- 1 2 3 4 Lovelace et al. 2022 , p. 5, 1.3.2 Gestión de registros.
- ↑ "Introducción a VSAM" .
- 1 2 "VSAM – Componentes" .
- 1 2 "Limitaciones del tamaño del intervalo de control" . IBM . 27 de marzo de 2014.
- ↑ Lovelace et al. 2022 , pág. 41, 1.8.1 DB2.
- ↑ "Guía del usuario" (PDF) . 16 de febrero de 2024.
- ↑ "VSAM: introducción" .
- ↑ "Funcionalidad del servidor" .
Secuencial (VSAM ESDS – Conjunto de datos secuenciados de entrada)
- ↑ "ABCs of z/OS System Programming Volumen 3" . CiteSeerX 10.1.1.469.8853 .
Un conjunto de datos ESDS VSAM contiene registros en el orden en que fueron introducidos.
- ↑ Lovelace et al. 2022 , p. 28, 1.5.2 Conjunto de datos secuenciados por entrada.
- ↑ Rogers, P.; Capobianco, G.; Carey, D.; Davies, N.; Fadel, L.; Hewitt, K.; Oliveira, J.; Pita, F.; Salla, A.; Sokal, V.; Tay, YF; Timm, H. (abril de 2000). "1.19.11 Entry sequenced data set (ESDS)" (PDF) . ABCs of OS/390 System Programming - Volume 3 (PDF) . Redbooks. International Technical Support Organization IBM . pág. 108. ISBN 9780738416182SG24-5653-00 . Consultado el 6 de julio de 2025.
Si bien un conjunto de datos secuenciado por entrada no contiene un componente de índice, se permiten índices alternativos. Puede crear un índice alternativo para realizar un seguimiento de estos RBA.
- ↑ Lovelace et al. 2022 , pág. 20, 1.5.1 Conjunto de datos secuenciados clave (KSDS).
- ↑ Lovelace et al. 2022 , pág. 13, 1.4.6 Componentes.
- ↑ Lovelace et al. 2022 , p. 15, 1.4.7 Clusters.
- ↑ Lovelace et al. 2022 , p. 10, 1.4.3 Intervalo de control.
- ↑ Lovelace et al. 2022 , p. 12, 1.4.5 Área de control.
- ↑ Lovelace et al. 2022 , p. 17, 1.4.10 Splits.
- ↑ Lovelace et al. 2022 , págs. 15–16, 1.4.8 Índices alternativos.
- ↑ Lovelace et al. 2022 , pág. 16, 1.4.8 Índices alternativos.
- ↑ "Patente estadounidense para proporcionar bloqueo de actualización de índice alternativo a nivel de registro" .
- ↑ "¿Qué es VSAM?" .
Este índice se llama árbol B+.
- ↑ Lovelace et al. 2022 , pp. 29–30, 1.5.3 Conjunto de datos de registros relativos.
- ↑ Lovelace et al. 2022 , p. 30, 1.5.3 Conjunto de datos de registros relativos.
- ↑ Lovelace et al. 2022 , p. 30, Conjunto de datos de registros relativos.
- ↑ "Conjuntos de datos lineales" (PDF) . z/OS 2.5 DFSMS Uso de conjuntos de datos (PDF) . IBM. 30 de septiembre de 2021. pág. 91. SC23-6855-50.
- ↑ Lovelace et al. 2022 , p. 31, 1.5.5 Conjunto de datos lineales.
- ↑ "Centro de conocimiento de IBM" . www.ibm.com . 27 de marzo de 2014. Consultado el 7 de febrero de 2021 .
- ↑ ASMGUIDE , págs. 225-248 , Capítulo 14. Datos en el entorno virtual.
- ↑ ASMGUIDE , págs. 293-310 , Capítulo 17. Servicios de ventanas.
- 1 2 "Recursos compartidos locales (LSR) o recursos no compartidos" . IBM .
- ↑ "Compartir conjuntos de datos VSAM" . IBM.com (Centro de conocimiento de IBM) .
Describe las consideraciones para compartir conjuntos de datos VSAM para NSR o LSR/GSR.
- ↑ Suplemento de características de OS/Virtual Storage 1 (PDF) (Primera edición). IBM. Agosto de 1972. GC20-1752-0.
Bibliografía
- Lovelace, María; Dovidauskas, José; Salla, Álvaro; Sokal, Valeria (agosto de 2022). VSAM desmitificado (PDF) . Libros rojos (3 ed.). IBM .
- VSAM desmitificado
- Descripción general y guía de planificación de DFSMStvs
Lecturas adicionales
- Programación de z/OS 2.5 MVS: Guía de servicios de ensamblador (PDF) . IBM. 30 de septiembre de 2021. SA23-1368-50.
- "Foros de MVS - Preguntas frecuentes técnicas - VSAM" . Mvsforums.com . Consultado el 12 de diciembre de 2017 .
Enlaces externos
- Parámetros de ajuste VSAM de Lascon.co.uk en Wayback Machine (archivado el 23/10/2005)
- Tutorial de VSAM en Wayback Machine (archivado el 13 de octubre de 2005)
- Preguntas frecuentes técnicas de VSAM
- Sistemas operativos para mainframes de IBM
- Sistemas de archivos de IBM
- formatos de archivos informáticos