Cтраница 2
В ОС Unix реализован механизм несмежного распределения блоков файлов. [16]
Если указан параметр END, на диск выводится закрывающий блок файла, который занимает один сектор. Параметр п означает запись с последующим контрольным чтением. [17]
![]() |
Файл динозавров с добавленной записью эласмозавра. [18] |
Модифицируем, наконец, запись индекса для второго блока файла динозавров, изменяя значение его ключа на Брахиозавр. [19]
В разумной реализации в основную память следует загрузить как можно больше блоков файла для отношения АВ, оставляя, однако, пространство для одного блока файла, поддерживающего отношение CD. Далее можно осуществить конкатенацию каждой записи АВ в основной памяти с записями из блока файла CD, поскольку он также находится в памяти. Такая стратегия уменьшает число необходимых загрузок каждого блока CD с коэффициентом, равным числу записей АВ, которые могут поместиться в основной памяти. [20]
![]() |
Виртуальный файловый носитель. [21] |
Средства разделяемых файлов позволяют программе получить полный контроль над одним или несколькими блоками файла. Для этого программа должна заблокировать нужные ей блоки файла. После блокировки другие программы, работающие с теми же файлами, не смогут работать с этими блоками, пока первая программа не разблокирует их. Возможна блокировка всего файла. [22]
Блок ( blk): для некоторых программных запросов требуется, чтобы программа указывала, какой блок файла пользователь хочет ввести или вывести. [23]
Если указан параметр END, то текущей становится последняя логическая запись, занимающая конечный сектор файла, закрывающий блок файла. [24]
При таком вызове по умолчанию устанавливается число файлов, которые могут быть открыты в любое время в течение работы интерпретатора - 3 ( каждый блок файла данных требует 166 байт памяти); максимальное число байт, которое может быть использовано как рабочее пространство интерпретатора - 64 Кбайт; максимальный размер записи для файлов с произвольным доступом - 128 байт. Принимаемые по умолчанию значения могут быть изменены путем явного задания в команде BASIC после имени файла трех параметров в виде списка / F: N1 / M: N2 / S: N3, где N1, N2, N3 - соответственно число файлов, рабочее пространство и размер записи. [25]
В разумной реализации в основную память следует загрузить как можно больше блоков файла для отношения АВ, оставляя, однако, пространство для одного блока файла, поддерживающего отношение CD. Далее можно осуществить конкатенацию каждой записи АВ в основной памяти с записями из блока файла CD, поскольку он также находится в памяти. Такая стратегия уменьшает число необходимых загрузок каждого блока CD с коэффициентом, равным числу записей АВ, которые могут поместиться в основной памяти. [26]
Итак, мы показали, как работающие процессы получают доступ к позиции в файле и к i-узлу файла, i-узел содержит дисковые адреса первых 10 блоков файла. Если позиция в файле попадает в его первые 10 блоков, то считывается нужный блок файла, а данные копируются пользователю. Этот блок содержит дисковые адреса дополнительных блоков файла. Например, если размер блока составляет 1 Кбайт, а дисковый адрес занимает 4 байт, то одинарный косвенный блок может хранить до 256 дисковых адресов. Такая схема позволяет поддержать файлы размером до 266 Кбайт. [27]
Под загрузкой данных понимаются все процедуры перемещения данных с МЛ или ПЛ, когда в результате выполнения одного такта процедуры на МД помещается: одна запись или один блок файла. Состояние 1 - й записи файла на МД изменяется за счет обработки отдельных реквизитов. [28]
Последний метод отслеживания принадлежности блоков диска файлам состоит в связывании с каждым файлом структуры данных, называемой i-узлом ( index node - индекс-узел), содержащей атрибуты файла и адреса блоков файла. [29]
Первый реквизит - старшие пять тетрад - предназначен для хранения контрольной суммы служебной области всех записей файла, которая определяется как сумма всех отдельных контрольных сумм служебной области каждой записи или блока файла. [30]