Loading AI tools
З Вікіпедії, вільної енциклопедії
Набір даних (англ. data set) у термінології IBM — файл з організацією у вигляді записів[en]. Використання цього терміну почалося з появою системи OS/360, і у 21-му столітті все ще використовується її нащадками (а саме, системою z/OS). У документації на ці операційні системи традиційно використовується поняття data set («набір даних») замість звичного зараз «файл».
Як правило, набір даних зберігається на «пристрої збереження даних з прямим доступом» (такому, як дисковий накопичувач), або на «пристрої з послідовним доступом» (наприклад, стримері).[1] Втім, ввід-вивід наборів даних може здійснюватися і на старіших пристроях для вводу-виводу записів, таких як зчитувачі перфокарт[en], перфоратори, і рядкові принтери.[2]
Набори даних не є неструктурованими потоками байтів, вони структуровані у вигляді записів (англ. record),[3] а також «блокових структур», що у операційних системах IBM визначаються параметрами DSORG
(англ. data set organization), RECFM
(англ. record format), і іншими. Ці параметри вказуються під час «виділення» (англ. allocation) набору даних — термін, що у IBM означає «створення файлу» (наприклад, за допомогою операторів DD
мови JCL). Всередині завдання параметри зберігаються всередині блоку керування даними (англ. data control block), що є структурою даних і потрібен для доступу до набору даних (зокрема, так званими методами доступу (англ. access methods).
У OS/360 параметр DSORG
блоку DCB визначає спосіб організації набору даних. Записи можуть бути фізично послідовними (PS, англ. physically sequential), послідовними з індексацією (IS, англ. indexed sequential), розбитими на розділи (PO, англ. partitioned), або з прямим доступом (DA, англ. Direct Access). На магнітній стрічці доступ може бути лише послідовним (DSORG=PS
). На інших носіях вибір організації залежить від того, яким буде доступ до даних і як записи будуть оновлюватися.
Програмний компонент для доступу до даних називається методом доступу.
Незалежно від організації, всередині набору даних фізична структура кожного запису є однаковою і уніфікованою. Структура вказується у DCB-параметрі RECFM
:
RECFM=F
означає записи фіксованої довжини, що задається параметром LRECL
.RECFM=V
вказує, що записи мають різну довжину. На початку V-записів додається так зване «слово опису запису» (англ. Record Descriptor Word, RDW), що містить довжину запису (ціле число) і спеціальні біти прапорів.RECFM=FB
і RECFM=VB
кілька логічних записів можна згрупувати у один фізичний блок[en] на магнітній стрічці чи на пристрої DASD. «FB» означає fixed-blocked
, а «VB» — variable-blocked
.RECFM=U
(невизначено, англ. undefined) також мають змінну довжину, але довжина запису визначається довжиною блоку а не значенням керуючого поля.Параметр BLKSIZE
визначає максимальну довжину блока. Також можна вказувати RECFM=FBS
[4], що означає fixed-blocked standard
, тобто усі блоки крім останнього повинні мати довжину BLKSIZE
.
RECFM=VBS
, або variable-blocked spanned
, означає, що логічний запис може простягатися на два або більше блоки; поле прапорів RDW показує, чи сегмент запису продовжується у наступний блок, і/або чи є він продовженням попереднього.
Даний механізм усуває необхідність використання «розділювача» записів. Таким чином дані можуть бути будь-якого типу, включно з двійковими (цілі або з рухомою комою) і символьними, без ризику включення хибного символу «розділювач записів».
Набір даних, розбитий на розділи (англ. partitioned data set, PDS) — набір даних, який містить у собі декілька елементів (англ. members), кожен з яких у свою чергу містить інший набір даних (концепція, схожа на каталог у сучасних файлових системах).[5] Такий тип набору даних часто використовується для «модулів завантаження» (англ. load modules, двійкові файли програм старого формату), бібліотек програм у початкових кодах (особливо макропакети мовою асемблера), означення для Job Control Language. PDS можна умовно порівняти з форматом ZIP.
PDS може розташовуватися лише на одному томі пристрою DASD і мати максимальний розмір 65535 доріжок. PDS не може розташовуватися на магнітних стрічках.
Крім елементів, PDS також містить каталог, що полегшує доступ до окремих елементів набору. Коли за допомогою каталогу точне розташування елементу у наборі відоме, доступ до нього здійснюється як до звичайного набору даних з послідовним доступом (PS, англ. sequential data set).
При видаленні елемента з PDS місце, яке він займав, стає непридатним для зберігання інших даних. Аналогічно при «перезапису» елемента створюється новий слот наприкінці PDS, залишаючи невикористане місце усередині. Щоб позбутися таких порожніх місць потрібна часта компресія,[6] яка здійснюється за допомогою утиліти IEBCOPY[7]. Ця утиліта переміщує всі елементи ближче до початку і вивільняє всі невикористані «слоти» (у сучасному жаргоні така операція часто називається дефрагментацією або збиранням сміття; «стиснення даних» у сучасній термінології означає зовсім інше, значно складніше поняття).
Вдосконаленням цієї схеми є так звані PDS/E (англ. extended, «розширені», інколи також називаються просто «бібліотеками»), що вперше з'явилися у DFSMSdfp для систем MVS/XA і MVS/ESA. Бібліотека PDS/E може містити об'єктні файли або інші елементи, але не водночас. Метод BPAM не може обробляти бібліотеки PDS/E з об'єктними файлами.[уточнити]
Структура PDS/E схожа на PDS і використовується для зберігання таких самих типів даних. Втім, набори PDS/E мають покращену структуру каталога, яка не вимагає попереднього резервування блоків у момент створення PDS/E (і таким чином уникає ситуації нестачі блоків для каталогу). Також PDS/E автоматично зберігає елементи таким чином, що дефрагментація стає непотрібною.[6] Файли PDS/E також можуть розміщуватися лише на DASD.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.