ФАЙЛОВАЯ СИСТЕМА ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS
1. ЦЕЛЬ РАБОТЫ
Изучение системных средств ОС MS-DOS для работы с файловой системой и приобретение практических навыков их использования.
2. ОСНОВНЫЕ СВЕДЕНИЯ
2.1. Функции файловой системы
Файловая система (ФС) – это часть программного обеспечения, в которую входят:
- Совокупность всех файлов вычислительной системы;
- Структуры данных для управления файлами, такие как каталоги, таблицы распределения свободного и занятого пространства на диске и др.;
- Системные программы, выполняющие такие операции над файлами, как создание, уничтожение, чтение, запись, поиск, ограничение доступа.
Файловая система ОС обеспечивает программисту возможность работать с такими средствами, как логический диск, каталог, файл. Программист при этом не имеет дело с деталями расположения файлов на диске, номерами поверхности, цилиндра и сектора на диске, буферизацией данных.
Языки высокого уровня имеют разнообразные гибкие средства (операторы, функции и др.) для работы с файловой системой. В языках С и С++ файл рассматривается как поток (stream), представляющий собой последовательность считываемых или записываемых байтов. Расшифровку смысла последовательностей байтов должна выполнять программа. В программах Приложений 1, 2 и 3 приведены примеры файловых операций ввода / вывода в программах с помощью соответствующих функций стандартных библиотек и классов библиотек ввода / вывода С и С++.
Функции файловой системы изменяются в зависимости от типа операционной системы: однопользовательская, многозадачная или многопользовательская ОС. Наиболее простая организация файловой системы в однопользовательских и однопрограммных ОС, типичным представителем которых является ОС MS-DOS.
В MS-DOS, как и во многих других ОС, используется древовидная (иерархическая) структура каталогов. Полное имя (спецификация) файла включает не только его имя, но и имя диска и перечисление всех каталогов (путь к файлу), например, c:\users\mydir\program1.cpp. Для файлов текущего каталога достаточно указания имени.
Сам каталог представляет собой особый тип файла, в котором содержится перечень всех подкаталогов следующего уровня и файлов, входящих в данный каталог. В каталоге каждому подкаталогу или файлу выделяется одна запись размером 32 байта, в поля которой ОС заносит имя, размер начального кластера на диске, дату и время создания, размер файла в байтах и атрибуты файла. Атрибуты файла - это его некоторые свойства (особенности), такие, как «файл только для чтения», «системный файл», «архивный» и др. Файл может иметь несколько атрибутов одновременно.
2.2. Таблица размещения файлов
MS-DOS поддерживает несвязное распределение файлов во внешней памяти, при котором отдельный файл может быть размещен в несмежных участках диска. Такое распределение позволяет многократно дописывать в файл новые данные и использовать любые свободные области диска для размещения файла.
Для учета распределения файла на диске используется таблица размещения файлов (File Allocation Table - FAT). MS-DOS использует FAT16. Пространство диска разделяется на кластеры, представляющие собой несколько смежных секторов диска. Номер первого кластера запоминается в записи каталога, относящейся к файлу. Номера (индексы) кластеров диска хранятся в ячейках FAT. Когда кластер выделяется файлу, то индекс кластера становится равным номеру следующего кластера файла, либо индекс принимает значение, являющегося кодом последнего кластера файла. Таким образом, цепочки кластеров в виде связанных списков позволяют определять размещение файлов по дисковому пространству.
В системной области диска при форматировании создаются две копии FAT для дублирования этой важной структуры при её случайном повреждении.
2.3.Дескрипторы файлов
Для выполнения операций с файлами MS-DOS использует дескрипторы файлов (handle). Дескриптор файла в MS-DOS –это 16-разрядный код (номер) файла. При открытии файла ОС назначает ему дескриптор и записывает его значение в таблицу открытых файлов (System File Table, SFT) программы. В дальнейшем все операции с файлом (запись, чтение, изменение характеристик и т.д.) осуществляются не по имени файла, а с помощью дескриптора. В SFT записываются основные характеристики файла – имя, длина, атрибуты, физический адрес на диске записи файла в каталоге, а также указатель файла – номер байта, с которого начинается очередная операция записи / чтения. Содержимое SFT отражает текущее состояние файла. При закрытии файла сбрасывается содержимое буферов на диск, модифицируется каталог на диске, освобождается выделенный ему блок описания файла в SFT вместе с дескриптором, которые можно использовать для работы с другим файлом. Максимальное число файлов, которые можно одновременно открыть, устанавливается директивой FILES файла конфигурации CONFIG.SYS.
Операции чтения / записи могут выполняться в режиме последовательного доступа, когда обрабатываются последовательно байт за байтом с начала файла, и в режиме прямого доступа, при котором операции производятся с произвольным участком файла.
2.4. Стандартные файлы ввода - вывода
Файловые операции чтения / записи часто используются также для ввода / вывода через стандартные устройства компьютера. Для работы со стандартными устройствами предоставляются пять предоопределенных дескрипторов:
0 - стандартный ввод, имя на языке C – STDIN,
1 - стандартный вывод, STDOUT,
2 - стандартная ошибка, STDERR, используется для вывода на экран сообщений об ошибках,
3 – стандартный последовательный порт, STDAUX,
4 - стандартный принтер, STDPRN.
Операция файлового ввода с дескриптором 0 производит ввод со стандартного устройства ввода, которым по умолчанию является клавиатура, операция файлового вывода с дескриптором 1 выполняет вывод на стандартное устройства вывода (экран). С помощью командного процессора COMMAND.COM можно осуществить перенаправление (переадресацию) ввода или вывода. Например, команда
PROG.EXE < FILE1.TXT > FILE2.TXT
при исполнении из командной строки DOS осуществляет ввод информации в PROG из файла FILE1.TXT и выполняет вывод в файл FILE2.TXT без использования клавиатуры и экрана.
2.4. Обзор функций MS-DOS для работы с файлами и файловой системой
В MS-DOS функции файловой системы реализуются с помощью прерывания INT 21h. В таблице 1 приведены наиболее часто используемые функции INT 21h, используемые в операциях с файлами, каталогами и дисками.
Таблица 1.
Группафункций |
Номер функции |
Названиефункции |
Создание, открытиеи закрытие файла |
3Ch5Ah 5Bh 3Dh 3Eh 68h 41h |
Создать файлСоздать временный файл Создать новый файл Открыть файл Закрыть файл Сбросить файл на диск Удалить файл |
Запись и чтение данных |
42h3Fh40h |
Установить указательЧитать из файла или устройстваЗаписать в файл или устройство |
Изменение характеристик файла |
43h56h 57h |
Получить/установить атрибутыПереименовать файлДата/время создания файла |
Поиск Файла |
1Ah2Fh 4Eh 4Fh |
Установить область передачи (DTA)Получить область передачи (DTA) Найти первый файлНайти следующий файл |
Операции над каталогами |
39h3Ah 3Bh 47h |
Создать каталогУдалить каталогСменить текущий каталог Получить текущий каталог |
Операции над дисками |
19h0Eh 36h |
Получить текущий дискСменить текущий диск Получить информацию о диске |
Более детальные сведения по конкретной функции и остальным функциям можно получить в электронном справочнике TECH HELP или в специальной литературе.
В Приложении 4 приведен пример программы на языке С для выполнения операций по созданию каталога, созданию файла в каталоге, записи в файл и вывода строки на экран с помощью соответствующих функций MS-DOS. Для обращения к системным вызовам в примере используется функция intdos() стандартной библиотеки компилятора Borland C++ (файл включения dos.h).
Следует отметить, что Microsoft Windows 9x, кроме поддержки полного набора системных функций MS-DOS, предоставляет расширения, позволяющие программам MS-DOS использовать преимущества Windows. Примером может являться функция 6Ch INT 21h – расширенное открытие / создание файла.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.