Article de reference

Méthode d'accès au stockage virtuel

La méthode d'accès au stockage virtuel ( VSAM ) est une méthode d'accès au stockage de fichiers sur périphérique de stockage à accès direct (DASD) d'IBM . Elle a été utilisée po...

La méthode d'accès au stockage virtuel ( VSAM ) est une méthode d'accès au stockage de fichiers sur périphérique de stockage à accès direct (DASD) d'IBM . Elle a été utilisée pour la première fois dans les systèmes d'exploitation OS/VS1 , OS/VS2 Release 1 (SVS) et Release 2 (MVS), puis dans l' architecture Multiple Virtual Storage (MVS) et enfin dans z/OS . Initialement un système de fichiers orienté enregistrement , comprend quatre organisations données : à séquence de clés KSDS), à enregistrements relatifs (RRDS), à séquence d'entrées (ESDS) et linéaire (LDS). Les organisations KSDS, RRDS et ESDS contiennent des enregistrements, tandis que l'organisation LDS (ajoutée ultérieurement à VSAM) contient une séquence de pages sans structure d'enregistrement intrinsèque, destinée à être utilisée comme fichier mappé en mémoire .

périphérique de stockage à accès direct » ( DASD ) pour les périphériques à accès aléatoire aux emplacements de données, tels que les disques durs, par opposition aux périphériques tels que les lecteurs de bandes qui ne peuvent être lus que de manière séquentielle.

Les enregistrements VSAM peuvent être de longueur fixe ou variable. Ils sont organisés en blocs de taille fixe appelés kilo-octets ), tandis que celle des zones de contrôle est mesurée en pistes ou en cylindres de disque. Les intervalles de contrôle sont les unités de transfert entre le disque et l'ordinateur ; une requête de lecture correspond donc à la lecture d'un intervalle de contrôle complet. Les zones de contrôle sont les unités d'allocation ; ainsi, lors de la définition d'un fichier VSAM, un nombre entier de zones de contrôle est alloué.IDCAMS ( Access Method Services) est couramment utilisé pour manipuler (supprimer et redéfinir) les fichiers VSAM. Les programmes personnalisés peuvent accéder aux fichiers VSAM via des instructions DD (Data Definition) en JCL ( Job Control Language ), par allocation dynamique ou dans des régions en ligne telles que CICS ( Customer Information Control System ).

IMS/DB et Db2 sont tous deux implémentés sur VSAM et utilisent ses structures de données sous-jacentes .

Fichiers

L'organisation physique des ensembles de données VSAM diffère considérablement des organisations prises en charge par d'autres méthodes d'accès, comme suit.

Un fichier VSAM est défini comme un ensemble de composants VSAM, par exemple, pour KSDS, un composant DATA et un composant INDEX.

intervalles de contrôle et zones de contrôle

Les composants VSAM sont constitués de blocs physiques de longueur fixe, regroupés en intervalles de contrôle (IC) et en zones de contrôle (DC) de longueur fixe . La taille des IC et des DC est déterminée par les services de méthodes d'accès (SMA), et leur utilisation est généralement invisible pour l'utilisateur. Chaque zone de contrôle comprend un nombre fixe d'intervalles de contrôle.

Un intervalle de contrôle contient généralement plusieurs enregistrements. Ces enregistrements sont stockés dans l'intervalle, de l'adresse la plus basse vers la plus haute. Les informations de contrôle sont stockées à l'autre extrémité de l'intervalle, de l'adresse la plus haute vers la plus basse. L'espace entre les enregistrements et les informations de contrôle est un espace libre. Les informations de contrôle comprennent deux types d'entrées : un champ descripteur d'intervalle de contrôle (CIDF), toujours présent, et des champs descripteurs d'enregistrement (RDF), présents lorsqu'il y a des enregistrements dans l'intervalle et qui décrivent la longueur de l'enregistrement associé. L'espace libre dans un intervalle de contrôle est toujours contigu.

Lorsqu'un enregistrement est inséré dans un intervalle de contrôle, il est placé dans l'ordre approprié par rapport aux autres enregistrements. Cela peut nécessiter le déplacement d'enregistrements à l'intérieur de l'intervalle. Inversement, lorsqu'un enregistrement est supprimé, les enregistrements suivants sont décalés vers le bas afin de préserver la continuité de l'espace libre. Si l'espace libre est insuffisant dans un intervalle de contrôle pour l'insertion d'un enregistrement, l'intervalle est divisé. Environ la moitié des enregistrements sont conservés dans l'intervalle d'origine, tandis que les enregistrements restants sont déplacés vers un nouvel intervalle. Ce nouvel intervalle est choisi parmi les intervalles libres de la même zone de contrôle que l'intervalle d'origine. S'il n'y a plus d'intervalle libre dans cette zone, la zone de contrôle est divisée et les intervalles sont répartis équitablement entre l'ancienne et la nouvelle zone.

Avec VSAM, vous pouvez utiliser trois types d'organisation de fichiers orientée enregistrements (le contenu des ensembles de données linéaires ne possède pas de structure d'enregistrement) :

Organisation séquentielle

Un ensemble de données à entrée séquentielle ( ESDS ) est un type d' organisation de données pris en charge par VSAM. Les enregistrements sont accessibles selon leur ordre séquentiel, c'est-à-dire l'ordre dans lequel ils ont été écrits dans le fichier ; ce qui signifie que l'accès à un enregistrement particulier implique de parcourir tous les enregistrements séquentiellement jusqu'à ce qu'il soit trouvé, ou d'utiliser une adresse d'octet relative (RBA), c'est-à-dire le nombre d'octets à partir du début du fichier pour commencer la lecture.

Les enregistrements sont chargés indépendamment de leur contenu et leurs adresses d'octets ne peuvent pas être modifiées.

Bien qu'un ESDS ne possède pas de clé, des index alternatifs (AIX) peuvent être définis pour permettre l'utilisation de champs comme clés. Un index alternatif est lui-même un KSDS.

Organisation indexée

Un ensemble de données à clés séquentielles (KSDS) est un type d' ensemble de données pris en charge par VSAM. Chaque enregistrement d'un fichier de données KSDS est associé à une clé unique. Un KSDS se compose de deux parties : les données et un fichier d'index distinct , appelé index, qui permet au système de localiser physiquement l'enregistrement dans le fichier de données grâce à sa clé. L'ensemble des données et de l'index forme un cluster.

Les enregistrements sont accessibles de manière aléatoire ou séquentielle et peuvent avoir une longueur variable.

En tant qu'ensemble de données VSAM , les données et l'index du KSDS sont constitués d'intervalles de contrôle , eux-mêmes organisés en zones de contrôle . Lorsque des enregistrements sont ajoutés aléatoirement à un KSDS, les intervalles de contrôle se remplissent et doivent être divisés en deux, chaque nouvel intervalle recevant environ la moitié des enregistrements. De même, lorsqu'une zone de contrôle est saturée, elle est divisée en deux nouvelles zones, chacune recevant environ la moitié des intervalles de contrôle

Alors qu’un KSDS de base ne possède qu’une seule clé (la clé primaire), des index alternatifs peuvent être définis pour permettre l’utilisation de champs supplémentaires comme clés secondaires. Un index alternatif est lui-même un KSDS.

La structure de données utilisée par un KSDS est aujourd'hui connue sous le nom d' arbre B+ .

Organisation relative

Un ensemble de données à enregistrements relatifs (RRDS) est un type d' organisation de données pris en charge par VSAM. Les enregistrements sont accessibles en fonction de leur position ordinale dans le fichier ( numéro d'enregistrement relatif , RRN). Par exemple, l'enregistrement souhaité peut être le 42e sur un total de 999. Le concept de RRDS est similaire à l' accès séquentiel , mais il permet un accès aléatoire et dynamique aux données.ensemble de données séquentiel par clé , un RRDS ne possède pas de clés ; par conséquent, le programme ne peut pas accéder aux enregistrements par la valeur d'une clé.

Organisation linéaire

Un ensemble de données linéaire (LDS) est un type d' organisation de données pris en charge par VSAM. La taille de l'intervalle de contrôle d'un LDS varie de 4 096 à 32 768 octets par incréments de 4 096. Un LDS ne contient pas d'informations de contrôle intégrées ; par conséquent, il n'est pas possible d'y accéder comme s'il contenait des enregistrements individuels.

L'adressage au sein d'un LDS s'effectue par adresse d'octet relative (RBA), ce qui permet son utilisation par des systèmes tels qu'IBM Db2 ou le système d'exploitation. CICS .

  • Ressources partagées mondiales (RPM)
  • Les ressources non partagées (NSR) sont optimisées pour un accès séquentiel. Historiquement, l'accès NSR s'est avéré plus facile à utiliser que l'accès LSR pour les programmes par lots.
  • La gestion de fichiers distribués (DFM), une implémentation d'un serveur d'architecture de gestion de données distribuées , permet aux programmes sur des ordinateurs distants de créer, gérer et accéder aux fichiers VSAM.
  • Partage de données

    Le partage de données VSAM entre régions CICS peut être réalisé via le partage au niveau de l'enregistrement VSAM (RLS). Ce dernier ajoute la mise en cache des enregistrements et, surtout, leur verrouillage. La journalisation et le traitement des validations restent du ressort de CICS, ce qui signifie que le partage de données VSAM en dehors d'un environnement CICS est fortement limité.

    Le partage entre les régions CICS et les traitements par lots nécessite à mémoire virtuelle (DOS/VS, OS/VS1 et OS/VS2) pour sa nouvelle gamme System/370, succédant aux systèmes d'exploitation DOS/360 et OS/360 qui fonctionnaient sur sa gamme d'ordinateurs System/360. Bien que la rétrocompatibilité ait été maintenue, les anciennes méthodes d'accès souffraient de problèmes de performance dus à la traduction d'adresses requise pour la mémoire virtuelle.

    L'organisation KSDS a été conçue pour remplacer ISAM (Indexed Sequential Access Method). L'évolution des technologies de disques avait rendu la recherche de données dans les fichiers ISAM très inefficace. De plus, le déplacement des fichiers ISAM était complexe car ils contenaient des pointeurs physiques vers leur emplacement sur le disque, qui devenaient invalides en cas de déplacement. IBM a également fourni une interface de compatibilité permettant aux programmes conçus pour ISAM d'utiliser KSDS.

    L'organisation RRDS a été conçue pour remplacer BDAM (Basic Direct Access Method). Dans certains cas, les ensembles de données BDAM contenaient des pointeurs intégrés qui empêchaient leur déplacement. Cependant, la plupart des ensembles de données BDAM n'en contenaient pas, et l'intérêt de passer de BDAM à VSAM RRDS était bien moindre que celui de passer d'ISAM à VSAM KSDS.

    Des ensembles de données linéaires ont été ajoutés ultérieurement, suivis de VSAM RLS puis de VSAM transactionnel.