ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.06.2021

Просмотров: 207

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лекция 7. Машинно-независимые свойства ОС. Управление файлами.



1. Общий принцип работы ОС с файлами.

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

3. Файловые системы VFAT и FAT32.

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

5. Основные отличия FAT и NTFS.

6. Разделы диска. Дисковые утилиты.



1. Общий принцип работы ОС с файлами


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

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

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

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

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

  • работа с не дисковыми периферийными устройствами как с файлами;

  • обмен данными между файлами, между устройствами, между файлом и устройством (и наоборот);

  • работа с файлами с помощью обращений к программным модулям системы управления файлами (часть API ориентирована именно на работу с файлами);

  • защита файлов от несанкционированного доступа.

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


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

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

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

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

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

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

Предполагается, что чтение записей осуществляется программой пользователя последовательно с начала файла и до его конца. Логически файл состоит из записей длинной 1024 байт; физически, однако, файл образован 8192 – байтовыми блоками, каждый из которых содержит 8 логических записей.


Этот вид объединения записей в блоки обычно осуществляется конкретными типами запоминающих устройств в целях экономии времени обработки и пространства памяти.

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

На позиции Б первый блок прочитан. Он находится в буфере В1 и содержит логические записи с номерами от 1 до 8. Теперь система управление файлами может передать требуемую запись программе пользователя, для чего указатель Р устанавливается на первую запись. Для чтения в буфер В2 второго блока файла система управления файлами выдает второй физический запрос на ввод – вывод.

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

Те же действия повторяются и для других логических записей первого блока.

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

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

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

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



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


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


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

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

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

загрузочной записи (boot record);

зарезервированных секторов (reserved sector);

таблицы размещения файлов (file allocation table);

корневого каталога (root derectory).

Таблица размещения файлов является очень важной информационной структурой. Можно сказать, что она представляет собой карту (образ) области данных, в которой описывается состояние каждого участка области данных. Область данных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее – только в области данных). В таблице FAT кластеры, принадлежащие одному файлу (некорневому каталогу), связываются в цепочки. Для указания номера кластера в системе управления файлами FAT -16 используется 16-битовое слово, следовательно, можно иметь до 216 = 65536 кластеров (с номерами от 0 до 65535).

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


Емкость раздела, Мб

Количество секторов в кластере

Размер кластеров, Кб

16-127

4

2

128-255

8

4

256-511

16

8

512-1023

32

16

1024-2047

64

32


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

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


Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов; в среднем на каждый файл теряется около половины кластера. Из таблицы следует, что при размере кластера в 32 сектора (объем раздела – от 512 Мбайт до 1023 Мбайт), то есть 16 Кбайт, средняя вели чина потерь на файл составит 8 Кбайт, и при числе файлов в несколько тысяч потери могут составлять более 100 Мбайт. Поэтому в современных файловых системах (к ним, прежде всего, следует отнести HPFS, NTFS, FAT32 и некоторые другие, поддерживаемые ОС семейства Unix) размеры кластеров ограничиваются (обычно - от 512 байт до 4 Кбайт).

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


Из этого рисунка видно, что файл с именем myfile.txt размещается начиная с восьмого кластера. Всего файл myfile.txt занимает 12 кластеров. Цепочка кластеров для нашего примера может быть записана следующим образом: 8, 9, 0А, 0В, 15, 16, 17, 19, 1А, 1В, 1С, 1D. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те секторы, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер 1D помечен кодом FF как конечный (последний в цепочке) кластер, принадлежащий данному файлу. Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Поскольку файлы на диске изменяются – удаляются, перемещаются, увеличиваются или уменьшаются, – то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации файлов, то есть данные одного файла могут располагаться не в смежных кластерах, а, порой, в очень удаленных друг от друга, образуя сложные цепочки. Естественно, что это приводит к существенному замедлению работы с файлами.

Так как FAT используется при доступе к диску очень интенсивно, она обычно загружается в ОЗУ (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.

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

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