Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Соболь Информатика.docx
Скачиваний:
294
Добавлен:
28.03.2015
Размер:
585.72 Кб
Скачать

3.2.6. Ввод-вывод

Одной из важнейших функций ОС является управление

устройствами ввода-вывода компьютера. Операционная система дает этим

устройствам команды, перехватывает прерывания и обрабатывает

ошибки. Она должна обеспечить простой и удобный интерфейс

между устройствами и остальной частью системы. Интерфейс должен

быть одинаковым для всех устройств с целью достижения

независимости от применяемой аппаратуры. Программное обеспечение

ввода-вывода составляет существенную часть операционной системы.

Устройства ввода-вывода можно разделить на две категории:

блочные устройства и символьные устройства. Блочные устройства

хранят информацию в виде блоков фиксированного размера, причем

у каждого блока имеется свой адрес. Размеры блоков колеблются от

521 До 32 768 байт. Важное свойство блочного устройства состоит в

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

остальных блоков. Наиболее распространенными блочными

устройствами являются диски.

Другой тип устройств ввода-вывода — символьные устройства.

Символьное устройство принимает или предоставляет поток

неструктурированных символов. Оно не является адресуемым и не

выполняет операцию поиска. Принтеры, сетевые адаптеры, мыши и

большинство других устройств, не похожих на диски, можно считать

символьными устройствами.

Такая классификация является условной. Некоторые устройства

не попадают ни в одну из категорий. Например, часы не являются

138

блок-адресуемыми. Они не формируют и не принимают символьных

потоков. Вся их работа заключается в инициировании прерываний в

строго определенные моменты времени. И все же модель блочных и

символьных устройств является настолько общей, что может служить

основой для достижения независимости программного обеспечения

ОС от устройств ввода-вывода. Например, файловая система имеет

дело с абстрактными блочными устройствами, а зависимую от

устройств часть оставляет программному обеспечению низкого уровня.

Устройства ввода-вывода обычно состоят из механической и

электронной частей. Механический компонент находится в самом

устройстве. Электронный компонент устройства называется

контроллером или адаптером. В современных компьютерах контроллеры

встраиваются в материнскую плату или располагаются на самом

устройстве ввода-вывода. Многие контроллеры способны управлять

несколькими идентичными устройствами. Если интерфейс между

контроллером и устройством является официальным стандартом

ANSI, IEEE или ISO либо фактическим стандартом, то различные

производители могут выпускать отдельно устройства и контроллеры,

удовлетворяющие данному интерфейсу. Так производятся жесткие

диски, соответствующие интерфейсу IDE (Integrated Drive Electronics

— встроенный интерфейс накопителей) или SCSI (Small Computer

System Interface — системный интерфейс малых компьютеров).

Часто интерфейс между устройством и контроллером является

интерфейсом низкого уровня. С диска в контроллер поступает

последовательный поток битов, начинающийся с заголовка сектора

(преамбулы), за которым следует 4096 бит в секторе, и контрольная

сумма, называемая кодом исправления ошибок ЕСС (Error Correcting

Code). Заголовок сектора записывается на диск во время

форматирования. Он содержит номера цилиндра и сектора, размер сектора,

коды синхронизации и другую служебную информацию.

Работа контроллера заключается в конвертировании

последовательного потока битов в блок байтов и коррекцию ошибок. Обычно

байтовый блок накапливается в буфере контроллера. Затем

проверяется контрольная сумма блока, и если она совпадает с указанной в

заголовке сектора, то блок считается принятым без ошибок. После

этого блок копируется в оперативную память.

Контроллер монитора (видеоадаптер) работает на таком же низ-

139

ком уровне. Он считывает из памяти байты, содержащие символы,

которые следует отобразить, и формирует сигналы, используемые для

модуляции луча электронной трубки, заставляющие ее выводить

изображение на экран. Видеоадаптер формирует сигналы,

управляющие горизонтальным и вертикальным возвратом луча.

Операционная система только инициализирует контроллер, задавая небольшое

количество параметров, таких, как количество пикселов в строке и

число строк на экране, а всю работу по управлению

передвижениями луча по экрану выполняет контроллер.

Ключевая концепция разработки ПО ввода-вывода

формулируется как независимость от устройств. Эта концепция означает

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

любому устройству ввода-вывода без предварительного указания

конкретного устройства. Например, программа, читающая данные из

входного файла, должна одинаково успешно работать с файлом на

дискете, жестком диске или компакт-диске. При этом не должны

требоваться какие-либо изменения в программе. В качестве

выходного устройства также может быть указан экран, файл на любом

диске или принтер. Все проблемы, связанные с отличиями этих

устройств, снимает операционная система.

Тесно связан с концепцией независимости от устройств

принцип единообразного именования. Имя файла или устройства должно

быть просто текстовой строкой или целым числом. Оно никак не

должно зависеть от физического устройства.

Другим важным аспектом ПО ввода-вывода является обработка

ошибок. Ошибки должны обрабатываться как можно ближе к

аппаратуре. Если контроллер обнаружил ошибку чтения, он должен по

возможности исправить эту ошибку сам. Если он не может это

сделать, то ошибку должен обработать драйвер устройства. Многие

ошибки бывают временными, например ошибки чтения, вызванные

пылинками на читающих головках. Такие ошибки исчезают при

повторном чтении блока. Только если нижний уровень не может сам

справиться с проблемой, о ней следует информировать верхний

уровень. Во многих случаях восстановление может осуществляться на

нижнем уровне, так, что верхние уровни даже не будут знать о

наличии ошибок.

Одним из ключевых вопросов является способ переноса дан-

140

ных — синхронный (блокирующий) или асинхронный (управляемый

прерываниями). Большинство операций ввода-вывода на физическом

уровне являются асинхронными — ЦП запускает перенос данных и

переключается на другой процесс, пока не придет прерывание.

Еще одним аспектом ПО ввода-вывода является буферизация.

Часто данные, поступающие с устройства, не могут быть сохранены

там, куда они направлены. Например, когда пакет приходит по сети,

ОС не знает, куда его поместить, пока не будет проанализировано

его содержимое. Буферизация предполагает копирование данных в

больших количествах, что часто является основным фактором

снижения производительности операций ввода-вывода.

И последним понятием, которое связано с вводом-выводом,

является понятие выделенных устройств и устройств коллективного

использования. С некоторыми устройствами, такими как диски, может

одновременно работать большое количество пользователей. При этом

не должно возникать проблем при одновременном открытии на

одном и том же диске нескольких файлов. Другие устройства, такие как

накопители на магнитной ленте, предоставляются в монопольное

пользование. Пока не завершит свою работу один пользователь

накопитель не может быть предоставлен другому пользователю. ОС

должна уметь управлять как устройствами общего доступа, так и

выделенными устройствами.

Существуют три различных способа осуществления операций

ввода-вывода. Простейший вид ввода-вывода состоит в том, что всю

работу выполняет центральный процессор. Этот метод называется

программным вводом-выводом. ЦП вводит или выводит каждый байт

или слово, находясь в цикле ожидания готовности устройства

ввода-вывода. Второй способ представляет собой управляемый

прерываниями ввод-вывод, при котором ЦП начинает передачу

ввода-вывода для символа или слова, после чего переключается на другой

процесс, пока прерывание от устройства не сообщит ему об

окончании операции ввода-вывода. Третий способ заключается в

использовании прямого доступа к памяти (DMA — Direct Memory Access),

при котором отдельная микросхема управляет переносом целого

блока данных и инициирует прерывание только после окончания

операции переноса блока.

141

3.2.7. Драйверы устройств

У контроллера каждого устройства есть набор регистров,

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

считывать состояние устройства. Число таких регистров и

выдаваемые команды зависят от конкретного устройства. Например,

программа управления мышью должна получать от мыши информацию

о том, насколько далеко она продвинулась по горизонтали и

вертикали, а также о нажатых кнопках мыши. Программа управления

диском должна знать о секторах, дорожках, цилиндрах, головках, их

перемещении и времени установки, двигателях и тому подобных

вещах, необходимых для правильной работы диска. Очевидно, что эти

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

управления каждым устройством ввода-вывода, подключенным к

компьютеру, называется драйвером устройства. Она обычно пишется

производителем и распространяется вместе с устройством.

Поскольку для каждой ОС требуются специальные драйверы, производители

устройств обычно поставляют драйверы для нескольких наиболее

популярных операционных систем.

Каждый драйвер устройства поддерживает один тип устройства

или, максимум, класс близких устройств. Например, драйвер дисков

может поддерживать различные диски, отличающиеся размерами и

скоростями. Однако мышь и джойстик отличаются настолько

сильно, что обычно требуют использования различных драйверов.

Чтобы получить доступ к аппаратной части устройства, т.е. к

регистрам контроллера, драйвер устройства должен быть частью ядра

операционной системы. Но возможно создать и драйвер,

работающий в пространстве пользователя. Это позволило бы изолировать

ядро от драйверов, а драйверы друг от друга. При этом была бы

устранена основная причина крушения операционных систем:

драйверы, содержащие ошибки, сталкивающиеся с ядром тем или иным

образом. Но поскольку современные операционные системы

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

Так как в ОС будут устанавливаться драйверы, выпускаемые

другими производителями, необходима архитектура, допускающая

подобную установку. Это означает, что должна быть выработана строго

определенная модель функций драйвера и его взаимодействия с

остальной операционной системой. Драйверы устройств обычно рас-

142

Программа пользователя

Остальная часть операционной системы

Драйвер

принтера

Контроллер

принтера

Принтер

Драйвер

видеокарты

Контроллер

видеоадаптера

Видеоадаптер

Драйвер

CD-ROM

Контроллер

CD-ROM

CD-ROM

Пространство

пользователя

Пространство

ядра

Аппаратура

Устройства

Рис. 3.5. Логическое расположение драйверов устройств

полагаются под остальной частью ОС (рис. 3.5).

Операционная система обычно классифицирует драйверы по

нескольким категориям в соответствии с типами обслуживаемых ими

устройств. К наиболее общим категориям относятся блочные

устройства, например, диски, содержащие блоки данных, к которым

возможна независимая адресация, и символьные устройства, такие как

клавиатуры и принтеры, формирующие или принимающие поток

символов.

В большинстве операционных систем определены два

стандартных интерфейса, один из которых должны поддерживать все

блочные драйверы, а второй — все символьные драйверы. Эти

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

операционной системой для обращения к драйверу. К этим

процедурам относятся, например, процедуры чтения блока или записи

символьной строки.

Некоторые ОС представляют собой двоичную программу,

содержащую в себе все необходимые драйверы. Такая схема в течение

многих лет была нормой для ОС UNIX, так как они предназнача-

143

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

ввода-вывода менялись редко. При добавлении нового устройства системный

администратор просто перекомпилировал ядро с новым драйвером,

получая новый двоичный модуль.

С появлением персональных компьютеров с их огромным

разнообразием устройств ввода-вывода такая модель перестала работать.

Далеко не все пользователи могли самостоятельно

перекомпилировать и собрать ядро даже при наличии исходных текстов или

объектных модулей. Поэтому операционные системы, начиная с MS-DOS,

перешли к модели динамической подгрузки драйверов. Различные

системы выполняют эту процедуру по-разному.

Драйвер устройства выполняет несколько функций:

1) обработку абстрактных запросов чтения и записи

независимого от устройств и расположенного над ними программного

обеспечения;

2) инициализацию устройства;

3) управление энергопотреблением устройства и регистрацией

событий;

4) проверку входных параметров. Если они не удовлетворяют

определенным критериям, драйвер возвращает ошибку. В противном

случае драйвер преобразует абстрактные термины в конкретные.

Например, дисковый драйвер может преобразовывать линейный номер

блока в номера головки, дорожки и секторы;

5) проверку использования устройства в данный момент. Если

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

устройство свободно, проверяется его состояние. Возможно, требуется

включить устройство или запустить двигатель, прежде чем начнется

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

собственно управление устройством.

Управление устройством подразумевает выдачу ему серии

команд. Именно в драйвере и определяется последовательность команд

в зависимости от того, что должно быть сделано. Определившись с

командами, драйвер начинает записывать их в регистры

контроллера устройства. Некоторые контроллеры способны принимать связные

списки команд, находящихся в памяти. Они сами считывают и

выполняют их без дальнейшей помощи операционной системы.

После того как драйвер передал все команды контроллеру,

ситуация может развиваться по двум сценариям. Во многих случаях драй-

144

вер устройства должен ждать, пока контроллер не выполнит для него

определенную работу, поэтому он блокируется до тех пор, пока

прерывание от устройства его не разблокирует. В других случаях

операция завершается без задержек и драйверу не нужно блокироваться.

Например, для скроллинга экрана в символьном режиме нужно

записать лишь несколько байтов в регистры контроллера. Вся

операция занимает несколько наносекунд.

По завершении выполнения операции драйвер должен

проверить, завершилась ли операция без ошибок. Если все в порядке,

драйверу, возможно, придется передать данные (например,

прочитанный блок) независимому от устройств программному обеспечению.

Затем драйвер возвращает некоторую информацию вызывающей

программе о завершении операции. Если в очереди находились другие

запросы, один из них теперь может быть выбран и запущен, в

противном случае драйвер блокируется в ожидании следующего

запроса.

Драйверам не разрешается обращаться к системным вызовам, но

им часто бывает необходимо взаимодействовать с остальным ядром.

Для этого драйверам можно вызывать некоторые системные

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

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

страниц обратно ядру. Кроме того, драйверы пользуются вызовами,

управляющими диспетчером памяти, таймерами, контроллером

DMA, контроллером прерываний и т. п.

Как сделать так, чтобы все устройства ввода-вывода и драйверы

выглядели примерно одинаково? Если диски, принтеры,

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

нового устройства будет требоваться переделка операционной системы,

что очень неудобно. Этот вопрос связан с интерфейсом между

драйверами устройств и операционной системой. Функции драйверов,

доступные системе, отличаются от драйвера к драйверу. Это

означает, что функции ядра, необходимые для драйвера, тоже

различаются, поэтому взаимодействие с каждым новым драйвером требует

больших усилий программистов.

Существует принципиально другой подход, при котором у всех

драйверов один и тот же интерфейс. При этом значительно легче

установить новый драйвер, при условии, что он соответствует

стандартному интерфейсу. Программисты, занимающиеся разработкой

145

драйверов, знают, какие функции они должны реализовать и к

каким функциям ядра они могут обращаться. На практике же не все

устройства являются абсолютно идентичными, но обычно имеется

небольшое число типов устройств, достаточно похожих друг на

друга. Например, даже у блочных и символьных устройств есть много

общих функций.

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

Всем компьютерным приложениям нужно хранить и получать

информацию. Наиболее удобной для доступа к долговременным

устройствам хранения информации оказалась система, при которой

пользователь назначает для той или иной совокупности данных

некоторое имя. Определенный участок диска, занятый информацией,

имеющей собственное имя, называется файлом. Часть ОС,

работающая с файлами и обеспечивающая хранение данных на дисках и

доступ к ним, называется файловой системой (ФС).

С точки зрения пользователя наиболее важным аспектом

файловой системы является ее внешнее представление, т.е. именование

и защита файлов, операции с файлами и т.д. Компьютеру

безразлично, какое имя имеет любая программа или документ, так как он

получает от ОС инструкцию подобно такой: «прочитай столько-то байт

с такого-то места на диске». При этом пользователь не обязан знать,

в каком физическом порядке и где именно находятся его данные. Ему

достаточно потребовать от ОС прочитать документ или загрузить

необходимую программу.

Одной из важнейших характеристик ОС, помимо управления

памятью, ресурсами компьютера и задачами, является поддержка

файловой системы — основного хранилища системной и

пользовательской информации.

Файлы относятся к абстрактному механизму. Они

предоставляют способ сохранить информацию на диске и считывать ее снова по

мере необходимости. Пользователю не нужны такие подробности,

как способ и место хранения информации, детали работы дисков.

Важной характеристикой любого механизма абстракции являются

принципы именования управляемых объектов, поэтому вкратце

рассмотрим правила именования файлов.

146

Точные правила именования файлов варьируются от системы к

системе, но все современные операционные системы поддерживают

использование в качестве имен файлов 8-символьные текстовые

строки. Так, книга, страница, карандаш являются допустимыми

именами файлов. Часто в именах файлов также разрешается

использование цифр и специальных символов, поэтому могут применяться и

такие имена файлов, как 2 (лучше _2), срочный! и Рис.2-14. Многие

файловые системы поддерживают имена файлов длиной до 255

символов.

В некоторых ФС различаются прописные и строчные символы,

в других, таких как MS-DOS, нет. Операционные системы Windows 95

и Windows 98 используют файловую систему MS-DOS и наследуют

многие ее свойства, включая именование файлов. Операционные

системы Windows NT и Windows 2000 также поддерживают файловую

систему MS-DOS и наследуют ее свойства. Однако у них имеется своя

файловая система NTFS, обладающая отличными свойствами.

Во многих ОС имя файла может состоять из двух частей,

разделенных точкой, например progr.exe. Часть имени файла после точки

называется расширением файла и обычно означает тип файла. Так, в

MS-DOS имя файла может содержать от 1 до 8 символов плюс через

точку расширение от 0 до 3 символов. В некоторых ОС, например в

UNIX, расширения файлов являются просто соглашениями, и ОС не

заставляет пользователя их строго придерживаться. Так, файл file.txt

может быть текстовым файлом, но это скорее памятка

пользователю, а не руководство к действию для операционной системы.

Система Windows, напротив, знает о расширениях файлов и назначает

каждому расширению определенное значение. Пользователи или

процессы могут регистрировать расширения в ОС, указывая

программу, создающую данное расширение. При двойном щелчке мышью на

имени файла запускается программа, назначенная этому

расширению, с именем файла в качестве параметра. Например, двойной

щелчок мышью на имени file.doc запускает MS Word, который

открывает файл file.doc.

Обычно пользователям бывает необходимо логически

группировать свои файлы, поэтому требуется некий гибкий способ,

позволяющий объединять файлы в группы. Следовательно, нужна некая

общая иерархия, т.е. дерево каталогов (см. рис. 3.3). При таком подходе

каждый пользователь может сам создать себе столько каталогов и

147

подкаталогов, сколько ему нужно, группируя свои файлы

естественным образом. В корневом каталоге могут быть также созданы

каталоги и подкаталоги, принадлежащие различным пользователям.

Возможность создавать произвольное количество подкаталогов является

мощным структурирующим инструментом, позволяющим

пользователям организовать свою работу По этой причине почти все

современные файловые системы организованы подобным образом.

При организации ФС в виде дерева каталогов требуется

некоторый способ указания файла. Для этого обычно используются два

различных метода. В первом случае каждому файлу дается

абсолютное имя пути, состоящее из имен всех каталогов от корневого до того,

в котором содержится файл, и имени самого файла. Например, путь

\user\abc\myfile.doc означает, что корневой каталог содержит каталог

user, который, в свою очередь, содержит подкаталог abc, где

находится файл myfile.doc. Абсолютные имена путей всегда начинаются от

корневого каталога и являются уникальными. Если первым

символом имени пути является разделитель, это означает, что путь

абсолютный. Применяется и относительное имя пути. Оно используется

вместе с понятием текущего каталога. Пользователь может назначить

один из каталогов текущим рабочим каталогом. В этом случае все

имена путей, не начинающиеся с символа разделителя, считаются

относительными и отсчитываются относительно текущего каталога.

Например, если текущим каталогом является \user\abc, тогда к

файлу с абсолютным путем \user\abc\myfile.doc можно обратиться

просто как к myfile.doc.

Итак, любая файловая система предназначена для хранения

информации о физическом размещении частей файла. В ФС существует

минимальная единица информации — кластер, размер которого

является нижним пределом размера записываемой на носитель

информации в рамках ФС. Не следует путать понятие кластера с понятием

сектора, который является минимальной единицей информации со

стороны аппаратного обеспечения. От ФС требуется четкое

выполнение следующих действий:

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

• определение наличия свободного места и выделение его для

вновь создаваемых файлов.

Скорость выполнения этих операций напрямую зависит от

самой ФС. Разные файловые системы используют различные механиз-

148

мы для реализации указанных задач и имеют свои преимущества и

недостатки. ФС типа FAT (File Allocation Table) представляют собой

образ носителя в миниатюре, где детализация ведется до

кластерного уровня. Поэтому операция поиска физических координат файла

при его большой фрагментации будет затруднительна. ФС FAT16

занимает объем 128 Кб. И это позволяет легко кэшировать ее

информацию. Для FAT32 эта величина для больших дисков составит ~ 1 Мб,

что еще более затрудняет поиск физических координат фрагменти-

рованного файла. Еще хуже обстоит дело с поиском свободного

места для больших файлов. Приходится просматривать практически всю

таблицу. Быстродействие падает. NTFS (New Technology File System)

использует более компактную форму записи, что ускоряет поиск

файла. Операции с выделением места проходят быстрее. Ключевое

преимущество NTFS — возможность ограничения доступа к файлам и

папкам.

Важный параметр — размер кластера. Больший размер кластера

гарантирует более высокую производительность за счет уменьшения

самой ФС. Для NTFS увеличение кластера — болезненная

процедура из-за невозможности выполнить дефрагментацию, поскольку

большинство таких программ не работает с кластерами, отличными

от штатных 4 Кб.

Файловые системы Microsoft Windows

Рассмотрим основные файловые системы, поддерживаемые

Windows — FAT16, FAT32, NTFS, а также системы CDFS и UDF.

Каждая файловая система имеет свои достоинства и недостатки.

Файловая система FAT 16 начала свое существование еще во

времена, предшествующие MS-DOS. Она поддерживается всеми ОС

Microsoft для обеспечения совместимости. Ее название File Allocation

Table (таблица расположения файлов) отлично отражает физическую

организацию файловой системы, к основным характеристикам

которой можно отнести то, что максимальный размер

поддерживаемого тома HDD или его раздела не превышает 4095 Мбайт. Во времена

MS-DOS 4-гигабайтные HDD казались несбыточной мечтой

(роскошью были диски 20—40 Мбайт), поэтому такой запас был вполне

оправдан.

Том, отформатированный для использования FAT16,

разделяется на кластеры. Размер кластера по умолчанию зависит от размера

149

тома и может колебаться от 512 б до 64 Кб. Размер кластера может

отличаться от значения по умолчанию, но должен иметь одно из

значений, предписанных для этой ФС.

Не рекомендуется использовать файловую систему FAT 16 на

томах больше 511 Мб, так как для небольших файлов дисковое

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

размером 1 байт будет занимать 16, 32 или 64 Кб. Независимо от размера

кластера файловая система FAT 16 не поддерживается для томов

больше 4 Гбайт.

На рис. 3.6 показано, как организован том при использовании

файловой системы FAT 16.

Рис. 3.6. Организация тома в файловой системе FAT16

Единственным отличием корневого каталога от других

каталогов является то, что он располагается в определенном месте и имеет

фиксированное число вхождений. Так, если число фиксированных

вхождений для корневого каталога равно 512 и создано 100

подкаталогов, то в корневом каталоге можно создать не более 412 файлов.

Начиная с Windows 95 OSR2, появилась поддержка 32-битной

FAT Для систем на базе Windows NT эта файловая система впервые

стала поддерживаться в Windows 2000. Если FAT 16 может

поддерживать тома объемом до 4 Гб, то FAT32 способна обслуживать тома

объемом до 2 Тб. Размер кластера в ЕАТ32 может изменяться от

1 (512 б) до 64 секторов (32 Кб). Для хранения значений кластеров

FAT32 требуется 4 б (32 бит, а не 16, как в FAT16). Это означает, в

частности, что некоторые файловые утилиты, рассчитанные на

FAT16, не могут работать с FAT32.

Основным отличием FAT32 от FAT16 является то, что

изменился размер логического диска. FAT32 поддерживает тома до 127 Гб.

При этом, если при использовании FAT16 с 2-гигабайтными

дисками требовался кластер размером в 32 Кб, то в FAT32 кластер

размером р 4 Кб подходит для дисков объемом от 512 Мб до 8 Гб.

150

Это приводит к более эффективному использованию дискового

пространства — чем меньше кластер, тем меньше места требуется для

хранения файла и, как следствие, диск реже становится фрагменти-

рованным.

При применении FAT32 максимальный размер файла может

достигать 4 Гб минус 2 байта. Если при использовании FAT16

максимальное число вхождений в корневой каталог ограничивалось 512, то

FAT32 позволяет увеличить это число до 65535.

При создании файла с длинным именем Windows создает

соответствующее имя в формате 8.3 и одно или более вхождений в

каталог для хранения длинного имени (по 13 символов из длинного

имени файла на каждое вхождение). Каждое последующее вхождение

хранит соответствующую часть имени файла в формате Unicode.

Такие вхождения имеют атрибуты идентификатор тома, только

чтение, системный и скрытый — набор, который игнорируется MS-DOS.

В состав Windows 2000 входит поддержка новой версии

файловой системы NTFS, которая, в частности, обеспечивает средства

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

Как и при использовании FAT, основной информационной

единицей в NTFS является кластер. При формировании файловой

системы NTFS программа форматирования создает файл Master File Table

(MTF) и другие области для хранения метаданных. Метаданные

используются NTFS для реализации файловой структуры. Первые