Главная страница
Навигация по странице:

  • Цели и задачи файловой системы

  • Атрибуты файлов

  • Ввод-вывод. Ввод вывод и файловая система


    Скачать 44.78 Kb.
    НазваниеВвод вывод и файловая система
    Дата30.08.2019
    Размер44.78 Kb.
    Формат файлаdocx
    Имя файлаВвод-вывод.docx
    ТипДокументы
    #85559
    страница2 из 3
    1   2   3

    Логическая организация файловой системы
    Одной из основных задач операционной системы является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью. Логическая модель файловой системы материализуется в виде дерева каталогов, выводимого на экран такими утилитами, как Norton Commander или Windows Explorer, в символьных составных именах файлов, в командах работы с файлами. Базовым элементом этой модели является файл, который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.
    Цели и задачи файловой системы
    Файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Файлы хранятся в памяти, на зависящей от энергопитания, обычно — на магнитных дисках. Однако нет правил без исключений. Одним из таких исключений является т. н. электронный диск, когда в оперативной памяти создаётся структура, имитирующая файловую систему.

    Основные цели использования файла:

    - Долговременное и надёжное хранение информации. Долговременность достигается за счет использования запоминающих устройств, не зависящих от питания, а высокая надёжность определяется средствами защиты доступа к файлам и общей организацией программного кода ОС, при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах.

    - Совместное использование информации. Файлы обеспечивают естественный и лёгкий способ разделения информации между приложениями и пользователями за счет наличия понятного человеку символьного имени и постоянства хранимой информации и расположения файла. Пользователь всегда должен иметь удобные средства работы с файлами, включая каталоги справочники, объединяющие файлы в группы, средства поиска файлов по признакам, набор команд для создания, модификации и удаления файлов. Файл может быть создан одним пользователем, а затем использоваться совсем другим пользователем, при этом создатель файла или администратор могут определить права доступа к нему других пользователей. Эти цели реализуются в ОС файловой системой.

    Файловая система (ФС) - это часть операционной; системы включающая:

    - Совокупность всех файлов на диске;

    - Наборы структур данных, используемых для управления файлами,

    такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске.

    - Комплекс системных программных средств, реализующих различные операции над файлами, такие как создание, уничтожение, чтение, запись, именование и поиск файлов.

    Файловая система позволяет программам обходится набором достаточно простых операций для выполнения достаточно простых операций над некоторым абстрактным объектом, представляющим файл. При этом программистам не нужно иметь дело с деталями действительного расположения данных на диске, буферизацией данных и другими низкоуровневыми проблемами передачи данных с низкоуровневого запоминающего устройства. Все эти функции файловая система берет на себя. Файловая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов и соответствующие адреса во внешней памяти, обеспечивает доступ к данным, поддерживает разделение, защиту и восстановление файлов.

    Таким образом, файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранилища данных, и создающего для программ более простую логическую модель этого хранилища, а также предоставляя им набор наиболее удобных в использовании команд для манипулирования файлами.

    Задачи, решаемые ФС, зависят от способа организации вычислительного процесса в целом. Самый простой тип – ФС в однопользовательских и однопрограммных ОС, к числу которых относится, например MS - DOS.

    Основные функции такой ОС нацелены на:

    - Именование файлов.

    - Программный интерфейс для приложений.

    - Отображения логической модели файловой системы на физическую

    организацию хранилища данных.

    - Устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств.

    Задачи ФС усложняются в операционных однопользовательских мультипрограммных ОС, которые, хотя и предназначены для работы одного пользователя, но дают ему возможность запускать одновременно несколько процессов. Озчон иэ первых ОС этого типа стала OS/2. К перечисленным выше задачам добавляется новая задача совместного доступа к файлу из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, файловая система должна решать весь комплекс проблем, связанных с такими ресурсами. В частности, в ФС должны быть предусмотрены средства блокировки файла и его частей, предотвращения гонок, исключение тупиков, согласование копий и т. п.

    В многопользовательских системах появляется ещё одна задача: защита файла одного пользователя от несанкционированного доступа другого пользователя.

    Ещё более сложными становятся функции ФС, которая работает в составе сетевой ОС.
    Типы файлов
    Файловые системы поддерживают несколько функционально различных типов файлов, в число которых, как правило, входят обычные файлы, файлы - каталоги, специальные файлы, именованные конвейеры, отображаемые в память файлы и другие.

    Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создаёт текстовые файлы, состоящие из трех символов, представленных в каком - либо коде. Это могут быть документы, исходные тексты программ, и т. п. Текстовые файлы можно прочитать на экране или распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.

    Каталоги – это особый тип файлов, которые содержат системную справочную информацию о наборе файлов, сгруппированных пользователями по какому - либо неформальному признаку (например, в одну группу объединяются файлы, содержащие документы одного договора, или файлы, составляющие один программный пакет). Во многих операционных системах в каталог могут входить файлы любых типов, в том числе другие каталоги, за счёт чего образуется древовидная структура, удобная для поиска. Каталога устанавливают соответствие между именами файлов и их характеристиками, используемыми файловой системой для управления файлами. В число таких характеристик входит, в частности, информация (или указатель на другую структуру, содержащую эти данные) о типе файла и расположении его на диске, правах доступа к файлу и датах его создания и модификации. Во всех остальных отношениях каталоги рассматриваются файловой системой как обычные файлы.

    Специальные файлы - это фиктивные файлы, ассоциированные с устройствами ввода вывода, которые используются для унификации механизма доступа к файлам и внешним устройствам. Специальные файлы позволяют пользователю выполнять операции ввода — вывода посредством обычных команд записи в файл или чтения из файла. Эти команды обрабатываются сначала программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются операционной системой в команды управления соответствующим устройством.

    Современные файловые системы поддерживают и другие типы файлов, такие как символьные связи, именованные конвейеры, отображаемые в память файлы.

    Имена файлов

    Все типы файлов имеют символьные имена. В иерархически организованных файловых системах обычно используются три типа имени файлов: простые, составные и относительные.

    Простое или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС, как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имён файлов ограничивалась схемой 8*3 (8 символов — собственно имя, 3 символа — расширение имени) а в файловой системе s5 поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко" запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT 32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

    Примеры простых имён файлов и каталогов:

    Quest_ul. Doc

    Tack - entrant. Exe

    Приложение к CD 254L на русском языке. Doc

    Installable filesystem manager. Doc

    В иерархических файловых системах разным файлам разрешено иметь простые одинаковые символьные имена при условии, что они принадлежат разным каталогам. То есть здесь работает схема «много файлов — одно простое имя». Для однозначной идентификации файла в таких системах используется так называемое полное имя.

    Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используются прямой или обратный слеш, при этом принято не указывать имя корневого каталога.

    В древовидной файловой структуре между файлом и его полным именем имеется взаимно однозначное соответствие «один файл - одно полное имя». В файловых системах, имеющих сетевую структуру, файл может входить в несколько каталогов, а значит, иметь несколько полных имён; здесь справедливо соответствие «один файл — много полных имён». В обоих случаях файл однозначно идентифицируется полным именем.

    Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог».

    Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причём выбирается этот каталог самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имён пользователь идентифицирует файл цепочкой имён каталогов, через которые проходит маршрут от текущего каталога до нужного файла.
    Атрибуты файлов
    Понятие «файл» включает не только хранимые им данные и имя, но и атрибуты. Атрибуты - это информация, описывающая свойства файла. Примеры возможных атрибутов файла:

    - Тип файла (обычный файл, каталог, специальный файл и т. п.) > Владелец файла ' - Создатель файла

    - Пароль для доступа к файлу

    - Информация о разрешенных операциях доступа к файлу

    - Время создания, последнего доступа и последнего изменения

    - Текущий размер файла

    - Максимальный размер файла

    - Признак «только «для чтения»

    - Признак «скрытый файл»

    - Признак «системный файл»

    - Признак «архивный файл»

    - Признак «двоичный / символьный»

    - Признак «временный файл» (удалить после завершения процесса)

    - Признак блокировки

    - Длина записи в файле

    - Указатель на ключевое поле в записи

    - Длина ключа

    Набор атрибутов файла определяется спецификой файловой системы; в файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов. Например, в файловых системах, поддерживающих неструктурированные файлы, нет необходимости использовать три последних атрибута в приведенном списке, связанных со структуризацией файла. В однопользовательской ОС в наборе атрибутов будут отсутствовать характеристики, имеющие отношение к пользователям и защите, такие как владелец файла, создатель файла, пароль для доступа к файлу, информация о разрешенном доступе к файлу.

    Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения всех атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается;

    Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS - DOS. Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержаться только ссылки на эта таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, (так называется в ufs, таблица, в которой сосредоточены значения атрибутов файла).

    В том и в другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора.

    Логическая организация файлов

    В общем случае данные, содержащиеся в файле, имеют некоторую логическую структуру. Эта структура является базой при разработке программы, предназначенной для обработки этих данных. Например, чтобы текст мог быть правильно выведен на экран, программа должна иметь возможность выделить отдельные слова, строки, абзацы и т. д. Признаками, отделяющими один структурный элемент от другого, могут служить определённые кодовые последовательности или просто известные программе значения смещений этих структурных элементов относительно начала файла. Поддержание структуры данных может быть либо целиком возложено на приложение, либо в той или иной степени эту работу может взять на себя файловая система.

    В первом случае, когда все действия, связанные со структуризацией и интерпретацией содержимого файла целиком относятся к ведению приложения, файл представляется ФС неструктурированной последовательностью данных. Приложение формулирует запросы к файловой системе на ввод - вывод, используя общие для всех приложений системные средства, например, указывая смещение от начала файла и количество байт которые необходимо считать или записать. Поступивший к приложению поток байт интерпретируется в соответствии с заложенной в программе логикой. Например, компилятор генерирует, а редактор связей воспринимает вполне определённый формат объектного модуля программы. При этом формат файла, в котором хранится объектный модуль, известен только этим программам. Подчеркнём, что интерпретация данных никак не связана с действительным способом их хранения в файловой системе.

    Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком), байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС, в том числе в MS -DOS, Windows NT / 2000, Net Ware. Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле.

    Другая модель файла, которая применялась в ОС OS/360, DBS RSX, VMS, а в настоящее время используется достаточно редко, - это структурированный файл. В этом случае поддержание структуры файла поручается файловой системе. Файловая система видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросами на ввод - вывод на уровне записей, например, «считать запись 25 из файла File. Doc». ФС должна обладать информацией о структуре файла, достаточной для того, чтобы выделить'любую запись. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащихся в этой записи, выполняется приложением. Развитием этого подхода стали системы управления базами данных (СУБД), которые поддерживают не только сложную структуру данных, но и взаимосвязи между ними.

    Логическая запись является наименьшим элементом данных, которым может оперировать программист при организации обмена с внешним устройством. Даже, если физический обмен с устройством осуществляется большими единицами, операционная система должна обеспечивать программисту доступ к отдельной логической записи.

    Файловая система может использовать два способа доступа к логическим записям: читать или записывать логические записи последовательно (последовательный доступ) или позиционировать файл на запись с указанным номером (прямой доступ).

    Очевидно, что ОС не может поддерживать все возможные способы структурирования данных в файле, поэтому в тех ОС, в которых вообще существует поддержка логической структуризации файлов, она существует для небольшого числа широко распространенных схем логической организации файла.

    К числу таких способов структуризации относится представление данных в виде записей, длина которых фиксирована в пределах файла. В таком случае доступ к некоторой записи А осуществляется либо путём последовательного чтения (А - 1) предшествующих записей, либо прямо по адресу, вычисленному по её порядковому номеру. Например, если R - длина записи, то начальный адрес записи А = R* А. Заметим, что при такой логической организации размер записи фиксирован в пределах файла, а записи в разных файлах, принадлежащих одной и той же -файловой системе, могут иметь разный размер.

    Другой способ структуризации состоит в представлении данных в виде последовательности записей, размер которых изменяется в пределах одного файла. При такой организации данных для поиска нужной записи система должна последовательно считать все предшествующие записи. Вычислить адрес нужной записи по её номеру при такой логической организации невозможно, а, следовательно, не может быть применён более эффективный метод прямого доступа.

    Файлы, доступ к записям которых осуществляется последовательно, по номерам позиций, называются неиндексированными, или последовательными.
    1   2   3


    написать администратору сайта