Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Основные характеристики файловой системы 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; Нарушение авторского права страницы