Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
06.02.2015
Размер:
554.46 Кб
Скачать

4. Файлы и файловые системы

4.1. Понятия файла и файловой системы. Внутренняя и внешняя архитектуры файловой системы.

Файл – произвольное множество байтов, которое хранится на внешнем устройстве.

Файловая система – методы и средства размещения файлов на внешнем устройстве.

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

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

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

Дисковой памяти присущи такие же проблемы внутренней и внешней фрагментации, как и основной памяти.

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

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

Метод чередования, который применяется при хранении тома на нескольких дисках, сам по себе еще не способствует повышению отказоустойчивости: если один из дисков оказывается недоступным, теряется вся файловая система. Повышение устойчивости к сбоям обеспечивает другой метод – зазеркаливание тома. При зазеркаливании на дополнительных дисках создается одна или несколько полных копий тома, называемых «зеркальными» (Рис.6.1б). Повышение надежности хранения данных обеспечивается ценой дополнительных операций записи, так как при каждом обновлении данных должны обновляться все диски. Эти операции обычно выполняются асинхронно и поэтому замедляют работу процессора(CPU) только при высокой интенсивности записи.

Чередование и зазеркаливание – это две базовые технологии, которые совместно или по отдельности могут применяться для создания дисковой системы хранения данных, называемой массивом недорогих дисков с избыточностью RAID. Чередование именуется RAID-0, а зазеркаливание – RAID-1.

4.2. Логический диск FAT.

FAT

Более подробные сведения об этой файловой системе вы можете найти в статье "Файловая система MS-DOS"

Файловая система FAT используется DOS, Windows 3.x и Windows 95. Файловая система FAT также доступна в Windows 98/Me/NT/2000 и OS/2.

Файловая система FAT реализуется при помощи File Allocation Table (FAT - Таблицы Распределения Файлов) и кластеров. FAT - сердце файловой системы; для безопасности FAT имеет дубликат, чтобы защитить ее данные от случайного стирания или неисправности. Кластер - самая маленькая единица системы FAT для хранения данных; один кластер состоит из фиксированного числа секторов диска. В FAT записано, какие кластеры используются, какие являются свободными, и где файлы расположены в пределах кластеров.

Файловая система FAT поддерживает диск или раздел размером до 2 ГБ, но допускает не более 65525 кластеров. Поэтому, независимо от размера жесткого диска или раздела, количество секторов в одном кластере должно быть достаточно большим, чтобы все доступное место могло быть заключено в пределах 65525 кластеров. Чем больше доступного места, тем большим должен быть размер кластера.

ПРИМЕЧАНИЕ: Вообще, большие кластеры имеют тенденцию тратить впустую большее количество места, чем маленькие кластеры.

Файловая система FAT также использует корневой каталог. Этот каталог имеет допустимое максимальное количество записей и должен быть расположен в определенном месте на диске или разделе. ОС, которые используют файловую систему FAT, представляют корневой каталог с символом "обратный слеш" (\) и при загрузке на дисплее появляется этот каталог.

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

FAT-32

FAT32 - файловая система, которая может использоваться Windows 95 OEM Service Release 2 (версия 4.00.950B), Windows 98, Windows Me и Windows 2000. Однако, DOS, Windows 3.x, Windows NT 3.51/4.0, более ранние версии Windows 95 и OS/2 не распознают FAT32 и не могут загружать или использовать файлы на диске или разделе FAT32.

FAT32 - развитие файловой системы FAT. Она основана на 32-битовой таблице распределения файлов, более быстрой, чем 16-битовые таблицы, используемые системой FAT. В результате, FAT32 поддерживает диски или разделы намного большего размера (до 2 ТБ).

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

4.3. Логический диск NTFS.

NTFS (Новая Технология Файловой Системы) доступна только Windows NT/2000. NTFS не рекомендуется использовать на дисках размером менее 400 МБ, потому что она требует много места для структур системы.

Центральная структура файловой системы NTFS - это MFT (Master File Table). NTFS сохраняет множество копий критической части таблицы для защиты от неполадок и потери данных.

Подобно FAT и FAT32, NTFS использует кластеры для хранения данных; однако, размер кластера не зависит от размера диска или раздела. Размер кластера всего в 512 байтов может быть установлен независимо от того, имеет ли раздел размер 500 МБ или 5 ГБ. Использование маленьких кластеров не только уменьшает количество потраченного впустую дискового пространства, но также и уменьшает фрагментацию файлов - состояние, когда файлы разбиты на множество кластеров, находящихся на несмежных участках, что замедляет доступ к файлам. Из-за способности использовать маленькие кластеры, NTFS хорошо работает на больших дисках.

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

4.4. Раздел sf5.

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

Файловая система s5fs занимает раздел диска и состоит из трех основных компонентов.

Суперблок Содержит общую информацию о файловой системе, например, об архитектуре, общем числе блоков и индексных дескрипторов, или метаданных (inode).

Суперблок содержит следующую информацию

-Тип файловой системы (s_type)

-Размер файловой системы в логических блоках, включая сам суперблок, ilist и блоки хранения данных (s_fsize)

-Размер массива индексных дескрипторов (s_isize)

- Число свободных блоков, доступных для размещения (s_tfree)

- Число свободных inode, доступных для размещения (s_tinode)

- Флаги (флаг модификации s_fmod, флаг режима монтирования s_fronly)

- Размер логического блока (512, 1024, 2048)

- Список номеров свободных inode

-Список адресов свободных блоков

Массив индексных дескрипторов (ilist) Содержит метаданные всех файлов файловой системы. Индексный дескриптор содержит статусную информацию о файле и указывает на расположение данных этого файла. Ядро обращается к inode по индексу в массиве ilist. Один inode является корневым inode файловой системы, через него обеспечивается доступ к структуре каталогов и файлов после монтирования файловой системы. Размер массива ilist является фиксированным и задается при создании файловой системы. Таким образом, файловая система s5fs имеет ограничение по числу файлов, которые могут храниться в ней, независимо от размера этих файлов.

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

Массив адресов блоков хранения: 13 элементов

0..9 – прямая адресация

10 – косвенная адресация (номер блока, в котором находятся пдреса блоков хранения)

11 – двойная косвенная адресация (номер блока, в котором находятся адреса блоков, в котором находятся адреса блоков хранения)

12 – тройная косвенная адресация (адрес блока, в котором находятся адреса блоков, в котором находятся адреса блоков, в котором находятся адреса блоков хранения)

4.5. Раздел ext2.

Second Extended File System (дословно: «вторая расширенная файловая система»), сокращённо ext2 (иногда ext2fs) — файловая система ядра Linux. Была разработана Реми Кардом (англ.) взамен существующей тогда ext. По скорости и производительности работы она может служить эталоном в тестах производительности файловых систем. Так, в тестах на скорость последовательного чтения и записи, проведённых The Dell TechCenter, файловая система ext2 обгоняет ext3, и уступает лишь более современной ext4 в тесте на чтение.

Главный недостаток ext2 (и одна из причин демонстрации столь высокой производительности) заключается в том, что она не является журналируемой файловой системой. Он был устранён в файловой системе ext3 — следующей версии Extended File System, полностью совместимой с ext2.

Файловая система ext2 по-прежнему используется на флеш-картах и твердотельных накопителях (SSD), так как отсутствие

журналирования является преимуществом при работе с накопителями, имеющими ограничение на количество циклов записи.

Как и в любой файловой системе UNIX, в составе ext2 можно выделить следующие составляющие:

-блоки и группы блоков;

-индексный дескриптор;

-суперблок;

Массив адресов блоков хранения: 15 элементов

0..11 – прямая адресация

12 – косвенная адресация (номер блока, в котором находятся пдреса блоков хранения)

13 – двойная косвенная адресация (номер блока, в котором находятся адреса блоков, в котором находятся адреса блоков хранения)

14 – тройная косвенная адресация (адрес блока, в котором находятся адреса блоков, в котором находятся адреса блоков, в котором находятся адреса блоков хранения)

4.6. Буферизация и кеширование при обмене данными с диском.

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

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

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

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

Примеры использования кэширования:

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

-кэширование обмена данными с жестким диском; медленная память — диск, быстрая — оперативная память;

-кэширование веб-страниц (кэш браузера); медленная память — соединение с Интернетом, быстрая — жесткий диск.

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

4.7. Фрагментация файлов

4.7.1. Причины и следствия фрагментации файлов.

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

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

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

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

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

4.7.2. Дефрагментация и дефрагментаторы.

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

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

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

Некоторое ПО требует, чтобы определённые файлы в обязательном порядке хранились в последовательно расположенных секторах (например, встроенный эмулятор CD-ROM в приводе Zalman VE-200 предъявляет такое требование к файлам образов). Даже если в такой привод будет установлен твердотельный накопитель, очевидно, дефрагментация ему всё-таки понадобится.

Дефрагментация чаще всего используется для таких файловых систем, как File Allocation Table для MS-DOS и Microsoft Windows, так как в программах для работы с ними обычно не предусмотрено никаких средств для предотвращения фрагментации, и она появляется даже на почти пустом диске и небольшой нагрузке.

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

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

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

4.8. Именованные потоки в каталогах и файлах NTFS.

Альтернативные потоки данных (Alternate Data Streams, ADS) — это метаданные, связанные с объектом файловой системы NTFS. В файловой системе NTFS файл, кроме основных данных, может также быть связан с одним или несколькими дополнительными потоками данных. При этом дополнительный поток может быть произвольного размера, в том числе может превышать размер основного файла.

В 1993 году Microsoft выпустила первую версию операционной системы Windows NT, в которой была реализована файловая система NTFS. Эта файловая

система может работать

с несколькими именованными потоками, получившими название «Альтернативные потоки данных». Поддержка ADS была реализована для совместимости с уже существующими операционными системами, позволяющими хранить метаданные для файлов (например, файловая система HFS). В операционной системе Windows 2000 альтернативные потоки

данных используются для хранения таких атрибутов, как сведения об авторе, название и иконка файла. Начиная с Service Pack 2 для Windows XP, Microsoft представила службу Attachment Execution Service, которая сохраняет в альтернативных потоках данных подробную информацию о происхождении загруженных файлов в целях повышения безопасности.

Операционные системы Windows, начиная с Windows NT, позволяют получать доступ к ADS через API, а также через некоторые утилиты командной строки. Однако альтернативные потоки данных игнорируются большинством программ, включая Windows Explorer и консольную команду DIR. Windows Explorer позволяет копировать альтернативные потоки и выдает предупреждение, если целевая файловая система их не поддерживает. Но при этом Windows Explorer не подсчитывает размер и не отображает

список альтернативных потоков. Команда DIR была обновлена в операционной системе Windows Vista: в команду добавлен флаг "/R" для построения списка ADS.

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

Соседние файлы в папке ШПОРЫ по стеценко