С.Д. Кузнецов - Основы баз данных (1121716), страница 5
Текст из файла (страница 5)
1.2). Размер логического блока файла совпадает с размером физического блока диска или кратен ему; обычно размер логического блока выбирается равным размеру страницы виртуальной памяти, поддерживаемой аппаратурой компьютера совместно с операционной системой. В некоторых файловых системах базовый уровень был доступен пользователю, но чаще он прикрывачся некоторым более высоким уровнем, стандартным для пользователей.
Существуют два основных подхода. При первом подходе, свойственном, например, файловым системам операционных систем компании РЕС КЬХ и ЧМ5, пользователи представляют файл как последовательность записей. Каждая запись — это последовательность байтов, имеющая постоянный или переменный размер.
Можно читать или писать записи последовательно либо позиционировать файл на запись с указанным номером. Некоторые файловые системы позволяют структурировать записи на поля и объявлять некие поля ключами записи. 20 Лекция 1 Эволюция устройств внешней памяти и программных систем управления данными Рис. 1.2. Схематичное изображение базового Файла В таких файловых системах можно потребовать выборку записи из файла по ее заданному ключу.
Естественно, в этом случае файловая система поддерживает в том же 1или другом, служебном) базовом файле дополнительные, невидимые пользователю, служебные структуры данных. Распространенные способы организации ключевых файлов основываются на технике хэширования и В-деревьев. Существуют и многоключевые способы организации файлов (у одного Файла объявляется несколько ключей, и можно выбирать записи по значению каждого ключа). Второй подход, получивший распространение вместе с операционной системой 1))к)1Х, состоит в том, что любой файл представляется как непрерывная последовательность байтов. Из файла можно прочитать указанное число байтов, либо начиная с его начала, либо предварительно выполнив его позиционирование на байт с указанным номером. Аналогично можно записать указанное число байтов либо в конец файла, либо предварительно выполнив позиционирование файла.
Тем не менее заметим, что скрытым от пользователя, но существующим во всех разновидностях файловых систем ОС 1))к)!Х является базовое блочное представление файла. Конечно, в обоих случаях можно обеспечить набор преобразующих функций, приводящих представление файла к другому виду. Примером тому может служить поддержка стандартной файловой среды 1))к) 1Х в среде операционных систем компании ВЕС. Логическая структура файловых систем и именование файлов Во всех современных Файловых системах обеспечивается многоуровневое именование файлов за счет наличия во внешней памяти каталогов— дополнительных Файлов со специальной структурой.
Каждый каталог содержит имена каталогов иггили файлов, хранящихся в данном каталоге. 21 Основы баз данных Курс Таким образом, полное имя файла состоит из списка имен каталогов плюс имя файла в каталоге, непосредственно содержащем данный файл. Поддержка многоуровневой схемы именования файлов обеспечивает несколько преимуществ, основным из которых является простая и удобная схема логической классификации файлов и генерации их имен. Можно сопоставить каталог или цепочку каталогов с пользователем, подразделением, проектом и т. д. и затем образовывать в этом каталоге файлы или каталоги, не опасаясь коллизий с именами других файлов или каталогов.
Разница между способами именования файлов в разных файловых системах состоит в том, с чего начинается эта цепочка имен. В любом случае первое имя должно соответствовать корневому катапогу файловой системы. Вопрос заключается в том, как сопоставить этому имени корневой каталог — где его искать? В связи с этим имеются два радикально различных подхода. Во многих системах управления файлами требуется, чтобы каждый архив файлов (полное дерево каталогов) целиком располагался на одном дисковом пакете или логическом диске — разделе физического дискового пакета, логически представляемом в виде отдельного диска с помощью средств операционной системы.
В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск. Такой способ именования использовался в файловых системах компаний 1ВМ и (эЕС; очень близки к этому и файловые системы, реализованные в операционных системах семейства %!пг(оууз компании М!сгозой, Можно назвать такую организацию поддержкой изолированных файловых систем. Другой крайний вариант был реализован в файловых системах операционной системы Мц!Век Эта система заслуживает отдельного разговора, в ней был реализован целый ряд оригинальных идей, но мы остановимся только на особенностях организации архива файлов. В файловой системе Мц!Вез пользователям обеспечивалась возможность представлять всю совокупность каталогов и файлов в виде единого дерева.
Полное имя файла начиналось с имени корневого каталога, и пользователь не обязан был заботиться об установке на дисковое устройство каких-либо конкретных дисков. Сама система, выполняя поиск файла по его имени, запрашивала у оператора установку необходимых дисков. Такую файловую систему можно назвать полностью централизованной. Конечно, во многом централизованные файловые системы удобнее изолированных: система управления файлами выполняет больше рутинной работы. В частности, администратор файловой системы автоматически оповещается о потребности установки требуемых дисковых пакетов; система обеспечивает равномерное распределение памяти на известных ей дисковых томах; возможна организация автоматического перемешения редко используемых файлов на более медленные носители внешней памяти; облегчается рутинная работа, связанная с резервным копированием.
22 Лекции 1 Эволюции устройств внешней памвти и программных систем управления данными Но в таких системах возникают существенные проблемы, если требуется перенести поддерево файловой системы на другую вычислительную установку. Поскольку файлы и каталоги любого логического поддерева могут быть физически разбросаны по разным дисковым пакетам и даже магнитным лентам, для такого переноса требуется специальная утилита, собирающая все объекты требуемого поддерева на одном внешнем носителе, не входящем в состав штатных устройств централиюванной файловой системы. Конечно, даже при наличии такой утилиты выполнение процедуры физической сборки требует существенного времени.
Компромиссное решение применяется в файловых системах ОС ~3)х)!Х. На базовом уровне в этих файловых системах поддерживаются изолированные архивы файлов. Один из таких архивов объявляется корневой файловой системой. Это делается на этапе генерации операционной системы, и после запуска операционная система «знает», на каком дисковом устройстве (физическом или логическом) располагается корневая файловая система. После запуска системы можно «смонтироватьа корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему. Технически это осуществляется посредством создания в корневой файловой системе специальных пустых каталогов (точек монтирования). Специальный системный вызов тола ОС () й)!Х позволяет подключить к одному из пустых каталогов корневой каталог указанного архива файлов.
Выполнение такого действия приводит к «наложению» корневого каталога монтируемой файловой системы на каталог точки монтирования; корневой каталог приобретает имя каталога точки монтирования. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централиюванной. Если учесть, что обычно монтирование файловой системы производится при раскрутке системы (при выполнении стартового командного файла), пользователи ОС (ЗМХ, как правило, и не задумываются о происхождении обшей файловой системы. Кроме того, поддерживается системный вызов илглоилб «отторгаюший» ранее смонтированную файловую систему от общей иерархии.
Конечно, все это заметно облегчает перенос частей файловой системы на другие установки. Авторизация доступа к файлам Поскольку файловая система является общим хранилищем файлов, принадлежащих, вообще говоря, разным пользователям, системы управления файлами должны обеспечивать ивторизияию доступа к файлам. В общем виде подход состоит в том, что гю отношению к каждому зарегистрированному пользователю данной вычислительной системы для каждого 23 Основы баз данных курс существуюгцего файла указываются действия, которые разрешены или запрещены данному пользователю (так называемый мандатный способ защиты — каждый пользователь имеет отдельный мандат для работы с каждым файлом или не имеет его).
Применение мандатного способа защиты влечет за собой существенные накладные расходы, связанные с потребностью хранения избыточной информации и использованием этой информации для проверки правомочности доступа. Поэтому в большинстве современных систем управления файлами применяется подход к защите файлов, впервые реализованный в ОС )Лх)!Х (так называемый дискреционный подход). В этой системе каждому зарегистрированному пользователю соответствует пара целочисленных идентификаторов: идентификатор группы, к которой относится пользователь, и сто собственный идентификатор.