Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 42
Текст из файла (страница 42)
Например, чтобыполучить доступ к информации на диске, достаточно знать номер диска, номер поверхности,номер цилиндра и номер сектора. Но каждое устройство прямого доступа имело и своиособенности — в частности, размеры блока: у одних дисков блоки имели размер 256 байт, удругих — 512 байт, и т.д. И эти особенности должен был учитывать пользователь при работе сданными устройствами.
Чтобы разместить свой файл на диске, пользователь должен был разбитьэтот файл на блоки (в зависимости от конкретного устройства хранения), найти на дискесвободные блоки, чтобы в них разместить весь свой файл, сохранить файл и запомнитькоординаты и последовательность блоков, в которых был сохранен файл. Заметим, что дискиориентированы на массовое использование, т.е. предполагается работа с ним двух и более169пользователей, что накладывало дополнительные трудности на корректное размещение данных надиске — задачу, совершенно нетривиальную для рядового пользователя.Подобный подход к хранению данных продлился примерно до середины 60-х — начала 70х годов, когда в машинах второго поколения появился программный компонент операционнойсистемы, который получил название файловая система. Повторимся, файловая система — этокомпонент операционной системы, обеспечивающий корректный именованный доступ кданным пользователя.
Данные в файловой системе представляются в виде файлов, каждый изкоторых имеет имя. Главными словами в определении файловой системы являются именованныйдоступ и корректная работа. Последнее означает, что файловая система обеспечиваеткорректное управление свободным и занятым пространством на ВЗУ (заметим, что не обязательнона физическом устройстве: в качестве ВЗУ может выступить и виртуальное устройство), а такжезащиту от несанкционированного доступа к информации.
Большинство современных файловыхсистем обеспечивают корректную организацию распределенного доступа к одному и тому жефайлу (когда с ним могут работать два и более пользователя). Это не означает, что система будетотвечать за корректную семантику данных внутри файла: гарантируется, что система обеспечиткорректный доступ пользователей к файлу с точки зрения системной организации. Также многиесовременные файловые системы поддерживают возможность синхронизации доступа кинформации.4.1.1Структурная организация файловС точки зрения структурной организации файлов имеется целый спектр различныхподходов. Существует некоторая установившаяся систематизация методов структурнойорганизации файлов.
Рассмотрим модели в соответствии с хронологией их появления.Первой моделью файла явилась модель файла как последовательности байтов. В этомслучае содержимое файла представляется как неинтерпретируемая информация (илиинтерпретируемая примитивным образом). Задача интерпретации данных ложится напользователя. Данная модель файла наиболее распространена на сегодняшний день: большинствошироко используемых файловых систем поддерживают возможность представлять содержимоефайла как последовательности байтов, а это означает, что программные интерфейсы,обеспечивающие доступ к содержимому файла, позволяют считывать и записывать произвольныепорции данных.Следующие модели представляют файл как последовательность записей переменной ипостоянной длины.
Первая из этих моделей является аналогом магнитной ленты. Соответственно,эта организация файла и рассчитана на работу с магнитными лентами. В этом случае возникаютпроблемы, такие как коррекция данных в середине файла, вследствие чего меняется размер файла,и появляется необходимость сдвигать «хвост» файла на ленте.Модель файла как последовательности записей постоянной длины является такжеаппаратно-ориентированной: она является аналогом перфокарты. Перфокарта представляет собоюкартонный листок прямоугольной формы, на котором изображены двенадцать строк по 80позиций в каждой.
Каждая позиция соответствует одному биту информации. Соответственно,перфокарта может хранить лишь фиксированное количество данных, поэтому для отображенияколоды перфокарт в файл подходит модель файла как последовательности записейфиксированного размера (каждая запись являлась образом одной перфокарты). Данная модельимеет следующие недостатки. Во-первых, из-за того, что каждая запись имеет фиксированныйразмер, возникает внутренняя фрагментация: т.е.
если хотя бы один байт занят в записи, то занят ивесь объем записи. Также остаются проблемы, возникающие при необходимости вставить илиудалить запись из середины файла.И, наконец, модель иерархической организации файла. В данной модели организацияфайла имеет сложную логическую структуру, позволяющую организовывать динамическуюработу с данными. Одной из наиболее распространенных структур является дерево, в узлахкоторого расположены записи.
Каждая запись состоит из двух полей: поле ключа и поле данных.170В качестве ключа может выступать номер записи. Данная модель является удобной дляредактирования файла, но с другой стороны требует достаточной сложной реализации.Еще одной исторической характеристикой файлов были режимы доступа, отражавшиеорганизацию внешних устройств. Были файлы прямого доступа и файлы последовательногодоступа. Режим доступа задавался на этапе создания файла. В современных файловых системахэти режимы не используются.
Зато актуальны режимы доступа с точки зрения разрешения илизапрета на определенные операции: возможно иметь доступ только по чтению, только по записиили по чтению-записи информации в файл.4.1.2Атрибуты файловКаждый файл обладает фиксированным набором параметров, характеризующих свойства исостояния файла, причем и долговременное (стратегическое), и оперативное состояния.Совокупность этих параметров называют атрибутами файла. В набор атрибутов может входитьдостаточно большое количество параметров, и состав атрибутов зависит от конкретнойреализации системы.
Среди атрибутов часто можно встретить следующие параметры: имя файла,права доступа, персонификация (создатель/владелец), тип файла, размер записи (блока), размерфайла, указатель чтения/записи, время создания, время последней модификации, время последнегообращения, предельный размер файла и т.п.Под именем файла понимается последовательность символов, используя которыйорганизуется именованный доступ к данным файла. В одних файловых системах имя файлавоспринимается в качестве атрибута, другие ФС разделяют файл (его содержимое), имя иотдельно набор атрибутов.Следующим немаловажным атрибутом являются права доступа.
Данный атрибутхарактеризует возможность доступа к содержимому файла различным категориям пользователей.Структура категорий пользователей, по которой организуется доступ, зависит от конкретнойоперационной системы. В частности, существуют операционные системы, в которых прав доступанет: файлы доступны любому пользователю системы.Следующий атрибут — персонификация — связан с предыдущим. Соответственно,данный атрибут содержит информацию о принадлежности файла. В общем случае здесь можетнаходиться несколько параметров: например, информация о создателе файла, а также информацияо владельце файла.
Зачастую эти параметры совпадают, но возможны ситуации, когда ониотличаются.Тип файла — информация о способе организации файла и интерпретации егосодержимого. Говоря о способе организации, можно привести пример файловой системы ОС Unix,которая поддерживает разные типы файлов. Среди прочих имеются т.н. файлы устройств,соответствующие тем устройствам, которые обслуживает данная ОС; и через эти файлы устройствпроисходит фактически обращение к драйверам устройств. Совсем иначе организованырегулярные файлы, которые могут хранить различную информацию (текстовую, графическую ипр.). О различных способах организации речь пойдет ниже.Если речь идет об интерпретации, то она может быть явной и неявной, т.е. возможноуказание, как интерпретировать содержимое файла. Например, можно указать, является ли данныйфайл исполняемым или неисполняемым.
Исполняемый файл можно запустить как процесс, вотличие от неисполняемого. Таким образом, атрибут типа файла может содержатьмногоуровневую комплексную информацию.Размер записи (или размер блока). В системе имеется возможность указать, что какой-тофайл организован в виде последовательности блоков данного размера, при этом размеропределяется пользователем (пользовательским процессом). Размер может быть стационарным,когда при создании файла указывается фиксированный размер блоков, и нестационарным, когдаразмер блока задается каждый раз при открытии файла.Размер файла. Данный атрибут имеет достаточно простой смысл, заметим, что обычноразмер файла задается в байтах.171Указатель чтения/записи — это указатель, относительно которого происходит чтениеили запись информации.
В общем случае с каждым файлом ассоциируются два указателя (и начтение, и на запись), хотя бывают файловые системы, в которых используется единый указательчтения/записи. Соответственно, операции чтения/записи оперируют данными, следующими зауказателями.Среди прочих атрибутов файла возможны атрибуты, отражающие системную истатистическую информацию о файле: например, время последней модификации, времяпоследнего обращения, предельный размер файла и т.д.