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
- symboliczna nazwa pliku (aby dopasować instrukcję JCL do otwierania pliku)
- rodzaj dostępu (np. losowy, sekwencyjny, indeksowany)
- cechy fizyczne ( rozmiar bloku , długość rekordu logicznego)
- liczba buforów we/wy do przydzielenia do przetwarzania, aby umożliwić nakładanie się we/wy
- adres podprogramów biblioteki systemu operacyjnego I/O (np. odczyt/zapis)
- inne zmienne zgodnie z wymaganiami podprogramów zgodnie z typem
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ż
- Data Set Control Block (DSCB), część VTOC