Virtual Storage Access Method

VSAM (Virtual Storage Access Method) – specjalny, dodatkowy system dostępu i przetwarzania zbiorów danych, zlokalizowanych na nośnikach o dostępie bezpośrednim, wprowadzonych w maszynach cyfrowych IBM/370 i następnych, wyposażonych w pamięć wirtualną w systemie operacyjnym OS.

Budowa systemu

System VSAM tworzą:

Powyższe elementy tworzyły specjalizowane środowisko programowe, przeznaczone do rozszerzonego przetwarzania danych.

Organizacja zbiorów danych

System VSAM udostępniał dodatkowe (w stosunku do systemu OS) organizacje zbiorów danych:

Operator – programista – posługujący się określonym źródłem danych programował przetwarzanie określonych kolekcji, na które były przechowywane w plikach:

Organizacja pozycyjna

Ten rodzaj wywodzi się z organizacji szeregowej. Rozszerzenie organizacji szeregowej polegało w tym przypadku na wprowadzeniu:

Cechy kolekcji pozycyjnej:

Organizacja kluczowa

Ten rodzaj wywodził się z organizacji indeksowej. Ładowanie rekordów odbywało się po uporządkowaniu kolekcji według wartości kluczy, przy czym dostępne były również indeksy jednoznaczne i niejednoznaczne. Cechy kolekcji kluczowej:

Organizacja komórkowa

Wywodziła się ona z organizacji regionalnej-1 i była do niej bardzo zbliżona. Brak możliwości tworzenia indeksów pobocznych ograniczał mocno stosowanie tej organizacji kolekcji. Cechy kolekcji komórkowej:

VSAM a języki programowania

Program IDCAMS służył do tworzenia nowej kolekcji, czego nie można było wykonać w językach programowania. Po utworzeniu kolekcji można było ją przetwarzać, za pomocą języków programowania, takich jak PL/1 czy Cobol.

Ponieważ każda kolekcja musiała być skatalogowana, redukowało to złożoność zdań języka JCL – języka komunikacji pomiędzy operatorem a systemem OS.

Sterowanie systemem

Sterowanie systemem opierało się na dyrektywach zapisywanych w układzie swobodnym, które wraz ze swoimi parametrami tworzyły dość rozbudowany język. Dyrektywy dzieliły się na:

Komentarze były zapisywane identycznie jak w PL/1, tzn. pomiędzy znakami „/*” a „*/”. Lista dyrektyw:

Każda dyrektywa generowała kod powrotu:

Bibliografia