Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава08.doc
Скачиваний:
3
Добавлен:
14.04.2019
Размер:
473.09 Кб
Скачать

Спецификация файла

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

  • диск;

  • каталог;

  • полное имя файла.

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

[drive:][\][path\]filename[.type],

или в русскоязычном варианте:

[дисковод:][\][путь\]имя файла[.расширение].

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

Элемент drive (дисковод) обозначает диск, на котором находится файл или куда он записывается, например, А:, B:, С:, D: и т. д. Если дисковод не указан, то по умолчанию используется текущий диск. Текущий диск — это диск, с которым в настоящий момент работает операционная система (ОС). Текущий диск устанавливается автоматически после загрузки ОС и может быть переустановлен командой операционной системы. Имя текущего диска всегда выводится в подсказке на экране.

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

Например,

D:\VIR\aidstest.exe — файл aidstest.exe находится в подкаталоге VIR на диске D:. Путь состоит из корневого каталога и подкаталога VIR. (Если текущий дисковод D, то можно указать \VIR\aidstest.exe.)

D:\ASM\ASMPROG\sqr.asm — файл sqr.asm находится в каталоге ASMPROG. Путь включает в себя корневой каталог и подкаталоги ASM и ASMPROG.

Masm.exe — файл masm.exe отыскивается на текущем диске в текущем каталоге. Текущим каталогом должен быть каталог ASM. (Если текущий каталог ASMPROG, то годится спецификация ..masm.exe.)

Дисковод и путь могут не указываться при обращении к файлам типа COM, EXE или BAT даже если диск и каталог не являются текущими. В этом случае сведения о диске и пути указываются в команде PATH, включаемой в файл Autoexec.bat. Для стандартных символьных внешних устройств ПК (они выступают здесь как логические устройства) предусмотрены постоянные имена, (правда, без расширений), позволяющие обращаться к ним как к файлам:

  • PRN или LPT1 (2, 3) — принтер;

  • CON — консоль (клавиатура при вводе и дисплей при выводе);

  • COM1 (2, 3, 4) — дополнительные символьные внешние устройства;

  • NUL — фиктивное устройство; обычно используется при отладке программ пользователей.

Размещение информации на дисках

Дорожки диска разбиты на секторы. В одном секторе дорожки обычно размещается 512 байтов данных. Обмен данными между НМД и ОП осуществляется последовательно кластерами. Кластер — это минимальная единица размещения информации на диске, состоящая из двух или большего числа смежных секторов дорожки (кластеры называют также единицами выделения памяти — allocation unit). Поэтому, если необходимо разместить на диске маленький файл, например размером 20 байтов, он все равно займет дисковое пространство размером в кластер (минимум 2 ´ 512 = 1024 байта).

Количество секторов в кластере всегда равно целой степени 2. Таблица FAT16 в 16-ти битах должна быть способна отображать значение максимального номера кластера, то есть количество кластеров на диске (или в разделе диска) не больше, чем 216 = 65 536. По причине выхода за пределы 16-битовой адресации внутри кластера его максимальный размер должен быть меньше 64 Кбайт, то есть 32 Кбайта. В FAT16 размер кластера (а косвенно и количество кластеров) можно определить, разделив объем памяти диска на 64 Кбайт (65 536) и округлив результат до ближайшего большего числа, кратного степени двойки. Так, для диска емкостью 1,2 Гбайт размер кластера составит: 1 258 291,2/65,5 = 19,2 Кбайт, после округления получим 32 Кбайт; для дисков объемом 2 Гбайт размер кластера будет равен 64 Кбайт, а для 2,5-гигабайтовых дисков — более 64 Кбайт, что недопустимо. Иными словами, FAT16 практически может работать только с дисками емкостью не более 2 Гбайт.

Поэтому была разработана более мощная 32-разрядная файловая система FAT32. В ней количество секторов и количество кластеров могут быть одинаковыми, и ограничено значением 232. Хотя размер кластера с целью экономии дискового пространства можно было бы приравнять размеру сектора, это не сделано по причине большого объема самой FAT — таблицы размещения файлов (напомню, что по имени этой таблицы называют и всю файловую систему целиком), которая для диска, например, емкостью 10 Гбайт будет иметь размер 80 Мбайт (а таких файлов на диске должно быть несколько, включая страховые копии). Одна из таблиц при наличии кэш-памяти для диска загружается в ОП. Поэтому размеры кластеров в FAT32 приняты в соответствии с табл. 10.2.

Таблица 10.2. Размеры кластеров в FAT32

Емкость диска, Гбайт

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

До 8

4

До 16

8

До 32

16

Более 32

32

ПРИМЕЧАНИЕ

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]