Понятие и назначение файловой системы. Файловая система

30.10.2019 Роутеры и модемы

Файловые системы. Типы файловых систем. Операции с файлами. Каталоги. Операции с каталогами.

Файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.

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

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

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

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

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

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

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

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

Широко известны следующие файловые системы:

    файловая система операционной системы MS - DOS , в основу которой положена таблица размещения файлов - FAT ( File Allocation Table ).

Таблица содержит сведения о расположении всех файлов (каждый файл делится на кластеры в соответствии с наличием свободного места на диске, кластеры одного файла не обязательно расположены рядом). Файловая система MS-DOS имеет значительные ограничения и недостатки, например, под имя файла отводится 12 байт, работа с жестким диском большого объема приводит к значительной фрагментации файлов;

Основные функции в такой ФС нацелены на решение следующих задач:

    именование файлов;

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

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

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

    OS /2 , называемая HPFS ( High - Performance File System - быстродействующая файловая система).

Обеспечивает возможность иметь имя файла до 254 символов. Файлы, записанные на диск, имеют минимальную фрагментацию. Может работать с файлами, записанными в MS DOS;

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

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

    файловая система операционной системы Windows 95

Имеет уровневую структуру, что позволяет поддерживать одновременно несколько файловых систем. Старая файловая система MS-DOS поддерживается непосредственно, а файловые системы разработанные не фирмой Microsoft , поддерживаются с помощью специальных модулей . Имеется возможность использовать длинные (до 254 символов) имена файлов.

    файловые системы операционной системы Unix

Они обеспечивают унифицированный способ доступа к файловым системам ввода-вывода.

Права доступа к файлу практически определяют права доступа к системе (владелец файла – пользователь, который его создал).

Типы файлов

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

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

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

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

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

Иерархическая структура файловой системы

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

Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог (рис. 7.3, б), и сеть - если файл может входить сразу в несколько каталогов (рис. 7.3, в). Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX - сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем ( root ).

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

Частным случаем иерархической структуры является одноуровневая организация, когда все файлы входят в один каталог (рис. 7.3, а).

Имена файлов

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

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

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

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

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

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

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

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

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

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

    тип файла (обычный файл, каталог, специальный файл и т. п.);

    владелец файла;

    создатель файла;

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

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

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

    текущий размер файла;

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

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

    признак «скрытый файл»;

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

    признак «архивный файл»;

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

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

    признак блокировки;

    длина записи в файле;

    указатель на ключевое поле в записи;

    длина ключа.

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

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

Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS (рис. 7.6, а). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R - только для чтения, А - архивный, Н - скрытый, S - системный.

Рис. 7.6. Структура каталогов: а - структура записи каталога MS-DOS (32 байта), б - структура записи каталога ОС UNIX

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

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

Операции над файлами

Большинство современных ОС рассматривают файл как неструктурированную последовательность байт переменной длины. В стандарте POSIX над файлом определены следующие операции:

    int open ( char * fname , int flags , mode _ t mode )

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

Параметр char * fname задает имя файла.int flags - это битовая маска, определяющая режим открытия файла.Файл может быть открыт только на чтение, только на запись и начтение и запись; кроме того, можно открывать существующий файл,а можно пытаться создать новый файл нулевой длины.Необязательный третий параметр mode используется толькопри создании файла и задает атрибуты этого файла.

    off _ t lseek ( int handle , off _ t offset , int whence )

Эта операция перемещает указатель чтения/записи в файле.Параметр offset задает количество байт, на которое нужно сместитьуказатель, а параметр whence - откуда отсчитывать смещение.Предполагается, что смещение можно отсчитывать от начала файла(SEEK_SET), от его конца (SEEK_END) и от текущегоположения указателя (SEEK_CUR). Операция возвращает положениеуказателя, отсчитываемое от начала файла. Таким образом, вызовlseek(handle, 0, SEEK_CUR) возвратит текущее положение указателя,не передвигая его.

    int read(int handle, char * where, size_t how_much)

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

    int write(int handle, char * what, size_t how_much)

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

Если файл открывался только для чтения, вызов write возвратит ошибку.

    int ioctl(int handle, int cmd, ...) ; int fcntl ( int handle , int cmd , ...)

Дополнительные операции над файлом. Первоначально, по-видимому,предполагалось, что ioctl - это операции над самим файлом,а fcntl - это операции над дескриптором открытого файла,но потом историческое развитие несколько перемешало функции этих системныхвызовов. Стандарт POSIX определяет некоторые операции как наддескриптором, например дублирование (в результате этой операции мы получаемдва дескриптора, связанных с одним и тем же файлом), так и над самим файлом,например, операцию truncate - обрезать файл до заданной длины.В большинстве версий Unix операцию truncate можноиспользовать и для вырезания данных из середины файла. При считывании данныхиз такой вырезанной области считываются нули, а сама эта область незанимает физического места на диске.

Важной операцией является блокировка участков файла.Стандарт POSIX предлагает для этой целибиблиотечную функцию, но в системах семейства Unix этафункция реализована через вызов fcntl.

Большинство реализаций стандарта POSIX предлагает и своидополнительные операции. Так, в Unix SVR 4 этими операциямиможно устанавливать синхронную или отложенную запись и т.д.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

Отображение участка файла в виртуальное адресное пространство процесса.Параметр prot задает права доступа к отображенному участку:на чтение, запись и исполнение. Отображение может происходитьна заданный виртуальный адрес, или же система может выбирать адрес дляотображения сама.

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

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

Примерно та же модель работы с файлами принята в CP / M ,а набор файловых системных вызовов MS DOS фактическископирован с вызовов Unix v 7 . В свою очередь, OS /2 и Windows NT унаследовали принципы работы с файламинепосредственно от MS DOS .

Напротив, в системах, не имеющих Unix в родословной,может использоваться несколько иная трактовка понятия файла.Чаще всего файл трактуется как набор записей. Обычно система поддерживаетзаписи как постоянной длины, так и переменной. Например, текстовый файлинтерпретируется как файл с записями переменной длины, а каждой строке текстасоответствует одна запись. Такова модель работы с файлами в VMS и в ОС линии OS /360 -MVS фирмы IBM.

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

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

Непосредственное взаимодействие с диском - прерогатива компонента системы ввода-вывода ОС , называемого драйвером диска.

Файловая система для пользователя обеспечивает следующие возможности:

§ обращение к файлам по символьным именам (т.е. без имен физических устройств) - т.е. обеспечение независимости файлов от устройств;

§ создания, модификации и уничтожения файлов - т.е. предоставление средств манипуляции файлами;

§ задания и использования удобных структур файлов для прикладных программ и организация передачи информации между файлами;

§ сохранения и восстановления информации;

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

§ защиты информации от несанкционированного доступа (файловая система может предусматривать даже шифровку данных);

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

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

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

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


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

§ Последовательный файл

§ Файл прямого доступа

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

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

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

Основные операции над файлами:

§ Создание файла

§ Удаление файла

§ Открытие файла. Открытие файла перед его использованием является процедурой создания дескриптора или управляющего блока файла.

§ Закрытие файла. Если работа с файлом завершена, то файл нужно закрыть, чтобы освободить место в таблицах файловой системы.

§ Чтение данных из файла.

§ Запись данных в файл

Есть и другие операции, например переименование файла, получение атрибутов файла и т. д.

ОС предоставляет также набор операций для работы с директориями, и хотя директории - это файлы, логика работы с ними имеет отличия:

§ Создание директории.

§ Удаление директории.

§ Открытие директории.

§ Закрытие директории.

§ Поиск в директории.

§ Получение списка файлов в каталоге.

§ Переименование.

§ Создание файла. При создании нового файла необходимо добавить в каталог соответствующий элемент.

§ Удаление файла. Удаление из каталога соответствующего элемента.

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

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

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

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

§ Связное распределение внешней памяти.

§ Несвязное (блочное) распределение внешней памяти.

Существует несколько распространенных способов реализации систем поблочного распределения:

§ цепочки блоков;

§ цепочки индексных блоков;

§ таблицы отображения блоков.

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

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

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

Тестовые задания

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

В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла, могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix), адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием называется индексацией и является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов.

Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и указание о местоположении данного блока. В современных ОС файлы обычно представляют собой неструктурированную последовательность байтов (длина записи равна 1) и считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла. Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла. Базовой операцией, выполняемой по отношению к файлу, является чтение блока с диска и перенос его в буфер, находящийся в основной памяти.



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

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

Функции файловых систем

Файлы управляются ОС. То, как они структурированы, поименованы, используются, защищены, реализованы – одна из главных тем проектирования ОС.

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

В широком смысле понятие «файловая система» включает:

· совокупность всех файлов на диске,

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

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

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

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти

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

3. Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера

4. Обеспечение защиты от НСД.

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

6. Обеспечение высокой производительности.

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

Имена файлов

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

Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c(файл, содержащий текст программы на языке Си) или autoexec.bat (файл, содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями.

Пользователи (или процессы) дают файлам символьные имена, при этом учитываются накладываемые ОС ограничения, как на используемые в имени символы, так и на длину имени. Например, в ОС Unix учитывается регистр при вводе имени файла (case sensitive), а в MS-DOS - нет. В популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Так, в соответствии со стандартом POSIX, в ОС UNIX допускаются имена длиной до 255 символов, та же самая длина устанавливается для имен файлов и в ОС Windows NT для файловой системы NTFS.

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

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

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

Типы файлов

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

Обычные файлы в свою очередь подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы. Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями.cрр, .pas, .txt - ASCII файлы, файлы с расширениями.exe - выполнимые, файлы с расширениями.obj, .zip - бинарные и т.д.

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

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

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

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

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

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

· информация о разрешенном доступе,

· пароль для доступа к файлу,

· владелец файла,

· создатель файла,

· признак "только для чтения",

· признак "скрытый файл",

· признак "системный файл",

· признак "архивный файл",

· признак "двоичный/символьный",

· признак "временный" (удалить после завершения процесса),

· признак блокировки,

· длина записи,

· указатель на ключевое поле в записи,

· длина ключа,

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

· текущий размер файла,

· максимальный размер файла.

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

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

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

Рис. 36. Вариант записи в директории MS-DOS

Рис. 37. Вариант записи в директории Unix

Когда система открывает файл, она ищет имя файла в директории. Затем извлекаются атрибуты и адреса блоков файла на диске или непосредственно из записи в директории или из структуры, на которую запись в директории указывает. Эта информация помещается в системную таблицу в главной памяти. Все последующие ссылки на этот файл используют эту информацию.

Число директорий зависит от системы. В ранних ОС имелась только одна корневая директория, затем появились директории для пользователей (по одной директории на пользователя). В современных ОС используется произвольная структура дерева директорий.

Каталоги могут образовывать иерархическую структуру за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня (рис. 38). Иерархия каталогов может быть деревом или сетью.

Рис. 38. Логическая организация файловой системы
а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)

Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX"е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.

Поиск в директории

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

Линейный поиск

Совокупность записей о файлах в директории является линейным списком символьных имен файлов. Существует несколько стратегий просмотра такого списка. Простейшей из них является линейный поиск. Директория просматривается с самого начала, пока не встретится нужное имя файла. Хотя это наименее эффективный способ поиска, оказывается, что в большинстве случаев он работает с приемлемой производительностью. Например, авторы Unix утверждали, что вполне достаточно линейного поиска. По-видимому, это связано с тем, что на фоне относительно медленного доступа к диску, некоторые задержки, возникающие в процессе сканирования списка несущественны. Метод прост, но требует временных затрат. Для создания нового файла вначале нужно просканировать директорию на наличие такого же имени. Затем, имя нового файла вставляется в конец директории (если, разумеется, файл с таким же именем в директории не существует, в противном случае нужно информировать пользователя). Для удаления файла нужно также выполнить поиск его имени в списке и пометить запись как неиспользуемую. Реальный недостаток данного метода - линейный поиск файла. Информация о структуре директории используется часто, и плохая реализация будет замечена пользователями. Можно свести поиск к бинарному, если отсортировать список файлов. Однако это усложнит создание и удаление файлов, так как требуется перемещения большого объема информации.

Хеш таблица

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

Другие методы поиска

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

Файловая система – это совокупность средств и правил размещения и перемещения файлов на внешних носителях.

Поскольку файл – это набор данных, то файловая система – это система управления данными.

Расположение файлов на жестком диске

Жесткий диск разбивается на сектора. Емкость дорожки в пределах сектора обычно равна 512 байт.

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

Существуют файловые системы с фрагментированным и не фрагментированным расположением файла.

Не фрагментированное расположение файла

Файл располагается в смежных кластерах

Фрагментированное расположение файла

Файл может располагаться в несмежных кластерах.

В ФС с не фрагментированным расположением файла чтение/запись данных происходит быстрее, так как позиционирование магнитной головки диска производится лишь один раз – на первый кластер файла.

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

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

Файловые системы ОС Windows являются системами с фрагментированным расположением файла.

Диски, папки, файлы. Логическая структура файловой системы

Системы учета файлов в современных файловых системах как правило строятся по иерархическому принципу: диск (устройство памяти) – папка – файл. Дискам (устройствам) в системе даются логические имена. Например, один физический жесткий диск обычно при форматировании разбивается на несколько логических с именами C, D, E..., устройство оптических дисков получает логическое имя F и т.д.

Папка может содержать папки и файлы. Данные хранятся только в файлах.

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

Путь к файлу – это последовательность папок, в которых находится файл. Имена папок в пути к файлу разделяются символом "\" – "слэш".

Полное имя файла состоит из пути к файлу и собственно имени файла. Например:

    D:\Факультет\Группа\Иванов\реферат.doc;

    C:\WINDOWS\MEDIA\ringin.wav.

Так, в первом примере путь к файлу: D:\Факультет\Группа\Иванов, имя файла: реферат.doc.

23. Параметры файлов

К параметрам файлов относятся:

    имя файла;

    тип файла;

  • дата создания;

    дата последнего изменения;

    атрибуты.

Имя файла служит для идентификации файла. В ОС Windows имя может содержать до 255 символов, в том числе символы русского алфавита, цифры, специальные символы (за исключением некоторых). Например:

Мой файл 25

Символы после последней точки образуют так называемое расширение имени и определяют тип файла. Расширение обычно присваивает та программа, с помощью которой создается файл. Например: .doc – присваивает MS Word;

Xls – присваивает Excel;

Bmp – присваивает графический редактор Paint.

Тип файла свидетельствует о характере хранимых данных. Например:

документ MS Word;

книга Excel;

растровый рисунок bmp;

звукозапись в формате mp3.

Операции над папками и файлами

Здесь мы имеем в виду только те операции, которые выполняются средствами файловой системы. А средства файловой системы работают с файлами как единым целым, не пытаясь воздействовать на их содержимое. Итак, это:

    создание новой папки;

    удаление папки (файла);

    копирование папки (файла);

    перемещение папки (файла);

    переименование папки (файла).

Все операции, кроме операции создания, выполняются с помощью одних и тех же средств (средств файловой системы). Новые папки также создаются средствами файловой системы. Файлы же, как правило, создаются прикладными программами.

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

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

Саморазмножение – создание вирусом своих копий, внедрение их в др. программы или файлы.

Сп-бы защиты:

    проверка носителей с помощью антивирусных программ

    отказ от работы с носителями сомнительного происхождения

    немедленное удаление сомнительных ненужных программ, полученных по Интернету.

Виды антивирусных программ: сканеры и ревизоры.

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

Меры защиты:

1) профилактика

2) диагностика

3) лечение.

Виды антивир. программ:

1) Детекторы – обеспечивают поиск и обнаружение вирусов в оперативной памяти и на внешних носителях. недостатки: находят только те вирусы, которые известны разработчикам таких программ.

2) Доктора или фаги, программы-вакцины – обнаруживают и обезвреживают вирусы, т.е. удаляют из файла тело программы вируса, возвращая файлы в исх. состояние. Требуется регулярное обновление.

3) Ревизор - запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исх.

4) Фильтры или сторожа - контролируют опасные действия, характерные для вирусных программ, и запрашивают подтверждение на их выполнение.

5) Вакцины или иммунизаторы – предотвращают заражение рядом известных вирусов, путем их вакцинации.

Файловая система ЭВМ, как правило, имеет несколько дисков. Каждому диску присваивается имя, которое задается латинской буквой с двоеточием, например, А:, В:, С: и т. д. Стандартно принято, что А: и В: - это накопители на гибких магнитных дисках, а диски С:, D: и т. д. - жесткие диски, накопители на оптических дисках или электронные диски.

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

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

Диск, на котором записана операционная система, называется системным (или загрузочным) диском. В качестве загрузочного диска чаще всего используется жесткий диск С:. При лечении вирусов, системных сбоях загрузка операционной системы часто осуществляется с гибкого диска.

Выпускаются оптические диски, которые также могут быть загрузочными.

Форматирование - это подготовка диска для записи информации.

Во время форматирования на диск записывается служебная информация (делается разметка), которая затем используется для записи и чтения информации, коррекции скорости вращения диска. Разметка производится с помощью электромагнитного поля, создаваемого записывающей головкой дисковода. Запись информации осуществляется по дорожкам, причем каждая дорожка разбивается на секторы, например, по 1024 байта.

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

Загрузочный сектор (Boot Record) размещается на каждом диске в логическом секторе с номером 0. Он содержит данные о формате диска, а также короткую программу, используемую в процедуре начальной загрузки операционной системы.

Загрузочный сектор создается во время форматирования диска. Если диск подготовлен как системный (загрузочный), то загрузочный сектор содержит программу загрузки операционной системы. В противном случае он содержит программу, которая при попытке загрузки с этого диска операционной системы выводит сообщение о том, что данный диск не является системным.

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

Файл обычно отождествляют с участком памяти (ВЗУ, ОЗУ, ПЗУ), где размещены логически связанные данные, имеющие общее имя. Файл хранится на носителе информации в двоичной системе счисления, и для ОС он представляется как совокупность связанных байтов.

В файлах могут храниться тексты программ, документы, данные и т. д.

Если файл большой, то он может занимать несколько дорожек.

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

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

Имена файлов регистрируются на магнитных и оптических дисках в папках, каталогах (или директориях). Термин «каталог» используется в операционных системах семейства DOS, термин «папка» - в операционных системах семейства Windows.

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

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

Назначение и функционирование файловой системы

В операционных системах файловая система относится к основным понятиям и определяется как общая система, которая устанавливает правила присвоения имен файлам, хранение, организацию и обработку файлов на носителях информации. Носители информации (ЗУ) реализуются в виде соответствующих технических средств, для хранения информации.

Таким образом, файловая система - это часть операционной системы, которая обеспечивает запись и чтение файлов на носителях информации (внешних ЗУ), т. е. представляет пользователю удобный интерфейс при работе с данными, хранящимися на ЗУ. Фирма Microsoft разработала несколько файловых систем для персональных компьютеров, таких как FAT, FAT16, FAT32, NTFS и т. д. Функционирование файловой системы реализуется в виде многоуровневого процесса, где каждый уровень представляет набор функций предшествующему уровню и обращается к последующему с соответствующим запросом.

Рис.

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

Файловая система FAT

формат команда кодовый файловый

Файловая система FAT используется ОС MS DOS и ОС Windows для упорядочения файлов и управления ими. В основу данной файловой системы положена таблица размещения FAT(File Allocation Table), которая представляет собой структуру данных, создаваемую ОС при форматировании данных на ЗУ. ОС хранит в таблице размещения файлов сведения о каждом файле, чтобы при необходимости можно было извлечь нужный файл.

Указанная файловая система вполне удовлетворяла требованиям своего времени в основном потому, что сама по себе очень компактна и проста. Благодаря этому она успешно использовалась и используется в НГМД. Для хранения файла в FAT может использоваться один или несколько кластеров, стандартный размер кластера 512 байт.

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