Категория
Информатика
Тип
реферат
Страницы
31 стр.
Дата
21.02.2014
Формат файла
.html — Html-документ
Архив
996745.zip — 20.28 kb
  • fajlovaja-sistema-4_996745_1.html — 77.59 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы




--PAGE_BREAK--

<</i>
    продолжение

--PAGE_BREAK--

Исходные данные:

•         V — размер блока

•         N — номер первого блока файла

•         S — смешение логической записи в файле

Требуется определить на физическом уровне:

•         п — номер блока, содержащего требуемую логическую запись

•         s — смещение логической записи в пределах блока

•         n= N + [S/V], где [S/V] — целая часть числа S/V

•         s= R[S/V] — дробная часть числа S/V

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

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

4.9. Отображаемые в память файлы

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

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

Предположим, например, что файл fимеет длину 64 К и отображается на область виртуального адресного пространства с начальным адресом 512 К. После этого любая машинная команда, которая читает содержимое байта по адресу 512 К. получает 0-ой байт этого файла и т.д. Очевидно, что запись по адресу 512 К + 1100 изменяет 1100 байт файла. При завершении процесса на диске остается модифицированная версия файла, как если бы он был изменен комбинацией вызовов SEEKи WRITE.

В действительности при отображении файла внутренние системные таблицы изменяются так, чтобы данный файл служил хранилищем страниц виртуальной памяти на диске. Таким образом, чтение по адресу 512 К вызывает страничный отказ, в результате чего страница 0 переносится в физическую память. Аналогично, запись по адресу 512 К + 1100 вызывает страничный отказ, в результате которого страница, содержащая этот адрес, перемещается в память, после чего осуществляется запись в память по требуемому адресу. Если эта страница вытесняется из памяти алгоритмом замены страниц, то она записывается обратно в файл в соответствующее его место. При завершении процесса все отображенные и модифицированные страницы переписываются из памяти в файл.

Отображение файлов лучше всего работает в системе, которая поддерживает сегментацию. В такой системе каждый файл может быть отображен в свой собственный сегмент, так что k-ый байт в файле является к-ым байтом сегмента. На рисунке 4.8, а изображен процесс, который имеет два сегмента-кода и данных. Предположим, что этот процесс копирует файлы. Для этого он сначала отображает файл-источник, например, abc. Затем он создает пустой сегмент иотображает на него файл назначения, например, файл ddd.

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

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

Код программы

дшньк

СЮ

Рис. 4.Р (а) Сегменты процесса перед отображением файлов в адресное пространство; (б) Процесс послеотображения существующего файла abcв один сегмент и создания нового

сегмента для файла ddd

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

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

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

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

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

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

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

Приложение2. Файловая системаFAT32 FAT32

FAT32 — файловая система, производная системы FAT. FAT32 поддерживает меньшие размеры кластеров, что позволяет более эффективно использовать дисковое пространство по сравнению с FAT. Это файловая система используется в современных операционных системах на DOSоснове — Windows98 и WindowsMe.

FAT — FileAllocationTable(таблица размещения файлов) — этот термин относится к одному из способов организации файловой системы на диске. Эта таблица хранит информацию о файлах на жестком диске в виде последовательности чисел, определяющих, где находится каждая часть каждого файла. С ее помощью операционная система выясняет, какие кластеры занимает нужный файл. FAT — является самой распространенной файловой системой и поддерживается подавляющим большинством операционных систем. Сначала FATбыла 12- разрядной и позволяла работать с дискетами и логическими дисками объемом не более 16 Мбайт. В MS-DOSверсии 3.0 таблица FATстала 16-разрядной для поддержки дисков большей емкости, а для дисков объемом до 2 047 Гбайт используется 32-разрядная таблица FAT.

Система FAT32 — более новая файловая система на основе формата FAT, она поддерживается Windows95 OSR2. Windows98 и WindowsMillenniumEdition. FAT32 использует 32-разрядные идентификаторы кластеров, но при этом резервирует старшие 4 бита, так что эффективный размер идентификатора кластера составляет 28 бит. Поскольку максимальный размер кластеров FAT32 равен 32 Кбайт, теоретически FAT32 может работать с 8-терабайтными томами. Windows2000 ограничивает размер новых томов FAT32 до 32 Гбайт, хотя поддерживает существующие тома FAT32 большего размера (созданные в других операционных системах). Большее число кластеров, поддерживаемое FAT32, позволяет ей управлять дисками более эффективно, чем FAT16. FAT32 может использовать 512-байтовые кластеры для томов размером до 128 Мбайт.

Файловая система FAT32 в Windows98 используется в качестве основной. С этой операционной системой поставляется специальная программа преобразования диска из FAT16 в FAT32. Windows2000 и WindowsХР тоже могут использовать файловую систему FAT, 1-1 поэтому можно загрузить компьютер с DOS-диска и иметь полный доступ ко всем файлам. Однако некоторые из самых прогрессивных возможностей Windows2000 и WindowsХР обеспечиваются ее собственной файловой системой NTFS(NTFileSystem). NTFSпозволяет создавать на диске разделы объемом до 2 Тбайт (как и FAT32), но. кроме этого, в нее встроены функции сжатия файлов, безопасности и аудита, необходимые при работе в сетевой среде. А в Windows2000, как и в WindowsХР реализуется поддержка файловой системы FAT32. Данные этих операционных систем можно хранить на диске FAT, но по желанию пользователя диск может быть конвертирован в формат NTFS.

Для этого можно воспользоваться утилитой Convert.exe, поставляемой вместе с операционной системой. Преобразованный к системе NTFSраздел диска становится недоступным для других операционных систем. Чтобы вернуться в DOS, Windows95, Windows98 или Me, нужно удалить раздел NTFS, а вместо него создать раздел FAT. Windows2000, как и в WindowsХР можно устанавливать на диск с файловой системой FAT32 и NTFS.

Возможности файловых систем FAT32 гораздо шире возможностей FAT16. Самаяважная ее особенность в том, что она поддерживает диски объемом до 2 047 Гбайт и работает с кластерами меньшего размера, благодаря чему существенно сокращает объемы неиспользуемого дискового пространства. Например, жесткий диск объемом 2 Гбайт в FAT16 использует кластеры размером по 32 Кбайт, а в FAT32 — кластеры размером по 4 Кбайт. Чтобы по возможности сохранить совместимость с существующими программами, сетями и драйверами устройств, FAT32 реализована с минимальными изменениями в архитектуре. API-интерфейсах, структурах внутренних данных и дисковом формате. Но, так как размер элементов таблицы FAT32 теперь составляет четыре байта, многие внутренние и дисковые структуры данных, а также API-интерфейсы пришлось пересмотреть или расширить. Отдельные APIна НАТ32-дисках блокируются, чтобы унаследованные дисковые утилиты не повредили содержимоеРАТ32-дисков. На большинстве программ эти изменения никак не скажутся. Существующие инструментальные средства и драйверы будут работать и на 1-'АТ32-дисках. Однако драйверы блочных устройств MS-DOS(например. Aspidisk.sys) и дисковые утилиты нуждаются в модификации для поддержки FAT32. Все дисковые утилиты, поставляемые Microsoft(Format, Fdisk, Defrag, а также ScanDiskдля реального и защищенного режимов), переработаны и полностью поддерживают FAT32. Кроме того, Microsoftпомогает ведущим поставщикам дисковых утилит и драйверов устройств в модификации их продуктов для поддержки FAT32. F/^T32 эффективнее FAT16 при работе с дисками большего объема и не требует их разбиения на разделы по 2 Гбайт. Windows98 обязательно поддерживает FAT16, так как именно эта файловая система совместима с другими операционными системами, в том числе сторонних компании. В MS-DOSреального режима и в безопасном режиме Windows98, файловая система FAT32 работает значительно медленнее, чем FAT16. Поэтому, при запуске программ в режиме MSDOSжелательно включить в файл Autoexec.batили PlF-файл команду длязагрузки Smartdrv.exe, что ускорит дисковые операции. Некоторые устаревшиепрограммы, рассчитанные на спецификацию FAT16. могут сообщать неправильную информацию об объеме свободного или общего дискового пространства, если он больше 2 Гбайт. Windows98 предоставляет новые API — интерфейсы для MS-DOSи Win32, которые позволяют корректно определять эти показатели. В табл. I приведены сравнительные характеристики FAT16 и FAT32.

г

Таблица 1. Сравнение файловых систем FAT16 и FAT32

Максимально возможная длина файла в FAT32 равна 4 Гбайт за вычетом 2 байтов. Win32- приложения могут открывать файлы такой длины без специальное обработки. Остальные приложения должны использовать прерывание Int21h, функцию 716С (FAT32) с флагом открытия, равным EXTEND-SIZE(ЮООИ).

В файловой системе FAT32 на каждый кластер в таблице размещения файлов отводится по 4 байта, тогда как в FAT16 — по 2, а в FAT12 — по 1,5.

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

Итак, FAT32 обладает следующими преимуществами в сравнении с прежними реализациями файловой системы FAT:

•       поддерживает диски объемом до 2 Гбайт;

•       эффективнее организует дисковое пространство. FAT32 использует кластеры меньшего размера (4 Кбайт для дисков объемом до 8 Гбайт), что позволяет сэкономить до 10-15% пространства на больших дисках по сравнению с FAT;

•       корневой каталог FAT32, как и все остальные каталоги, теперь не ограничен, он состоит из цепочки кластеров и может быть расположен в любом месте диска;

•       имеет более высокую надежность: FAT32 способна перемещать корневой каталог и работать с резервной копией FAT, кроме того, загрузочная запись на FАТЗ2-дисках расширена и теперь включает резервную копию критически важных структур данных, а это означает, что РАТ32-диски менее чувствительны к возникновению отдельных сбойных участков, чем существующие FAT-тома:

•        программы загружаются на 50% быстрее.

Усовершенствованная утилита дефрагментации дисков оптимизирует размещение файлов приложения, загружаемых в момент его запуска. Возможно преобразование диска в FAT32 с помощью утилиты DriveConverter(FAT32), но после этого рекомендуется запустить утилиту DiskDefragmenter, — иначе компьютер будет работать с диском медленнее, чем раньше. Благодаря этому на больших дисках удается высвободить десятки и даже сотни мегабайтов, а в сочетании с усовершенствованной утилитой дефрагментации дисков FAT32 значительно сокращает время загрузки приложений. Процедура преобразования файловой системы на жестком диске в FAT32 с помощью DriveConverter(FAT32) достаточно проста. Для этого последовательно необходимо открыть меню Start(Пуск), подменю Programs(Программы), Accessories(Стандартные), SystemTools(Служебные) и выбрать команду DriveConverter (FAT32) (Преобразование диска в FAT32). Преобразование может повлиять на функции спящего режима (hibernatefeatures) (сохранения состояния компьютера на диск), предусмотренные во многих компьютерах. Системы, в которых режим сна реализован через АРМ BIOSили ACPI(AdvancedConfigurationandPowerInterface) S4/BIOS, должны поддерживать FAT32, — только тогда они будут корректно работать в Windows98 и Me.

Большинство изготовителей BIOSвключают в нее средства зашиты от вирусов, отслеживающие изменения в главной загрузочной записи MBR(MasterBootRecord). Кроме того, устаревшие антивирусные утилиты, устанавливаемые как резидентные программы или

драйверы реального режима, могут обнаруживать изменение MBRпри загрузке MS-DOS. Так как преобразование в FAT32 приводит к неизбежной модификации MBR, некоторые средства проверки на вирусы могут ошибочно счесть это признаком инфицирования

системы.

Лучше всего удалить антивирусное программное обеспечение и отключить встроенные в BIOSсредства защиты от вирусов перед преобразованием диска в FAT32. Потом можно вновь установить антивирусную утилиту и активизировать встроенные в BIOSсредства защиты от вирусов.

Главная загрузочная запись (MBR)

Форматирование жестких дисков выполняется в три этапа:

•       низкоуровневое форматирование (физическая разметка диска на цилиндры, дорожки, секторы);

•       разбиение диска на разделы (логические устройства):

•       высокоуровневое (логическое) форматирование каждого раздела.

На этапе низкоуровневого форматирования процессор, выполняя программу форматирования, поочередно передает в контроллер жесткого диска сначала команду «Поиск» для установки головок накопителя на нужный цилиндр, а затем посылает команду «Форматировать дорожку». Выполняя команду «Форматировать дорожку» контроллер жесткого диска, получив из накопителя импульс «Индекс» (начало дорожки), производит запись служебного формата дорожки, который разбивает ее на секторы. Каждый сектор содержит в себе блок данных (512 байт), обрамленный служебным форматом сектора (содержание к размер служебного формата определяется конкретной фирмой-разработчиком данного устройства).

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

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

С самого начала блока данных этого сектора располагается программа (IPL1). Переход на программу IPL1 процессор осуществляет после успешного завершения POSTи программы „Начальногозагрузчика“, выполняя которую процессорзагружает с диска в память MBR. и передает управление на начало MBR(на программуIPL1). продолжая действия ведущие к загрузкеоперационной системы. Программа IPL1 (загрузчик), находящаяся в MBRпросматривает строки таблицы разделов в поисках активного раздела с которого возможна загрузка операционной системы. Если в таблице разделов нет активного раздела, выдается сообщение об ошибке. Если хотя бы один раздел содержит неправильную метку, либо несколько разделов помечены как активные, выдается сообщение об ошибке Invalidpartitiontable, и процесс загрузки останавливается. Если активный раздел обнаружен, то анализируется загрузочный сектор этого раздела. Если найден только один активный раздел, то содержимое блока данных его загрузочного сектора (BOOT) читается в память по адресу Ю00:7С00 и управление передается по этому адресу, если загрузочный сектор активного раздела не читается за пять попыток, выдается сообщение об ошибке: Errorloadingoperatingsystemи система останавливается: проверяется сигнатура считанного загрузочного сектора активного раздела и если последних два его байта не соответствуют сигнатуре 55ААИ, выдается сообщениеоб ошибке: Missingoperatingsystemи система останавливается).

Процессор читает по адресу 0000:7000 команду JMP. выполняя ее, передает управление на начат' программы IPL    продолжение

--PAGE_BREAK--2, которая осушествляет проверку, действительно ли раздел активный: 1PL2 проверяет имена и расширения двух файлов в корневом каталоге — это должны быть файлы IO.SYSи MSDOS.SYS(NTLDRдля WindowsХР), загружает их и. т. д.

Система Windows9х/Ме во многом основана на тех же концепциях, что и DOS, но в ней эти концепции получили дальнейшее логическое развитие. Те же два системных файла IO.SYSи MSDOS.SYS, но теперь вся системная программа находится в IO.SYS, а второй файл MSDOS.SYSсодержит ASCII-текст с установками, управляющими поведением системы при загрузке. Эквиваленты программ Himem.sys. Ifshlp.sysи Setver.exeавтоматически загружаются программой IO.SYSпри запуске системы. Как и прежде, для загрузки в память драйверов и резидентных программ можно использовать файлы Config.sysи Autoexec.bat, но загрузку 32-разрядных драйверов устройств, которые разработаны специально для Windows9х. теперь обеспечивают записи в системном реестре. Когда вся предварительная работа выполнена, запускается файл Win.com, и Windows9х/Ме загружается и предоставляет свои возможности через графическое меню.

Системный реестр является базой данных, в которой Windows9х/Ме хранит информацию обо всех настройках, конфигурационных установках и параметрах, необходимых для работы ее собственных модулей и отдельных приложений. Системный реестр как бы выполняет функции Config.sys, Autoexec.batи ini-файлов Windows3.1 вместе взятых. На диске компьютера реестр хранится в виде двух отдельных файлов: System.datи User.dat. В первом из них содержатся всевозможные аппаратные установки, а во втором — данные о работающих в системе пользователях и используемых ими конфигурациях. Каждый пользователь может иметь свой файл User.dat, т.е. собственную рабочую среду, которую он настраивает по своему вкусу и потребностям. Системный реестр можно импортировать, экспортировать, а также создавать его резервные копии и. используя их. восстанавливать сохраненные данные — одним словом, это довольно мощный механизм управления системными параметрами и их защиты от потерь и повреждений.

В данный момент FAT32 поддерживается в следующих ОС: Windows95 OSR2. Windows98, WindowsME, Windows2000 и WindowsХР.

Приложение 3. Файловая система NTFS

NTFS

NTFS(NewTechnologyFileSystem) — наиболее предпочтительная файловая система при работе с ОС WindowsNT(Windows2000 и ХР также являются NTсистемами), поскольку она была специально разработана для данной системы. В состав WindowsNTвходит утилита convert, осуществляющая конвертирование томов с FATи HPFSв тома NTFS. В NTFSзначительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов, поддержка требований стандарта POSIX. NTFSпозволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. NTFSобладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается.

Каждый файл на томе NTFSпредставлен записью в специальном файле — главной файловой таблице MFT(MasterFileTable). NTFSрезервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Первая запись таблицы описывает непосредственно саму главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFTразрушена, NTFSсчитывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFTи зеркального файла MFTхранится в секторе начальной загрузки. Копия сектора начальной загрузки находится в логическом центре диска. Третья запись MFTсодержит файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе.

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

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

В загрузочном файле (bootfile) хранится код начального загрузчика WindowsNT.

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

NTFSраспределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь кластеров, каждый размером до 64 Кбайт. Как и в FATразмер кластера может меняться, но необязательно возрастает пропорционально размеру диска. Размеры кластеров, устанавливаемые по умолчанию при форматировании раздела, приведены в табл. 6.

NTFSпозволяет хранить файлы размером до 16 эксабайт (2"^ байт) и располагает встроенным средством уплотнения файлов в реальном времени. Сжатие является одним из атрибутов файла или каталога и подобно любому атрибуту может быть снято или установлено в любой момент (сжатие возможно на разделах с размером кластера не более 4 Кб). При уплотнении файла, в отличие от схем уплотнения используемых в FAT, применяется пофайловое уплотнение, таким образом, порча небольшого участка диска не приводит к потере информации в других файлах.

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

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

Несмотря на наличие защиты от несанкционированного доступа к данным NTFSне обеспечивает необходимую конфиденциальность хранимой информации. Дляг :> лучения доступа к файлам достаточно загрузить компьютер в DOSс дискеты и воспользоваться каким-нибудь сторонним драйвером NTFSдля этой системы.

Начиная с версии Windows2000 Microsoftподдерживает новую файловую систему NTFS5.0. В новой версии NTFSбыли введены дополнительные атрибуты файлов; наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Новая система также позволяет:

•       вводить ограничения (квоты) на размер дискового пространства, предоставленного пользователям;

•       проецировать любой каталог (как на локальном, так и на удаленном компьютере) в подкаталог на локальном диске.

Интересной возможностью новой версии WindowsNTявляется динамическое шифрование файлов и каталогов, повышающее надежность хранения информации. В состав Windows2000 и WindowsХР входит файловая система с шифрованием (EncryptingFileSystem, EFS), использующая алгоритмы шифрования с общим ключом. Если для файла установлен атрибут шифрования, то при обращении пользовательской программы к файлу для записи или чтения происходит прозрачное для программы кодирование и декодирование файла.

Структура раздела — общий взгляд

Как и любая другая система. NTFSделит все полезное место на кластеры — блоки данных, используемые единовременно. NTFSподдерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Никаких аномалий кластерной структуры NTFSне имеет, поэтому на эту, в общем-то, довольно банальную тему, сказать особо нечего.

Диск NTFSусловно делится на две части. Первые 12% диска отводятся под так называемую MFTзону — пространство, в которое растет метафайл MFT(об этом ниже). Запись каких- либо данных в эту область невозможна. MFT-зона всегда держится пустой — это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

— MFT                  Копия первых записей MFT

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

MFTи его структура

Файловая 'система NTFSпредставляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл — даже служебная информация. Самый главный файл на NTFSназывается MFT, или MasterFileTable — общая таблица файлов. Именно он размещается в MFTзоне и представляет собой централизованный каталог всех остальных файлов диска, и, как не парадоксально, себя самого. MFTподелен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе — они называются метафайлами, причем самый первый метафайл — сам MFT. Эти первые 16 элементов MFT — единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности — они очень важны — хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу — за первый элемент MFT.

Журнал про вам не

NTFS — отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых сбоях. Любая современная файловая система основана на таком понятии, кактранзакция — действие, совершаемое целиком и корректно или не совершаемое вообще. У NTFSпросто не бывает промежуточных (ошибочных или некорректных) состояний — квант изменения данных не может быть поделен на до и после сбоя, принося разрушения и путаницу — он либо совершен, либо отменен.

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

Пример 2: более сложный случай — идет запись данных на диск. Вдруг, бах — отключается питание и система перезагружается. На какой фазе остановилась запись, где есть данные, а где данные не корректны? На помощь приходит другой механизм системы — журнал транзакций. Система отмечает в метафайле SLogFileсвое состояние и при перезагрузке это файл проверяется на предмет наличия незавершенных транзакций, которые были прерваны из-за аварии и результат, которых непредсказуем. Все эти транзакции отменяются: место, в которое осуществлялась запись, помечается снова как свободное, индексы и элементы MFTприводятся в с состояние, в котором они были до сбоя, и система в целом остается стабильна. Если произошла ошибка при записи в журнал — ничего страшного: транзакция либо еще и не начиналась (идет только попытка записать намерения ее произвести), либо уже закончилась — то есть идет попытка записать, что транзакция на самом деле уже выполнена. В последнем случае при следующейзагрузке система сама вполне разберется, что на самом деле всё и так записано корректно, и не обратит внимания на «незаконченную» транзакцию.

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

Сжатие

Файлы NTFSимеют один довольно полезный атрибут — «сжатый». Дело в том, что NTFSимеет встроенную поддержку сжатия дисков — то, для чего раньше приходилось использовать Stackerили DoubleSpace. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде — этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство — огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые «виртуальные кластеры» — опять же предельно гибкое решение, позволяющее добиться интересных эффектов — например, половина файла может быть сжата, а половина — нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов: например, типичная запись физической раскладки для реального, несжатого, файла:

•       кластеры файла с 1 по 43-й хранятся в кластерах диска начиная с 400-го

•       кластеры файла с 44 по 52-й хранятся в кластерах диска начиная с 8530-го

Физическая раскладка типичного сжатого файла:

•       кластеры файла с 1 по 9-й хранятся в кластерах диска начиная с 400-го

•       кластеры файла с 10 по 16-й нигде не хранятся

•       кластеры файла с 17 по 18-й хранятся в кластерах диска начиная с 409-го «     кластеры файла с 19 по 36-й нигде не хранятся

—  Блок 16 кластеров — ►

--PAGE_BREAK--

виртуальные

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

--PAGE_BREAK--

Хотелось бы сказать, что если ваша операционная система — Windows2000 или WindowsХР, то использовать какую-либо файловую систему, отличную от NTFS — значит существенно ограничивать свое удобство и гибкость работы самой операционной системы. Windows2000 и WindowsХР, составляет с NTFSкак бы две части единого целого — множество полезных возможностей NTнапрямую завязано на физическую и логическую структуру файловой системы, и использовать там FATили FAT32 имеет смысл лишь для совместимости — если у вас стоит задача читать эти диски из каких-либо других систем.

Приложение 4. Файловая система ZFS

ZFS

ZFS(ZettabyteFileSystem) — файловая система, разработанная компанией SunMicrosystemsи обладающая такими характеристиками как возможность хранения больших объемов данных, управления томами и множеством других. Первоначально файловая система была разработана для ОС Solaris, но впоследствии перенесена на ряд других операционных систем, в том числе на FreeBSDи MacOSX.

Файловая система ZFSраспространяется с открытым кодом по opensource-лицензии CDDL(несовместимой с GPL).

Появление ZFSнаделало много шума, и до сих пор эта файловая является предметом горячих обсуждений. Причин у такой популярности несколько, в первую очередь:

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

•         Факт уже выполненного её портирования на несколько платформ и продолжение портирования на другие на фоне запрета на портирование на Linux.

Файловая система ZFSпозволяет адресовать ZFS= 128-bit= 3* 1A26 [ЗЕ26] ТВ (на одну ФС)

Разговор о ZFSхотелось бы начать с нескольких слов о проблемах, присущих современным файловым системам (ФС), и причинах их возникновения.

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

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

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

Цель создания ZFS— решить проблемы традиционных ФС. Управление данными должно быть простым и комфортным, доступ к данным быстрым, и, что главное, данные должны быть в безопасности.

Разработчики ZFSпонимали, что проблемы существующих файловых систем решить невозможно и нужно начинать «с чистого листа», отбросив устаревшие на 20 лет принципы.

Три кита ZFS — основные принципы конструкции самой ZFS.

Первое — организация всего доступного дискового пространства в единый пул (пул накопителей). Основная идея — избавиться от управления отдельными дисками и томами и перейти к использованию концепций виртуальной памяти в проекции на дисковое пространство. Если нужно установить в сервер новые модули памяти, достаточно выключить его (при отсутствии средств динамической реконфигурации), установить новые модули и включить сервер снова. Не требуется никаких команд вроде dimmconfig, создания виртуальных «модулей памяти», разграничения прав… Все гораздо проще. Когда программе нужна память, она выдает запрос ОС. и та предоставляет ее. Неважно, где будет выделена эта память. Можно использовать такой же подход и для дискового пространства, ZFSработает именно так. Имеется пул накопителей, к нему добавляем имеющиеся диски (почти так же, как новые модули памяти). В результате появляются многочисленные новые возможности.

Второе— сквозной контроль целостности данных. Проверяется каждый блок данных, чтобы убедиться, что он такой, каким должен быть. 20 лет назад это считалось очень дорогостоящей (в смысле вычислительных ресурсов) операцией. Сегодня, когда скорость процессоров по сравнению со скоростью дисков возросла на порядки, оказалось, что это совсем недорого. Используемые в ZFSалгоритмы на современном процессоре класса Opteronпозволяют вычислять контрольные суммы со скоростью 2—8 Гбайт/с. Это означает, что на большинстве современных машин можно пожертвовать небольшой долей процессорного времени для гарантирования целостности данных. Альтернатива — «неявные» повреждения данных, не проявляющиеся при чтении с диска.

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

Масштабируемость и производительность

ZFS— первая в мире 128-битная ФС. Несмотря на кажущуюся огромность дискового пространства, которое позволяет адресовать 64-битная ФС, оказалось, что до момента реализации всех ее возможностей потребуется не слишком много времени. Уже сейчас есть заказчики, оперирующие петабайтными объемами данных (2 в степени 50). Для достижения предела потребуется всего лишь 14 удвоений, и, если существующие тенденции сохранятся, 65-й бит потребуется уже через 10-15 лет. Поэтому для ZFSбыло выбрано 128 бит. Достаточно ли этого? Наверное, да, во всяком случае, расчеты показывают, что предел размера ФС в ZFSпревышает возможности накопителя, который теоретически можно создать на нашей планете, а энергии, которая потребуется только для того, чтобы установить в нужное состояние 2 в степени 128 бит, хватит, чтобы несколько раз вскипятить весь мировой океан.

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

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

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

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

--PAGE_BREAK--



Ваше мнение



CAPTCHA