КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Организация файловой системы и методы доступа к файламСПОСОБЫ ОРГАНИЗАЦИИ ФАЙЛА. СПОСОБЫ ДОСТУПА К ФАЙЛУ И МЕТОДЫ ДОСТУПА Файлы организуются из блоков, а блоки из записей. Причем это все понятия логические и с физическими секторами они взаимодействуют только через ОС и обработку через оборудование. 1. ПОСЛЕДОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ - это то же самое, что и организация файлов на магнитной ленте. 2. ИНДЕКСНО-ПОСЛЕДОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ осуществляется в виде упорядоченной последовательности в соответствии со своими ключами, которые составляют часть каждой записи. Такие файлы располагаются обычно на МД, т. к. на МЛ они теряют свой смысл из-за частой перемотки. Сама ОС способна строить совокупность индексов, с помощью которых задается расположение отдельных записей, что и обеспечивает к каждой записи как последовательный, так и прямой доступ. Графи чески это выглядит так: ┌─────────-──┐ ┌──────────┐ ┌────────┬─┼┬──┬──┐ │ ┌────┬─┼┬──┬──┐ │ ┌────────────────────┐ │ FZ │ ││ │ ─┼┬ └>│ AZ │ ││ │ ─┼─┐ └───>│ AA (запись) │ ├────────┼──┼──┼──┤│ ├────┼──┼──┼──┤ │ ├────────────────────┤ │ NZ │ │ │ ││ │ .. │ │ │ │ │ │ │ ├────────┼──┼──┼──┤│ ├────┼──┼──┼──┤ │ │ │ │ . │ │ │ │└─────>│ FZ │ │ │ │ │ ├────────────────────┤ │ . │ │ │ │ └────┴──┴──┴──┘ └─────>│ AZ (запись) │ |N послед| ├────────────────────┤ |него бло| │ Ка | └────────────────────┘ │ │ При вставке КС измен. пусто если │ на KZ ┌──────────┐ нет <────┘ │ │ │ следующего ┌────────┬─┼┬──┬──┐ ---->┌───────────────┐ блока │ KC/KZ │ ││ │ │_______ │ KA │ ├────────┼──┼──┼──┤ | ├───────────────┤ │ LZ │ │ │ ─┼─┐ | │ │ │ │ ─┼──┼──┼─┼───┐| │ │ ├────────┼──┼──┼──┤ │ │| │ │ │ . │ │ │ │ │ │| │ │ │ . │ │ │ │ │ │| ├───────────────┤ ├────────┼──┼──┼──┤ │ │| │ KC │ ┌───────────────────┐ │ NZ │ │ │ │ │ │| ├───────────────┤ ┌──>│ KD │ └────────┴──┴──┴──┘ │ │| │ ───┼──┘ ├───────────────────┤ │ │| └───────────────┘ │ . │ │ │| │ . │ │ │| ├───────────────────┤ │ │<──────────────────────┐ │ KX │ │ │ ┌───────────────┐ │ ├───────────────────┤ │ └──>│ │ └──┼── KZ │ │ │ │ └───────────────────┘ │ ├───────────────┤ └──────>│ LZ │ ├───────────────┤ БЛОК ПЕРЕПОЛ- │ Gt;пока НЕНИЯ └───────────────┘ пусто ЗОНА КЛЮЧЕЙ БЛОКИ ДАННЫХ 3. ПРЯМАЯ ОРГАНИЗАЦИЯ, которая используется на томах МД. Записи внутри файла могут быть записаны по любому выбранному программистом принципу с использованием абсолютной или относительной адресации, которую мы рассмотрели выше. Здесь можно выделить определенные места под ключи, а под сами индексы в записях пространства не нужно, т. е. физические записи выбираются по непосредственным адресам. 4. ОРГАНИЗАЦИЯ РАЗДЕЛАМИ ИЛИ БИБЛИОТЕЧНАЯ ОРГАНИЗАЦИЯ. Здесь есть характеристики, аналогичные, с одной стороны, последовательной организации, а с другой стороны - индексной организации. Независимые группы последовательно организованных данных, каждая из которых называется разделом(member),располагаются в памяти с прямым доступом. Каждый раздел имеет простое имя, сохраняемое в оглавлении(directory), которое является частью набора данных и содержит информацию о начальной точке раздела. Обычно эта организация используется для хранения библиотек подпрограмм, которые, как известно, характеризуются большим разбросом в длинах своих программ, откуда его второе название. Изобразить этот метод графически можно так: ┌───────────────┐ │ A ─┼───┐ <─────────┐ ├───────────────┤ │ │ Но вставить сюда новый │ B │ │ │ раздел нельзя, т. к. ката- БЛОК 0 ├───────────────┤ │ │ лог строго последова- (логич. │ . . . │ │ │ тельный каталог) ├───────────────┤ │ │ │ E │ │ ├───> ├───────────────┤ │ │ │ F │ │ │ Но подкаталог на ├──────────┬────┤ │ │ нескольких уровнях ┌────┼─ Создать можно │ └──────────┴────┘ │ <─────────┘ │ │ │ ┌───────────────┐<──┘ │ │ Раздел А │ │ ├───────────────┤ БЛОК 1 │ ┌──┤ Раздел G │<──┐ │ │ └───────────────┘ │ │ │ │ │ │ ┌───────────────┐ │ │ └─>│ Продолжение G │ │ │ ├───────────────┤ │ <──────┐ │ │ B │ │ БЛОК 3 │ │ ├───────────────┤ │ │ │ │ C │ │ │ │ └───────────────┘ │ ├───> Эти разделы создали │ . │ │ так: декларировали их │ ┌───────.───────┐ │ │ длину, но создали позже │ │ F . │ │ <──────┘ │ └───────.───────┘ │ │ . │ │ ┌───────────────┐ │ └───>│ G ─┼───┘ ├───────────────┤ БЛОК 7 │ │ (расшире-│ пусто ┌────┤ ние ката-│ │ 9 ││ лога) └──────────┴───┼┘ ┌───────. . .──────┘ │ ┌───────────────┐ ┌─────────────────┐ └───│ O ─┼────────────────┼ O │ ├───────────────┤ ├─────────────────┤ БЛОК 9 │ P ─┼────────────────┼ P │ БЛОК 10 (продол- ├───────────────┤ ├─────────────────┤ жение ка-│ ┌───────┤ │ Талога) └───────┴───┼───┘ └─────────────────┘ │ пусто А теперь можно посмотреть способы доступа к файлу: ------------------------ 1 СПОСОБ ДОСТУПА С ОЧЕРЕДЯМИ, при котором объединение записей в блок происходит автоматически (без указаний в программах). Точно также автоматически производится буферизация данных (без повторных команд GET и PUT для очистки буферов), также автоматически осуществляется ожидание конца ввода/вы вода или выход на стандартную программу обработки ошибок (SYNAD в IBM) и подпрограмму обработки конца файла или конца тома. Это метод для сравнительно небольшой длины записей, но расчитанный на наиболее широкого пользователя. 2. БАЗИСНЫЙ СПОСОБ ДОСТУПА обеспечивается макро READ и WRITE и обеспечивает все случаи, когда ОС не может предсказать последовательность в которой должны обрабатываться записи или когда нет необходимости в автоматическом выполнении всех или части процедур, выполняемых в предыдущем методе автоматически. При этом способе вводятся специальные процедуры для буферизации передачи информации, синхронизации последовательности выборки из буфера или ожидания ввода/вывода. READ/WRITE обрабатывают не записи, а блоки, а выделение записей из блоков необходимо выполнять в программе. Выделяемые в программе буфера заполняются или очищаются при каждой выдаче команд WRITE и READ, которые также инициализируют ввод/вывод. Чтобы убедиться в успешном завершении операций ввода/вывода, используется макро CHECK (проверить) или через макро WAIT. 3. Есть еще один из способов доступа, называемый "выполнить программу канала" (execute channel program), при котором можно создать собственную систему организации, хранения и выборки данных, т.о. это метод максимольно гибкий, в нем обеспечивается наиболее непосредственное использование физического оборудования. Но при этом теряется независимость программы от конкретных устройств и появляется опасность блокировки системы особенно во взаимодействии с предыдущими методами. Программировать таким методом сложно, поэтому его ис пользуют только системные разработчики. В РС такой метод используется при разработке мониторных систем. В соответствии со сказанным методы доступа можно описать так: Способ доступа Тип организации ---------------------------- базисный с очередями ------------------------------------------------------- последовательная BSAM QSAM разделами BPAM индексно-последовательная BISAM QISAM прямая BDAM ------------------------------------------------------- Существуют ещё виртуальные последовательные (VSAM-введен в ОС IBM) и прямые (VDAM-введен в CИPИC8) методы доступа, в которых обработка ведётся блоками без разбиения на записи и используется для устройств с прямым доступом. Но в отличии от физических методов, например от BSAM, физических адресов передачи в них знать не надо, т.е. управление идет на уровне логических записей. Есть базисные телекоммуникационные методы доступа и общий телекоммуникационный метод, обслуживающий машинные сети. Есть специальные методы доступа для обслуживания графической периферии. Существует определённая иерархия в использовании всех трех методов доступа. Причем эта иерархия не зависит от вида организации файла и может быть представлена таким образом: ┌─────────────┐ ┌────────────┐ │ │ │ │ │ QSAM │ │ QSAM │ └──────┬──────┘ └─────┬──────┘ │ │ │ │ ┌──────┴──────┐ ┌─────────────┐ ┌─────┴──────┐ │ │ │ │ │ │ │ BSAM │ │ BPAM │ │ BISAM │ └──────┬──────┘ └──────┬──────┘ └─────┬──────┘ │ │ │ │ │ │ │ ┌──────┴──────┐ │ └─────────>│ │<───────┘ │ BTAM │ └──────┬──────┘ │ │ ┌──────┴──────┐ │ │ │ EXCP │ └─────────────┘ Как видим более высокий уровень метода доступа является подструктурой более низкого. Он готовит для него свою часть информации, а затем попросту передает ему управление. Так, QSAM осуществляет последовательное заполнение буфера до тех пор, пока не будет заполнен весь блок, определяемый в DSB параметром BLKSIZE, затем организует ЕСВ и передает управление в BSAM. BSAM в свою очередь проверит правильность заполнения буфера (в соответствии с форматом обработки), инициализирует ЕСВ и передает управление в BDAM. BDAM установит физические адреса записи, тип устройства и передает всё программе физического выполения канала EXCP, где будет осуществлён физический обмен информацией через каналы ввода/вывода (или порты). Ясно, что более низкий метод доступа сократит время обработки в мониторе, но путём увеличения числа макро в программе, т.е. преимущество выявится лишь при очень умелом программировании. Несколько в стороне между базисным и методом с очередями стоят виртуальные методы доступа, но их мы рассмотрим отдельно.
|