Физический файл на диске соответствующий двумерному файлу состоит из чего
Физический диск - это реально существующий диск, имеющий имя. В качестве имен физических дисков принято использовать буквы латинского алфавита А и В - гибкие магнитные диски, С - жесткий магнитный диск, D - лазерный диск (если есть) и т.д.
Логический диск - это виртуальный диск на физическом диске или часть физического диска. Например, жесткий магнитный диск можно разбить на несколько логических дисков, имена которых будут соответственно С, D, E, F и т.д. В этом случае лазерный диск будет иметь имя следующее за буквой F, т.е.G.
Накопители - это устройства, для записи или чтения информации (дисководы, стримеры).
Носители - это среда для хранения информации, т.е. собственно магнитные, магнитооптические и лазерные диски, магнитные ленты.
Физически вся поверхность магнитного диска разделена на сектора, пронумерованные участки памяти длиной 512 байтов. По команде чтения (записи), поступившей из программы, специальное устройство подводит головку записи (чтения) к указанному сектору и читает в определенную память ровно 512 байтов (или записывает на диск), даже если нужно записать (прочитать) всего 5 или 100 байтов.
Для организации файловой системы используются более крупные порции данных - кластеры. Размер кластера не фиксирован и зависит от емкости диска. Каждый файл, записываемый на диск, занимает целое число кластеров, даже если его длина меньше кластера. Например, файл длиной 124 б - 1 кластер, файл длиной 7262 б - 4 кластера.
Последовательность кластеров, занимаемых файлом, может быть дискретной (состоящей из отдельных фрагментов), разбросанной по диску, при этом кластеры соединяются между собой специальными ссылками. Поэтому, чем больше работы выполнено на диске, тем больше становится уровень фрагментации диска, т. е. файл, который логически воспринимается как единое целое, физически расщеплен на множество цепочек кластеров, расположенных в разных местах диска.
Для того, чтобы понизить уровень фрагментации используется вспомогательная программа дефрагментации диска.
Принцип организации файловой системы (ФС) – табличный. Данные о том, в каком месте диска записан файл, хранятся в системной области диска в специальных таблицах размещения файлов FAT (File Allocation Table).
Файловая система FAT была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. FAT является наиболее распространенной файловой системой и ее в той или иной степени поддерживают большинство современных ОС.
В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес кластера, содержащего следующую часть файла. Из-за этого FAT называют файловой системой со связанными списками.
В зависимости от количества разрядов, выделяемых для идентификации каждого дискового кластера выделяют файловые системы FAT 12, FAT 16, FAT 32. Оригинальная версия FAT, разработанная для DOS 1.00, использовала 12-битную таблицу размещения файлов
FAT 16 была создана для поддержки жестких дисков размером более 32 Мб (до 2 Гбт). Цифра 16 в названии FAT 16 означает, что таблица размещения файлов FAT идентифицирует записи, соответствующие дисковым кластерам, при помощи 16-разрядных чисел. Это позволяет разместить в FAT-таблицах не более 65536 записей (2 16 ) о местоположении кластеров, поэтому максимальное количество кластеров на одном томе - 2 16 или 65536.
ОС MS DOS, Win 95 и первые Win NT использовали FAT 16. Как правило, в этой файловой системе один кластер = 4 секторам (2Кбт).
FAT32 - усовершенствованная версия файловой системы, поддерживающая жесткие диски объемом до 2 терабайт. Цифра 32 в названии FAT 32 означает, что таблица размещения файлов FAT идентифицирует записи, соответствующие дисковым кластерам, при помощи 32-разрядных чисел. ОС Win 98 и следующие версии используют FAT 32. Как правило выбирается оптимальный размер кластера, например, один кластер = 8 секторам (4Кбт).
Есть еще один вид организации файловой системы NTFS (New Technology File System). Она была разработана достаточно давно для Win NT. В настоящее время она используется в ОС семейства Win NT, а также Win ХР.
Файловая система NTFS - улучшенная файловая система, обеспечивающая уровень быстродействия и безопасности, а также дополнительные возможности, недоступные ни в FAT16, ни в FAT32. В случае сбоя компьютера целостность файловой системы восстанавливается с помощью файла журнала NTFS и данных о контрольных точках. В операционных системах Windows 2000 и Windows XP файловая система NTFS также обеспечивает дополнительные возможности.
Одной из наиболее важных дополнительных возможностей является возможность сжатия данных (доступна только в Windows XP Professional Edition). Сжатие файлов, папок и программ позволяет сократить их размер и уменьшить объем пространства, занимаемого ими на дисках или устройствах со съемными носителями.
Драйверы внешних устройств
Драйверы внешних устройств - это специальные программы, управляющие работой внешних устройств. Они бывают двух видов: стандартные и загружаемые.
Стандартные - управляют работой внешних устройств (клавиатуры, монитора, дисков и принтера), они в совокупности образуют базовую систему ввода-вывода.
Загружаемые - используются для расширения возможностей компьютера или управления стандартными внештатными устройствами (в отличие от того, как предусмотрено в базовом комплекте ПК), например, драйвер "мыши", русификатор для клавиатуры и т. д.
Интерпретатор действий пользователя
Для текстовых ОС с командной строкой существует один интерпретатор команд, который осуществляет взаимодействие пользователя с компьютером: принимает и анализирует команды, введенные пользователем, и выполняет только корректные.
Для графических ОС с объектно-ориентированным интерфейсом существует условно целая система интерпретаторов, распознающих действия пользователя и выполняющих только корректные.
Развитие интерфейса ОС
для 16-битных компьютеров ОС UNIX (торговая марка фирмы Bell Laboratories) и MS DOS (Microsoft Disk Operating System), интерфейс - командная строка, иерархическая структура диска, множество утилит (сервисных программ).
появление операционной оболочки Norton Commander для MS DOS, а затем и других подобных оболочек, интерфейс существенно упрощается, для работы с файлами и каталогами используются окна, меню, подсказки, функциональные клавиши.
появление графической операционной оболочки Windows 3.x, интерфейс становится графическим унифицированным (стандарт API Application Program Interface), для работы с файлами и каталогами используются контекстная помощь, меню, подсказки, пиктограммы, зарождается технология "Drag and Drop" ("Перетащи и брось" с мышью), появляется многозадачность (имитация, работа с несколькими окнами - задачами), технология "Буфера обмена".
для 32-битных компьютеров появляется многозадачная операционная система Windows95, интерфейс становится объектно-ориентированным, для работы с файлами и каталогами используется понятия объектов: документа и папки, также появляются другие объекты - рабочий стол, корзина и т.д., используются контекстная помощь, меню, подсказки, иконки, кнопки, технология " Drag and Drop" (с мышью), появляется реальная многозадачность (работа с несколькими окнами - задачами), технология "Буфера обмена".
В данном курсе будут рассмотрены ОС, которые являются основополагающими - ОС семейства Unix (на уровне понятий), ОС семейства MS DOS (на уровне знакомства в компьютерном классе), ОС семейства Windows (наиболее подробно).
Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 2.33 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.
Рис. 2.33. Способы логической организации файлов
1.3.1. Логическая и физическая организация файловой системы
Файловая система (ФС) — это часть операционной системы, включающая совокупность всех файлов на диске, служебные структуры, включая каталоги, системные программные средства.
Файл — это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Файловые системы поддерживают функционально различные типы файлов, напри-
- обычные файлы (ОС не контролирует содержимое этих файлов);
- каталоги (содержат системную информацию о наборе файлов);
- специальные файлы (фиктивные файлы, соответствующие устройствам ввода-вывода);
- отображаемые в память файлы и т. д.
Иерархическая структура файловой системы. Большинство файловых систем имеют иерархическую структуру. Структура может быть организованна как дерево (рис. 12, а) или как сеть (Unix) (рис. 12, б).
В древовидной структуре действует принцип: один файл — одно полное имя. В сетевой: один файл — много полных имен (за счет наличия уникального цифрового имени).
Атрибуты файлов. Понятие файл включает в себя не только данные, но и атрибуты. Атрибуты — это информация, описывающая свойства файла (тип, владелец, пароль, информация для авторизации доступа, время создания и доступа, размер, признаки и пр.)
Набор атрибутов зависит от ОС. Значения атрибутов могут храниться в каталогах (FAT) или в специальных таблицах, ссылки на которые хранятся в каталогах (NTFS).
Физическая организация файловой системы. Представление пользователя о ФС и физическое хранение файлов на диске имеют мало общего. Диск в общем случае состоит из пакета пластин. На каждой пластине — две поверхности. На каждой поверхности размечены дорожки, на которых хранятся данные. Дорожки нумеруются с нуля, начиная от края к середине. Для каждой поверхности пластины имеется магнитная головка, которая, переме-щаясь, может позиционироваться над каждой дорожкой. Все головки закреплены на одном механизме и перемещаются синхронно. Дорожки одного радиуса на всех поверхностях называются цилиндром. Каждая дорожка делится на фрагменты, называемые секторами. Чаще размер сектора равен 512 байтам. Сектор — наименьшая адресуемая единица обмена. Для поиска контроллер должен задать: номер цилиндра, поверхности и сектора.
ОС для работы с диском использует собственную единицу — кластер, или блок. Раз-мер кластера чаще всего равен 1024 байта. Увеличение объемов дисковых накопителей, а также размеров обрабатываемых файлов обусловило переход от понятия «кластер», понимаемого как минимальный объем единовременного обмена данными в ПК (запись/чтение/ передача), к более общему понятию «порция», или «отрезок». В ФС FAT32 порцией назы-вается участок дискового пространства, состоящий из одного или нескольких кластеров (блоков), содержащих непрерывную часть данных файла.
Дорожки и секторы создаются в результате низкоуровневого форматирования диска и не зависят от типа ОС. Диск может быть разделен на логические устройства — разделы (тома): а, b, с, . Разметку раздела под конкретный тип файловой системы выполняют процедуры логического форматирования. При этом определяется размер кластера и записывается информация о границах файлов и каталогов, поврежденных областях, о доступном пространстве. Также записывается загрузчик ОС. В одном разделе может быть создана только одна ФС, но любого доступного типа (FAT16, FAT32, NTFS и пр.).
На этапе разбиения диска на разделы в блоке данных первого физического сектора дис-ка (0 цилиндр, 0 поверхность, 1 сектор) с адреса 1BEh формируется таблица разделов (Partition table), состоящая из 4-х шестнадцатибайтных строк. Обычно системную информацию, записанную в блок данных этого сектора в процессе форматирования, называют Master Boot Record (MBR).
Физическая организация FAT.
На этапе логического форматирования раздела (тома) диска под ФС FAT создаются четыре логических области:
• загрузочный сектор (boot sector), в который помещается программа загрузки ОС;
• таблица FAT, которая является таблицей размещения файлов (создаются её основная и резервная копии FAT1 и FAT2);
• корневой каталог — содержит 256 записей (для FAT16), или 65 535 записей (для FAT32) по 32 байта каждая (для FAT32 он может находиться в любом месте диска);
• область данных — кластеры размером от 1 до 128 секторов.
Разрядность элемента таблицы FAT равна 16 бит (2 байта) для ФС FAT16 и 32 бита (4 байта) для ФС FAT32. Она определяет количество кластеров, к которым может физически адресоваться ФС. В области данных для FAT16 это 65525 кластеров. Для FAT32 это 288 435 445 кластеров.
Элемент в таблице FAT может принимать следующие значения: кластер свободен, за-нят и не последний, занят и последний, дефектный, резервный.
При запуске компьютера программа, запускаемая из главной загрузочной записи (MBR), ищет активный раздел на жестком диске. Если активный раздел найден, то управле-ние передаётся программе находящейся в загрузочном секторе (boot sector) этого раздела, которая запускает операционную систему, установленную в этом разделе жесткого диска.
При необходимости обращения к какому-либо файлу, адрес начального кластера корне-вого каталога раздела считывается из загрузочного сектора раздела. Часть корневого каталога, относящаяся к искомому файлу, отыскивается в корневом каталоге по имени файла. Каждый элемент корневого каталога содержит для каждого файла, расположенного на диске: имя файла, адрес первого кластера файла, размер файла, дату и время создания, модификации, последнего доступа к файлу и номер элемента таблицы FAT, содержащего адрес второго кластера файла. Каждый элемент таблицы FAT содержит (указывает) номер следующего кластера файла. Поэтому элемент таблицы FAT называется указателем. Одновременно, этот номер является номером элемента таблицы FAT, который содержит адрес третьего кластера файла и т. д. до последнего кластера файла.
Существуют три основных способа физического размещения файлов на диске 2 :
• способ непрерывного размещения;
• способ связанных блоков (цепочечный);
• способ индексированных блоков.
Рассматривая ранее физическую организацию ФС FAT, мы говорили о том, что в каж-дом элементе таблицы FAT хранится адрес (номер) кластера файла. Так было, когда объёмы жестких дисков были сравнительно не велики. Сейчас объёмы жестких дисков существенно выросли и достигают нескольких терабайт. Поэтому для реальных больших жестких дисков в каждом элементе таблицы FAT хранится не адрес отдельного кластера. Содержимое элемента таблицы FAT зависит от способа физического размещения файла на диске.
1. Способ непрерывного размещения (рис. 13а, 13б).
В элементе таблицы FAT содержится адрес первого кластера порции данных на диске и количества кластеров в порции. Количество кластеров в порции в данном случае равно количеству кластеров в файле. Этот способ используется для хранения коротких файлов.
2. Способ связанных блоков (цепочечный). См. рис. 13в, 13г. Для хранения больших файлов.
В элементе таблицы FAT содержится адрес первого кластера порции данных файла на жестком диске, количество блоков в порции и номер элемента таблицы FAT, содержащего адрес (номер) первого кластера (блока) следующей порции данных файла. Каждый кластер в порции данных содержит внутри себя индекс – указатель на последующий блок (кластер) внутри порции. На рис. 13в, 13 г для простоты изображен случай, когда количество класте-ров в файле не превышает количества кластеров в порции.
3. Способ индексированных блоков (рис. 13д, рис. 13е). Для хранения сверхбольших файлов.
В элементе таблицы FAT содержится адрес первого индексного блока порции данных файла на жестком диске, номер элемента таблицы FAT, содержащего адрес индексного блока следующей порции данных файла (в случае больших файлов, для которых количество указателей на блоки одной порции столь велико, что не помещается в один индексный блок (кластер)). На рис. 13в, 13 г количество кластеров в файле не превышает количества класте-ров в порции.
Физическая организация NTFS.
Файловая система NTFS была разработана в качестве основной для Windows NT. Ее особенностями являются поддержка больших файлов и дисков (до 264 Гбайт), восстанавливаемость после сбоев, низкий уровень фрагментации.
Непрерывная область кластеров в NTFS называется отрезком. Порядковый номер кластера тома называется логическим номером кластера (Logical Cluster Number - LCN). Порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number - VCN).
Часть файла в отрезке характеризуется числом, образованным значениями трех параметров: LCN, VCN, К, где К — длина отрезка. Для хранения номера кластера используются 64-разрядные указатели. Весь том (раздел) — это последовательность кластеров.
Файловая система NTFS представляет собой один и более файлов. Каталог тоже файл. Основа структуры тома NTFS – главная таблица файлов MFT (Master File Table). Это тоже файл. MFT содержит, по крайней мере, одну запись для каждого файла тома, включая одну запись для самой себя. MFT состоит из записей, размер которых равен размеру кластера и зависит от размера тома -1, 2, или 4 Кбайта. По умолчанию 2 Кбайта. Порядковый номер записи в MFT является номером файла в томе. Изначально под зону MFT отводится 12,5% объема тома NTFS.
Структура тома NTFS показана на рисунке 14. Загрузочный блок тома NTFS располагается в начале тома, а его копия - в середине области данных тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, а также начальные логические номера кластеров основной копии MFT и зеркальной копии MFT.
В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи MFT, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части - нерезидентными. Адресная информация об отрезках, содержащих нерезидентные части файла, размещается в атрибутах резидентной части.
MFT делится на несколько отрезков.
В первый отрезок помещаются 16 стандартных, создаваемых при форматировании записей о системных файлах NTFS и системные файлы NTFS. Некоторые системные файлы являются полностью резидентными, а некоторые имеют и нерезидентные части, которые располагаются после первого отрезка MFT. Нулевая запись MFT содержит описание самой MFT, в том числе и такой ее важный атрибут, как адреса всех ее отрезков.
Во второй отрезок помещаются нерезидентные части системных файлов и резидентные части обычных файлов и каталогов.
В третьем отрезке находятся дополнительные записи MFT, используемые при размещении очень больших и сверхбольших файлов.
Из приведенного описания видно, что сама таблица MFT рассматривается как файл, к которому применим метод размещения в томе в виде набора произвольно расположенных нескольких отрезков.
Каждый файл и каталог в томе NTFS состоит из набора двенадцати системных атрибутов, определяемых файловой системой NTFS и неопределенного количества атрибутов, которые для каждого файла или каталога могут быть определены пользователем. Важно отметить, что имя файла и его данные также рассматриваются как атрибуты файла. То есть в трактовке NTFS, кроме атрибутов у файла нет никаких других компонентов.
Существуют два способа хранения атрибутов файла - резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее, во внешних отрезках. Таким образом, резидентная часть файла состоит из резидентных атрибутов, а нерезидентная - из нерезидентных атрибутов. Сортировка может осуществляться только по резидентным атрибутам.
Основными системными атрибутами всех файлов являются:
− имя файла (FN — file name) - этот атрибут содержит длинное имя файла в формате Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут файла всегда резидентный;
− данные (Data) - содержит обычные данные файла;
− дескриптор безопасности (SD — security descriptor) - этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать;
- список атрибутов (AL - attribute list) - список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атрибут; этот редко используемый атрибут нужен только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT;
− стандартная информация (SI — standard information) - этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо другим атрибутом файла, например, время создания файла, время обновления и другие.
Файлы NTFS в зависимости от размера делятся на небольшие, большие, очень боль-шие и сверхбольшие. Каждый тип файла имеет свои особенности размещения в томе NTFS.
Физическая организация выделяет способ размещения файлов на диске и учет соответствия блоков диска файлам. Основными критериями эффективности физической организации файлов являются:
- скорость доступа к данным;
- объем адресной информации файла;
- степень фрагментированности дискового пространства;
- максимально возможный размер файла.
Наиболее часто используются следующие схемы размещения файлов:
- непрерывное размещение (непрерывные файлы);
- сводный список блоков (кластеров) файла;
- сводный список индексов блоков (кластеров) файла;
- перечень номеров блоков (кластеров) файла в структурах, называемых i-узлами (index-node – индекс-узел).
Простейший вариант физической организации – непрерывное размещение в наборе соседних кластеров (рис. 7.15a). Достоинство этой схемы – высокая скорость доступа и минимальный объем адресной информации, поскольку достаточно хранить номер первого кластера и объем файла. Размер файла при такой организации не ограничивается.
Однако у этой схемы имеется серьезный недостаток – фрагментация, возрастающая по мере удаления и записи файлов. Кроме того, возникает вопрос, какого размера область нужно выделить файлу, если при каждой модификации он может увеличить свой размер.
И все-таки есть ситуации, в которых непрерывные файлы могут эффективно использоваться и действительно широко применяются – на компакт-дисках. Здесь все размеры файлов заранее известны и не могут меняться.
Второй метод размещения файлов состоит в представлении файла в виде связного списка кластеров дисковой памяти (рис. 7.15б). Первое слово каждого кластера используется как указатель на следующий кластер. В этом случае адресная информация минимальна, поскольку расположение файла задается номером его первого кластера.
Рис. 7.15. Варианты физической организации файлов
Кроме того, отсутствует фрагментация на уровне кластеров, а файл легко может изменять размер наращиванием или удалением цепочки кластеров. Однако доступ к такому файлу может оказаться медленным, так как для получения доступа к кластеру n операционная система должна прочитать первые n-1 кластеры. Кроме того, размер кластера уменьшается на несколько байтов, требуемых для хранения. Указателю это не очень важно, но многие программы читают и пишут блоками, кратными степени двойки.
Оба недостатка предыдущей схемы организации файлов могут быть устранены, если указатели на следующие кластеры хранить в отдельной таблице, загружаемой в память. Таким образом, образуется связный список не самих блоков (кластеров) файла, а индексов, указывающих на эти блоки (рис. 7.16).
Рис. 7.16. Вариант физической организации файлов
Такая таблица, называемая FAT-таблицей (File Allocation Table), используется в файловых системах MS-DOS и Windows (FAT 16 и FAT 32). Файлу выделяется память на диске в виде связного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. С каждым кластером диска связывается индекс. Индексы располагаются в FAT-таблице в отдельной области диска. Когда память свободна, все индексы равны нулю. Если некоторый кластер N назначен файлу, то индекс этого кластера либо становится равным номеру M следующего кластера файла, либо принимает специальное значение, являющееся признаком того, что кластер является последним для файла. Вообще индексы могут содержать следующую информацию о кластере диска (для FAT 32):
- не используется (Unused) – 0000.0000;
- используется файлом (Cluster in us by a file) – значение, отличное от 000.000, FFFF.FFFF и FFFF.FFF7;
- плохой кластер (Bad cluster) – FFFF.FFF7;
- последний кластер файла (Last cluster in a file) – FFFF.FFFF.
При такой организации сохраняются все достоинства второго метода организации файлов: отсутствие фрагментации, отсутствие проблем при изменении размера. Кроме того, данный способ обладает дополнительными преимуществами: для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать FAT-таблицу, отсчитать нужное количество кластеров файла по цепочке и определить номера нужного кластера. Во-вторых, данные файла заполняют кластер целиком в объеме, кратном степени двойки.
Еще один способ заключается в простом перечислении номеров кластеров, занимаемых файлом (рис. 7.17). Этот перечень и служит адресом файла. Недостаток такого подхода – длина адреса зависит от размера файла. Достоинства – высокая скорость доступа к произвольному кластеру благодаря прямой адресации, отсутствие внешней фрагментации.
Рис. 7.17. Вариант физической организации файлов
Эффективный метод организации файлов, используемый в Unix-подобных операционных системах, состоит в связывании с каждым файлом структуры данных, называемой i-узлами. Такой узел содержит атрибуты файла и адреса кластеров файла (рис. 7.18). Преимущество такой схемы перед FAT-таблицей заключается в том, что каждый конкретный i-узел должен находиться в памяти только тогда, когда открыт соответствующий ему файл. Если каждый узел занимает n байт, а одновременно может быть открыто k фалов, то массив i-узлов займет в памяти k * n байт, что значительно меньше, чем FAT-таблица.
Это объясняется тем, что размер FAT-таблицы растет линейно с размером диска и даже быстрее, чем линейно, так как с увеличением количества кластеров на диске может потребоваться увеличить разрядность числа для хранения их номеров.
Рис. 7.18. Вариант физической организации файлов
Достоинством i-узлов является также высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация. Фрагментация на уровне кластеров также отсутствует.
Однако с такой схемой связана проблема, заключающаяся в том, что при выделении каждому файлу фиксированного количества адресов кластеров этого количества может не хватить. Выход из этой ситуации может быть в сочетании прямой и косвенной адресации. Такой поход реализован в файловой системе ufs, используемой в ОС UNIX, схема адресации в которой приведена на рис. 7.19.
Рис. 7.19. Файловая система ufs
Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если размер файлов меньше или равен 12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если кластер имеет размер 8 Кбайт, то можно адресовать файл размеров до 8 Кбайт * 12 = 98304 байт. Если размер кластера превышает 12 кластеров, то следующее 13 поле содержит адрес кластера, в котором могут быть расположены номера следующих кластеров, и размер файла может возрасти до 8192 * (12 + 2048) = 16.875.520 байт.
Следующий уровень адресации, обеспечиваемый 14-м полем, позволяет адресовать до 8192 * (12 + 2048 + 20482) = 3,43766*1020 байт. Если и этого недостаточно, используется следующее 15-е поле. В этом случае максимальный размер файла может составить 8192 * (12 + 2048 + 20482 + 20483) = 7,0403*1013 байт.
При этом объеме самой адресной информации составит всего 0,05% от объема адресуемых данных (задачи. ).
Метод перечисления адресов кластеров файла задействован и в файловой системе NTFS, применяемой в Windows NT/2000/2003. Для сокращения объема адресной информации в NTFS адресуются не кластеры файла, а непрерывные области, состоящие из смежных кластеров диска. Каждая такая область называется экстентом (extent) и описывается двумя числами: номером начального кластера и количеством кластеров.
Физическая организация и адрес файла
Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации (рисунок 2.34,а), при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 2.34,б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Рис. 2.34. Физическая организация файла а - непрерывное размещение; б - связанный список блоков; в - связанный список индексов; г - перечень номеров блоков
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
Права доступа к файлу
Определить права доступа к файлу - значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции:
Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Основным типом устройства которое используется в современных вычислительных системах для хранения файлов является дисковый накопитель – блок ориентированное устройство – информация пишется и считывается блоками. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Основными критериями эффективности физической организации файлов является:
• Скорость доступа к данным
• Степень фрагментированности дискового пространства
• Максимально возможный размер файла
Сущ несколько способов размещения файлов на диске:
1. Непрерывное размещение - простейший вариант физической организации, при котором файлу предоставляется последовательность блоков диска, образующих непрерывную область памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода – простота. Недостатки: 1) во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла; 2) при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Современные ФС такой способ не используют.
2. Размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков.
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
3. Перечисление номеров блоков, занимаемых файлом. Этот перечень является адресом файла. Недостаток: длина адреса зависит от длины файла, для большого файла может составлять значительную величину. Достоинство: высокая скорость доступа к файлу. Такой способ используется во многих версиях семейства Unix.
Сектор – физическая еденица данных(512б);
Кластер – логическая единица данных, включает 1 или несколько секторов. Информация пишется и считывается кластерами.
12) Файловая система FAT. Особенности ее реализации.
файловая система - одна из основных составляющих любой операционной системы, так как она обеспечивает хранение информации на физических носителях и доступ приложений к этой информации. Информация на жестком диске хранится в секторах (обычно 512 байт) и сам жесткий диск может выполнить только команду считать или записать блок данных в какой-либо сектор на диске. А файловая система позволяет оперировать с более удобным понятием - файл.
Файловая система FAT (File Allocation Table) была в 1977 году и первоначально использовалась в операционной системе 86-DOS. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.
В FAT применяются следующие ограничения на имена файлов:
• имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\[]:;|=,^*?
• максимальная длина имени - 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.
• регистр символов в именах файлов не различается и не сохраняется.
Структура раздела FAT изображена на рисунке ниже. В BIOS содержится необходимая информация о характеристиках жесткого диска. Файловая система FAT не способна контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры. Этим достигается, уменьшение общего количества единиц хранения данных, за которыми следит файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (таблица 1). Кластер представляет собой минимальное пространство, которое может занимать файл. Из за этого часть пространства диска не используется.
Файловая система FAT заполняет свободное место на Hdd последовательно от начала к концу. При создании нового файла или увеличении уже существующего она ищет первый свободный кластер в таблице размещения файлов. Если одни файлы были удалены, а другие изменились в размере, то появляющиеся в результате пустые кластеры будут рассеяны по диску. Если кластеры, содержащие данные файла, расположены не подряд, то файл оказывается фрагментированным. Сильно фрагментированные файлы значительно снижают эффективность работы, так как головки чтения/записи при поиск е очередной записи файла должны будут перемещаться от одной области диска к другой.
Также недостатком FAT является то, что ее производительность зависит от количества файлов, находящихся в одном каталоге. При большом количестве файлов (около тысячи), выполнение операции считывания списка файлов в каталоге может занять несколько минут.
FAT не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу. FAT является наиболее одной из самых распространенных файловых систем и ее поддерживают большинство ОС. FAT - простая файловая система, не предотвращающая порчи файлов из-за ненормального завершения работы компьютера.
Дифференцированный подход к финансированию таможенных подразделений определил широкий диапазон установленных в них средств вычислительной техники. В этой ситуации проблема выбора типа файловой системы является нетривиальной задачей, решение которой требует углубленного знания особенностей функционирования той или иной файловой системы на компьютерах разных поколений. Некорректный выбор типа файловой системы может сильно повлиять на производительность используемого системного и специального таможенного прикладного программного обеспечения.
Читайте также: