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

Автор работы: Пользователь скрыл имя, 12 Декабря 2013 в 19:34, реферат

Краткое описание

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

Вложенные файлы: 1 файл

файловая система.docx

— 38.15 Кб (Скачать файл)

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

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

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

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

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

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

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

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

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

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

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

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

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

UNIX. 
 
Все, с чем работает система UNIX, она воспринимает в виде файла. Это не такое уж упрощение, как может показаться на первый взгляд. Когда разрабатывалась первая версия системы, даже прежде, чем ей дали имя, все усилия сосредоточились на создании структуры файловой системы, которая должна была быть простой и удобной в использовании. Файловая система – ключевое звено, обеспечивающее успешное применение UNIX. Это наилучший пример философии «прекрасное в малом», показывающий, какой мощи можно достичь реализацией нескольких хорошо продуманных идей. 
 
Файл представляет собой последовательность байтов. Никаких ограничений по структуре системой на файл не накладывается, и никакого смысла не приписывается его содержимому: смысл байтов зависит исключительно от программ, обрабатывающих файл. 
 
Подход UNIX к представлению управляющей информации нетрадиционен, особенно использование символа перевода строки для завершения строки. Многие системы вместо этого трактуют каждую строку как «запись», содержащую не только введенные данные, но и счетчик числа символов в строке. В других системах каждая строка завершается символами возврата каретки и перевода строки, поскольку такая последовательность необходима для вывода на большинство терминалов. 
 
UNIX не делает ни того, ни другого: нет записей и счетчиков, к тому же ни в одном файле нет никаких байтов, которые бы вы или ваша программа не поместили туда. Символ перевода строки преобразуется в два символа – возврата каретки и перевода строки при выводе на терминал, но программы должны иметь дело с одним символом перевода строки, поскольку это все, что они могут «увидеть». В большинстве случаев подобная простая схема является оптимальной. Если необходима более сложная структура, ее легко построить на базе этой, тогда как получить простое из сложного значительно трудней. В отношении каждого файла существуют права доступа, которые определяют, кто и что может делать с файлом. Если вы храните какие-то письма и не хотите, чтобы кто-то их другой их читал, вы можете изменить права доступа к каждому письму. Вы можете, наконец, просто изменить права доступа к каталогу, содержащему письма, и пресечь любые попытки вмешаться в ваши документы в ваши документы. Но в UNIX есть особый пользователь, называемый суперпользователем, который может читать или изменять любой файл в системе. Привилегии входа в систему суперпользователю обеспечивает специальное имя root (корень). Существует команда su, гарантирующая вам статус суперпользователя при условии, что вы знаете пароль при входе под именем root. 
 
Вы можете более надежно защитить вашу информацию, если воспользуетесь командой crypt. Но даже она не дает гарантии полной защиты информации.  
 
Во многом централизованные файловые системы удобнее изолированных (система управления файлами принимает на себя больше рутинной работы). Но в таких системах возникают существенные проблемы, если кому-то требуется перенести поддерево файловой системы на другую вычислительную установку. Компромиссное решение применено в файловых системах ОС UNIX. На базовом уровне в этих файловых системах поддерживаются изолированные архивы файлов. Один из этих архивов объявляется корневой файловой системой. После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему. Технически это производится с помощью заведения в корневой файловой системе специальных пустых каталогов. Специальный системный вызов курьер ОС UNIX позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Если учесть, что обычно монтирование файловой системы производится при раскрутке системы, то пользователи ОС UNIX обычно и не задумываются об исходном происхождении общей файловой системы.  
 
Поскольку файловые системы являются общим хранилищем файлов, принадлежащих, вообще говоря, разным пользователям, системы управления файлами должны обеспечивать авторизацию доступа к файлам. В общем виде подход состоит в том, что по отношению к каждому зарегистрированному пользователю данной вычислительной системы для каждого существующего файла указываются действия, которые разрешены или запрещены данному пользователю. Существовали попытки реализовать этот подход в полном объеме. Но это вызывало слишком большие накладные расходы, как по хранению избыточной информации, так и по использованию этой информации для контроля правомочности доступа.  
 
Поэтому в большинстве современных систем управления файлами применяется подход к защите файлов, впервые реализованный в ОС UNIX. В этой системе каждому зарегистрированному пользователю соответствует пара целочисленных идентификаторов: идентификатор группы, к которой относится этот пользователь, и его собственный идентификатор в группе. Соответственно, при каждом файле хранится полный идентификатор пользователя, который создал этот файл, и отмечается, какие действия с файлом может производить он сам, какие действия с файлом доступны для других пользователей той же группы, и что могут делать с файлом пользователи других групп. Эта информация очень компактна, при проверке требуется небольшое количество действий, и этот способ контроля доступа удовлетворителен в большинстве случаев.  
 
Последнее, на чем мы остановимся в связи с файлами, - это способы их использования в многопользовательской среде. Если операционная система поддерживает многопользовательский режим, вполне реальна ситуация, когда два или более пользователей одновременно пытаются работать с одним и тем же файлом. Если все эти пользователи собираются только читать файл, ничего страшного не произойдет. Но если хотя бы один из них будет изменять файл, для корректной работы этой группы требуется взаимная синхронизация.  
 
Исторически в файловых системах применялся следующий подход. В операции открытия файла (первой и обязательной операции, с которой должен начинаться сеанс работы с файлом) помимо прочих параметров указывался режим работы (чтение или изменение). Если к моменту выполнения этой операции от имени некоторой программы A файл уже находился в открытом состоянии от имени некоторой другой программы B (правильнее говорить "процесса", но мы не будем вдаваться в терминологические тонкости), причем существующий режим открытия был несовместимым с желаемым режимом (совместимы только режимы чтения), то в зависимости от особенностей системы программе A либо сообщалось о невозможности открытия файла в желаемом режиме, либо она блокировалась до тех пор, пока программа B не выполнит операцию закрытия файла.  
 
Заметим, что в ранних версиях файловой системы ОС UNIX вообще не были реализованы какие бы то ни было средства синхронизации параллельного доступа к файлам. Операция открытия файла выполнялась всегда для любого существующего файла, если данный пользователь имел соответствующие права доступа. При совместной работе синхронизацию следовало производить вне файловой системы (и особых средств для этого ОС UNIX не предоставляла). В современных реализациях файловых систем ОС UNIX по желанию пользователя поддерживается синхронизация при открытии файлов. Кроме того, существует возможность синхронизации нескольких процессов, параллельно модифицирующих один и тот же файл. Для этого введен специальный механизм синхронизационных захватов диапазонов адресов открытого файла. 
 
ОС UNIX работает на основе файловой системы FAT 16. 
 
 
Windows. 
 
Работа  с операционной системой состоит в работе с ее объектами. Основными объектами являются файлы и папки.   
 
Информация на дисках хранится в виде файлов. Файл - это набор данных, записанных на диске, и имеющий уникальное имя. Содержимым файла может быть документ, ведомость, произвольный текст, программа, таблица чисел, рисунок и т.д. По имени файла компьютер определяет, где файл находится, какая информация в нем содержится и какими программами ее можно обработать.   
 
Имя файла состоит из двух частей: самого имени и расширения, разделенных точкой, например: mycomp.txt. Имя файла задает человек, который этот файл создает. Система Windows  позволяет давать файлам «длинные» имена, в которые могут входить до 255 символов. При задании имени файла можно использовать любые символы, имеющиеся на клавиатуре, кроме некоторых «специальных» символов ( \ / : * ? “ < > | ), использующихся в особых случаях.   
 
Расширения используют стандартные. По расширению можно узнать, к какому типу относится файл, и какая информация в нем содержится. Например, все файлы программ имеют расширение либо .EXE, либо .COM, текстовые файлы – .TXT или .DOC. В среднем количество файлов на дисках на современном компьютере составляет десятки тысяч. Для того чтобы свободно ориентироваться в таком количестве объектов, их надо упорядочить. Способ размещения файлов на дисках называют файловой структурой.  
 
Для организации файлов в Windows  принята иерархическая структура. В иерархической структуре каждый элемент определяется путем, который ведет от вершины (корня) структуры к элементу.  
В основе этой структуры лежит конкретный диск (гибкий, жесткий или лазерный). Диски обозначаются буквами A:, B:, C:, D и так далее. Каждый отдельный диск имеет собственную файловую структуру.  
 
Диск разделен на папки. У каждой папки есть имя. Самая верхняя папка называется «корневой». Ее имя совпадает с именем диска.   
В папках могут храниться другие папки (вложенные) и файлы. Адрес конкретного файла определяется путем поиска данного файла. Путь поиска начинается с указания диска, за которым следуют имена всех папок, ведущих к файлу. Имена папок отделяются друг от друга символом «\». Например, файл документа с именем Письмо 133 может иметь такой адрес: С:\ Мои документы\ Переписка\ Письмо 133.  
 
Рабочий стол и окна папок предоставляют достаточно средств для работы с файлами и папками. Их можно создавать, открывать, перемещать, копировать, удалять и др. Большинство операций  можно выполнить несколькими способами. Эффективная работа с компьютером предполагает знание разных способов и умелое применение наиболее удобных.  
 
Операционные системы Windows нельзя представить без файловых систем NTFS и FAT 32. 
 
NTFS – одна из самых сложных и удачных из существующих на данный момент файловых систем. Как и любая другая система NTFS делит все полезное место на кластеры – блоки данных, используемые единовременно; NTFS поддерживает почти любые размеры кластеров – от 512 байт до 64 кбайт, неким стандартом же считается 4 кбайт. Диск NTFS условно делится на две части. Первые 12 % диска под так называемую MFT (Master File Table) зону – пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой – это делается для того, чтобы самый главный служебный файл (MFT) не фрагментировался на при своем росте. Остальные 88 % диска представляют собой пространство для хранения файлов. 
 
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых поддерживает имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога.  
 
FAT - является самой распространенной файловой системой и поддерживается подавляющим большинством операционных систем. Система FAT32 - более новая файловая система на основе формата FAT, она поддерживается Windows 95 OSR2, Windows 98 и Windows Millennium Edition. FAT32 использует 32-разрядные идентификаторы кластеров, но при этом резервирует старшие 4 бита, так что эффективный размер идентификатора кластера составляет 28 бит. Поскольку максимальный размер кластеров FAT32 равен 32 Кбайт, теоретически FAT32 может работать с 8-терабайтными томами. Файловая система FAT 32 в Windows 98 используется в качестве основной. С этой операционной системой поставляется специальная программа преобразования диска из FAT 16 в FAT 32. Windows NT и Windows 2000 тоже могут использовать файловую систему FAT, и поэтому можно загрузить компьютер с DOS-диска и иметь полный доступ ко всем файлам. Однако некоторые из самых прогрессивных возможностей Windows NT и Windows 2000 обеспечиваются ее собственной файловой системой NTFS (NT File System). Возможности файловых систем FАТ32 гораздо шире возможностей FAT16. Самая важная ее особенность в том, что она поддерживает диски объемом до 2 047 Гбайт и работает с кластерами меньшего размера, благодаря чему существенно сокращает объемы неиспользуемого дискового пространства. Например, жесткий диск объемом 2 Гбайт в FAT16 использует кластеры размером по 32 Кбайт, а в FAT32 - кластеры размером по 4 Кбайт. Чтобы по возможности сохранить совместимость с существующими программами, сетями и драйверами устройств, FAT32 реализована с минимальными изменениями в архитектуре, API-интерфейсах, структурах внутренних данных и дисковом формате. Но, так как размер элементов таблицы FAT32 теперь составляет четыре байта, многие внутренние и дисковые структуры данных, а также API-интерфейсы пришлось пересмотреть или расширить. Отдельные API на FАТ32-дисках блокируются, чтобы унаследованные дисковые утилиты не повредили содержимое FAT32-дисков. На большинстве программ эти изменения никак не скажутся. Существующие инструментальные средства и драйверы будут работать и на FAT32-дисках. Однако драйверы блочных устройств MS-DOS (например, Aspidisk.sys) и дисковые утилиты нуждаются в модификации для поддержки FAT32. Все дисковые утилиты, поставляемые Microsoft (Format, Fdisk, Defrag, а также ScanDisk для реального и защищенного режимов), переработаны и полностью поддерживают FAT32.

Сравнение организации  файлов в Windows и UNIX. 
 
Организация файлов в операционной системе UNIX более простая и удобна, но она не дает нам полной уверенности в защите файлов, а организация файлов в операционной системе Windows более сложная, но и более защищенная. Сравнить организацию файлов в этих двух ОС можно по их файловым системам. Например, можно сравнить FAT16 (UNIX) и FAT32 (Windows): 

Но в ОС Windows существует другая, более лучшая файловая система (NTFS). Поэтому можно сказать, что организация  файлов в Windows лучше, чем в UNIX. Да и  нельзя не заметить, что во всем мире более успешна операционная система Windows, что дает нам возможность  сказать, что организация файлов в Windows лучше. 


Информация о работе Файловая система