Файловая система CMS - это собственная файловая система для системы Conversational Monitor System <35 от IBM.>(CMS), компонент VM / 370. Это была единственная файловая система для CMS до появления системы с VM / SP.
CMS использует виртуальные диски, называемые минидисками, для хранения файлов. Минидиск - это непрерывное подмножество реального диска, которое функционирует как настоящий диск. VM позволяет мини-дискам содержать различные типы данных, такие как наборы данных OS / 360 или DOS / 360, а также данные в формате CMS.
К виртуальной машине CMS можно получить доступ до десяти минидисков в течение одного сеанса. Пользователь ссылается на мини-диски с помощью буквы, которая является частью поля, называемого файловым режимом. Диск S содержит системные файлы CMS и доступен только для чтения; диск Y обычно является расширением S. Диск для чтения / записи содержит пользовательские файлы, такие как данные настройки, источники программ и исполняемые файлы. Другие буквы дисков с B по Z могут содержать данные, определенные пользователем. Если файл открыт без указанной буквы режима файла (FILENAME FILETYPE *
), поиск на дисках будет выполняться в алфавитном порядке. Второй символ режима файла - это число, обозначающее атрибуты чтения, записи и совместного использования.
Команда ACCESS
используется для доступа к мини-диску. Например: ACCESS 191 A
будет обращаться к виртуальному диску, назначенному этому пользователю как блок «191» (виртуальный канал и адрес устройства) как мини-диск «A».
Минидиск в ранних версиях CMS форматируется в блоки по 800 байт . Более поздние версии CMS допускают форматирование минидисков как блоки размером 1024, 2048 или 4096 байт, что увеличило описанные здесь ограничения до 2 дисковых блоков и 2 записей.
Первые два блока на минидиске зарезервированы для IPL. Третий блок содержит метку , идентифицирующую мини-диск. Четвертый блок, называемый Master File Directory или MFD, представляет собой заголовок directory для минидиска. MFD также содержит битовую карту , называемую QMSK, указывающую состояние каждого 800-байтового блока на диске, используемого для выделения. Следуя MFD, все типы записей могут быть разбросаны и перемешаны на диске.
CMS использует плоскую файловую систему. MFD содержит массив дисковых адресов блоков, содержащих записи таблицы состояния файлов (FST) (каталог). Каждый блок FST содержит двадцать 40-байтовых записей FST, каждая из которых описывает файл. Содержимое одной записи FST:
Смещение | Длина | Имя | Описание |
---|---|---|---|
0 | 8 | FSTFNAME | Имя файла (символ), слева- выровненный по ширине и заполненный пробелом |
8 | 8 | FSTFTYPE | Тип файла (символ), выровненный по левому краю и заполненный пробелами |
16 | 2 | FSTDATEW | Дата последней записи, MMDD (двоичный) |
18 | 2 | FSTTIMEW | Время последней записи, ЧЧММ (двоичный) |
20 | 2 | FSTWRPNT | Указатель записи [номер элемента] (двоичный) |
22 | 4 | FSTRDPNT | Указатель чтения [номер элемента] (двоичный) |
24 | 2 | FSTFMODE | Файловый режим |
26 | 2 | FSTRECCT | Количество записей [элементов] |
28 | 2 | FSTFCLPT | Адрес диска первой записи звена цепочки |
30 | 1 | FSTRECFM | Формат записи, фиксированный / переменный |
31 | 1 | FSTFLAGS | Флаги |
32 | 4 | FSTLRECL | Длина или максимальная длина каждого элемента [запись] (двоичный) |
36 | 2 | FSTBLKCT | Количество 800-байтовых блоков в файле (двоичный) |
38 | 2 | FSTYEARW | Год записи (двоичный) |
Запись FST указывает на первый блок звена цепи для файла. Первый блок звеньев цепи содержит дисковые адреса до 40 дополнительных блоков звеньев цепи, за которыми следуют дисковые адреса до 60 блоков данных. Каждый из оставшихся блоков звеньев цепочки содержит дисковые адреса до 400 блоков данных. это приводит к максимальному размеру 16 060 800-байтовых блоков или 12 848 000 байтов для любого файла CMS. Максимальное количество записей в одном файле - 65 533.
В терминологии CMS записи обычно называются элементами. Файлы CMS могут иметь фиксированный или переменный формат записи; типы записей не могут быть смешаны в файле. Для записей фиксированной длины длина определяется FSTLRECL, и расположение любой записи фиксированной длины может быть вычислено с помощью (item_number-1) * record_length / 800. Частное будет номером блока, а остаток будет смещением элемента в блоке. Записи переменной длины имеют максимальную длину в байтах FSTLRECL, и им предшествует двухбайтовое поле длины записи, указывающее фактическую длину.
Усовершенствование исходной файловой системы CMS в VM / SP, называемое Enhanced Disk Format (EDF), позволяет файлы большего размера за счет расширения FST и введения нескольких уровней блоков звеньев цепочки.