Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основные характеристики файловой системы MS-DOS



В машинах типа IBM PC предусмотрены два уровня обращения к магнитным дискам. При работе на нижнем уровне пользователь с помощью прерывания BIOS INT 13h обращается непосредственно к драйверу диска. Типичными операциями этого уровня являются запись или чтение сектора, позиционирование головок, форматирование дорожки. Файловая система DOS не используется; требуемая информация отыскивается не по имени файла, а по номерам поверхности, цилиндра и сектора.

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

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

Атрибуты файла (в том числе файла каталога) хранятся в специально отведенном для них байте атрибутов и имеют следующие значения:

· 0lh - файл только для чтения. Модификация или удаление файла запрещаются DOS;

· 02h - скрытый файл (не "замечаемый" командой DIR и некоторыми функциями DOS);

· 04h - системный файл (обычно с программами самой DOS);

· 08h - запись о файле представляет собой метку тома. Такая запись (одна на весь том) может существовать только в корневом каталоге;

· l0h - файл представляет собой каталог;

· 20h - файл после создания или модификации не был архивирован и, следовательно, нуждается в архивации (атрибут архивации).

При создании нового файла DOS сама отыскивает на диске свободное место и назначает его новому файлу, создавая и заполняя соответствующую этому файлу запись в каталоге. Хотя минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор (512 байт) и программы BIOS работают как раз с секторами, файловая система назначает место на диске целыми кластерами. Размер кластера на гибком диске составляет два сектора (1 Кбайт); на жестком диске в кластер могут входить 4 - 8 и более секторов. Таким образом, минимальный физический размер файла, даже если данные в нем занимают лишь несколько байт, составляет один кластер. Однако в записи каталога указывается не физическая, а логическая длина файла, т.е. объем содержащихся в нем данных в байтах.

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

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

· создание файла с заданным именем в указанном каталоге или открытие файла, если он был создан ранее;

· запись в файл или чтение из файла всего содержимого либо любой его части;

· закрытие файла.

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

Существуют два способа выполнения операций с файлами: с использованием блоков управления файлами (FCB, File control block) и дескрипторов файлов (handle).

Использование FCB было характерно для первых версий DOS (до 2.0). FCB-структуры и соответствующие функции DOS не поддерживают древовидных каталогов, и поэтому они могут работать только с файлами из текущего каталога текущего диска. С их помощью, естественно, нельзя создавать или удалять сами каталоги. В настоящее время функции типа FCB остались в давно созданных программах и в данном пособии рассматриваться не будут.

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

Для работы со стандартными устройствами DOS предоставляет пять предопределенных дескрипторов:

0 - стандартный ввод (CON);

1 - стандартный вывод (CON);

2 - стандартная ошибка (CON);

3 - стандартный вспомогательный последовательный порт (AUX);

4 - стандартный принтер (PRN).

Таким образом, при работе с терминалом, принтером или последовательным портом нет необходимости открывать новые дескрипторы; ввод с клавиатуры осуществляется через дескриптор 0, вывод на экран - через дескрипторы 1 или 2, вывод на принтер - через дескриптор 4. Различие дескрипторов 1 и 2 заключается в том, что стандартный вывод (как и стандартный ввод) можно перенаправить средствами DOS на любое устройство или в файл, а стандартная ошибка всегда связана с экраном. Обычно дескриптор 2 используют для вывода на экран аварийных или диагностических сообщений.

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

A. Создание, открытие и закрытие файла:

3Ch - создать файл;

5Ah - создать временный файл;

5Bh - создать новый файл;

3Dh - открыть файл;

3Eh - закрыть файл;

68h - сбросить файл на диск;

41h - удалить файл.

B. Запись и чтение данных:

42h - установить указатель;

3Fh - читать из файла или устройства;

40h - записать в файл или устройство.

C. Изменение характеристик файла:

43h - получить или установить атрибуты файла;

56h - переименовать файл;

57h - получить или установить дату и время создания файла.

D. Поиск файла:

lAh - установить адрес области передачи данных (DTA);

2Fh - получить адрес области передачи данных (DTA);

4Eh - найти первый файл;

4Fh - найти следующий файл.

E. Операции над каталогами:

39h - создать каталог;

3Ah - удалить каталог;

3Bh - сменить текущий каталог;

47h - получить текущий каталог.

F. Операции над дисками:

19h - получить текущий диск;

OEh - сменить текущий диск;

36h - получить информацию о диске.

 


Поделиться:



Последнее изменение этой страницы: 2019-05-07; Просмотров: 177; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.027 с.)
Главная | Случайная страница | Обратная связь