Conjunto de dados (mainframe IBM) - Data set (IBM mainframe)

No contexto de computadores mainframe IBM na linha S / 360 , um conjunto de dados (de preferência IBM) ou conjunto de dados é um arquivo de computador com uma organização de registro . O uso deste termo começou com, por exemplo, DOS / 360 , OS / 360 , e ainda é usado por seus sucessores, incluindo o z / OS atual . A documentação para esses sistemas historicamente preferia esse termo ao invés de arquivo .

Um conjunto de dados é normalmente armazenado em um dispositivo de armazenamento de acesso direto (DASD) ou fita magnética , no entanto, dispositivos de registro de unidade, como leitores de cartão perfurado, perfuradores de cartão, impressoras de linha e impressoras de página podem fornecer entrada / saída (I / O) para um conjunto de dados (arquivo).

Os conjuntos de dados não são fluxos não estruturados de bytes , mas, em vez disso, são organizados em vários registros lógicos e estruturas de bloco determinadas pela DSORG(organização do conjunto de dados), RECFM(formato do registro) e outros parâmetros. Esses parâmetros são especificados no momento da alocação do conjunto de dados (criação), por exemplo, com instruções de linguagem de controle de trabalho DD . Dentro de um programa em execução, eles são armazenados no Bloco de Controle de Dados (DCB) ou Bloco de Controle de Acesso (ACB), que são estruturas de dados usadas para acessar conjuntos de dados usando métodos de acesso .

Os registros em um conjunto de dados podem ter comprimento fixo, variável ou “indefinido”.

Organização do conjunto de dados

Para OS / 360, o DSORGparâmetro do DCB especifica como o conjunto de dados é organizado. Pode ser

CQ
Método de acesso de telecomunicações enfileiradas (QTAM) no programa de controle de mensagens (MCP)
CX
Grupo de linha de comunicação
DA
Método de acesso direto básico (BDAM)
GS
Dispositivo gráfico para método de acesso gráfico (GAM)
É
Método de acesso sequencial indexado (ISAM)
MQ
Fila de mensagens QTAM no aplicativo
PO
Particionado
PS
Sequencial Físico

entre outros. Os conjuntos de dados na fita só podem ser DSORG = PS. A escolha da organização depende de como os dados serão acessados ​​e, em particular, de como serão atualizados.

Os programadores utilizam vários métodos de acesso (como QSAM ou VSAM ) em programas para ler e gravar conjuntos de dados. O método de acesso depende da organização do conjunto de dados fornecida.

Formato de registro (RECFM)

Independentemente da organização, a estrutura física de cada registro é essencialmente a mesma e é uniforme em todo o conjunto de dados. Isso é especificado no RECFMparâmetro DCB . RECFM=Fsignifica que os registros são de comprimento fixo, especificado por meio do LRECLparâmetro. RECFM=Vespecifica um registro de comprimento variável. Os registros V, quando armazenados na mídia, são prefixados por uma palavra de descritor de registro (RDW) contendo o comprimento inteiro do registro em bytes e bits de sinalizador. Com RECFM=FBe RECFM=VB, vários registros lógicos são agrupados em um único bloco físico em fita ou DASD. FB e VB são fixed-blocked, e variable-blocked, respectivamente. RECFM = U (indefinido) também tem comprimento variável, mas o comprimento do registro é determinado pelo comprimento do bloco e não por um campo de controle.

O BLKSIZEparâmetro especifica o comprimento máximo do bloco. RECFM=FBStambém poderia ser especificado, ou seja fixed-blocked standard, significando que todos os blocos, exceto o último, deveriam ser de BLKSIZEcomprimento total . RECFM=VBS, ou variable-blocked spanned, significa que um registro lógico pode ser estendido por dois ou mais blocos, com sinalizadores no RDW indicando se um segmento de registro continua no próximo bloco e / ou foi continuado a partir do anterior.

Esse mecanismo elimina a necessidade de usar qualquer valor de byte "delimitador" para separar registros. Assim, os dados podem ser de qualquer tipo, incluindo inteiros binários, ponto flutuante ou caracteres, sem introduzir uma condição de fim de registro falsa. O conjunto de dados é uma abstração de uma coleção de registros, em contraste com os arquivos como fluxos não estruturados de bytes.

Conjunto de dados particionado

Um conjunto de dados particionados ( PDS ) é um conjunto de dados que contém vários membros , cada um dos quais mantém um subconjunto de dados separado, semelhante a um diretório em outros tipos de sistemas de arquivos . Este tipo de conjunto de dados é freqüentemente usado para armazenar módulos de carregamento (programas executáveis ​​vinculados a formatos antigos), bibliotecas de programas de origem (especialmente definições de macro Assembler) e Job Control Language . Um PDS pode ser comparado a um arquivo Zip ou Armazenamento Estruturado COM .

Um conjunto de dados particionados só pode ser alocado em um único volume e tem um tamanho máximo de 65.535 trilhas.

Além dos membros, um PDS contém também um diretório. Cada membro pode ser acessado indiretamente por meio da estrutura de diretórios. Uma vez que um membro é localizado, os dados armazenados nesse membro são tratados da mesma maneira que um conjunto de dados PS (sequencial).

Sempre que um membro é excluído, o espaço que ocupava fica inutilizável para armazenar outros dados. Da mesma forma, se um membro for reescrito, ele será armazenado em um novo local na parte de trás do PDS e deixará espaço “morto” desperdiçado no meio. A única maneira de recuperar o espaço “morto” é realizar a compactação frequente de arquivos. A compactação, que é feita com o utilitário IEBCOPY , move todos os membros para a frente do espaço de dados e deixa espaço livre utilizável na parte de trás. (Observe que, na linguagem moderna, esse tipo de operação pode ser chamado de desfragmentação ou coleta de lixo ; a compactação de dados hoje em dia se refere a um conceito diferente e mais complicado.) Os arquivos PDS só podem residir no DASD , não na fita magnética , para usar o estrutura de diretório para acessar membros individuais. Os conjuntos de dados particionados são usados ​​com mais frequência para armazenar vários arquivos de linguagem de controle de trabalho , instruções de controle de utilitário e módulos executáveis.

Uma melhoria desse esquema é um conjunto de dados particionados estendido (PDSE ou PDS / E, às vezes apenas bibliotecas ) introduzido com DFSMSdfp para sistemas MVS / XA e MVS / ESA . Uma biblioteca PDS / E pode armazenar objetos de programa ou outros tipos de membros, mas não ambos. BPAM não pode processar um PDS / E contendo objetos de programa.

A estrutura do PDS / E é semelhante ao PDS e é usada para armazenar os mesmos tipos de dados. No entanto, os arquivos PDS / E têm uma estrutura de diretório melhor que não requer pré-alocação de blocos de diretório quando o PDS / E é definido (e, portanto, não fica sem blocos de diretório se não forem especificados suficientes). Além disso, o PDS / E armazena automaticamente os membros de forma que a operação de compactação não seja necessária para recuperar o espaço "morto". Os arquivos PDS / E só podem residir no DASD para usar a estrutura de diretório para acessar membros individuais.

Grupo de Dados de Geração

Um Generation Data Group ( GDG ) é um grupo de conjuntos de dados não VSAM que são gerações sucessivas de dados historicamente relacionados armazenados em um mainframe IBM (executando o sistema operacional ou DOS / VSE ).

Um GDG geralmente é catalogado.

Um membro individual da coleção GDG é chamado de " Conjunto de dados de geração ". Este último pode ser identificado por um número absoluto, ACCTG.OURGDG (1234), ou um número relativo: (-1) para a geração anterior, (0) para a atual e (+1) para a próxima geração.

GDG JCL e recursos

Os Grupos de Dados de Geração são definidos usando o utilitário IDCAMS , que permite definir vários parâmetros.

  • LIMIT (10) limitaria o número de gerações limite a 10.
  • RISCAR PARA (91) reteria cada membro, até o número limitado de gerações, pelo menos 91 dias.

O IDCAMS também pode excluir (e opcionalmente cancelar o catálogo) um GDG.

Referências