Blok kontroli danych

W systemach operacyjnych IBM mainframe , takich jak OS/360 , MVS , z/OS , Data Control Block ( DCB ) to opis zestawu danych w programie. DCB jest kodowany w asemblera przy użyciu makroinstrukcji DCB (która rozszerza się na dużą liczbę instrukcji „zdefiniowania stałej”). Programiści języków wysokiego poziomu używają procedur bibliotecznych zawierających DCB.

DCB jest jednym z wielu bloków sterujących używanych w tych systemach operacyjnych. Blok kontrolny to obszar danych o predefiniowanej strukturze, bardzo podobny do struktury C , ale zwykle związany tylko z funkcjami systemu. DCB można porównać do struktury FILE w C, ale jest ona znacznie bardziej złożona i oferuje znacznie więcej opcji dla różnych metod dostępu .

Blok kontrolny działał jako interfejs programowania aplikacji między Logical IOCS a programem użytkowym i zwykle był definiowany w samym programie aplikacyjnym (i rezydował w nim). Adresy podprogramów we/wy byłyby rozwiązywane podczas linkedit po kompilacji lub też wstawiane dynamicznie w czasie OPEN.

Równoważnym blokiem sterującym dla systemów operacyjnych IBM DOS/360 , DOS/VSE i z/VSE jest „DTF” (zdefiniowanie pliku) [1]

Typowa zawartość DCB

Prototypowe DCB

Wiele stałych i zmiennych zawartych w DCB może pozostać pustych (tzn. te domyślnie ustawione na zero).

Proces OPEN skutkuje połączeniem stałych i zmiennych określonych w instrukcji DD JCL oraz etykietą zestawu danych dla istniejących zestawów danych na taśmie magnetycznej i zestawów danych o dostępie bezpośrednim, w DCB, zastępując wartości zerowe rzeczywistymi, niezerowymi wartościami.

Blok kontrolny zwany JFCB (Job File Control Block) początkowo przechowuje informacje wyodrębnione z instrukcji DD dla zbioru danych. Wyniki scalania są przechowywane w JFCB, które mogą być również zapisywane w DSCB podczas procesu CLOSE, dzięki czemu definicja zestawu danych jest trwała.

Przykładem jest zmienna BLKSIZE=, która może być (i zwykle jest) określona w DCB jako zero. W instrukcji DD BLKSIZE jest określony jako wartość różna od zera, co skutkuje określonym przez program LRECL (długość rekordu logicznego) i określonym przez JCL BLKSIZE (fizyczny rozmiar bloku), z połączeniem dwóch staje się stałą definicją zbioru danych.

Zobacz też