Файловая система операционной системы MS-DOS: Методические рекомендации по выполнению лабораторной работы

Страницы работы

Содержание работы

ФАЙЛОВАЯ  СИСТЕМА  ОПЕРАЦИОННОЙ  СИСТЕМЫ  MS-DOS

Лабораторная    работа     №  5

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.

Функции MS-DOS для работы с файловой системой

Группа

функций

Номер

функции

Название

функции

Создание,

открытие

и закрытие

файла

3Ch

5Ah

5Bh

3Dh

3Eh

68h

41h

Создать файл

Создать временный файл

Создать новый файл

Открыть файл

Закрыть файл

Сбросить файл на диск

Удалить файл

Запись

и чтение

данных

42h

3Fh

40h

Установить  указатель

Читать из файла или устройства

Записать в файл или устройство

Изменение

характеристик файла

43h

56h

57h

Получить/установить атрибуты

Переименовать файл

Дата/время создания файла

Поиск

Файла

1Ah

2Fh

4Eh

4Fh

Установить область передачи (DTA)

Получить область передачи  (DTA)

Найти первый файл

Найти следующий файл

Операции

над

каталогами

39h

3Ah

3Bh

47h

Создать каталог

Удалить каталог

Сменить текущий каталог

Получить текущий каталог

Операции

над

дисками

19h

0Eh

36h

Получить текущий диск

Сменить текущий диск

Получить информацию о диске

Более детальные сведения по конкретной функции и остальным функциям  можно получить в электронном справочнике TECH HELP или в специальной литературе.

В Приложении 4 приведен пример программы на языке С для выполнения операций по созданию   каталога, созданию файла в каталоге, записи в файл и вывода строки на экран с помощью соответствующих функций MS-DOS. Для обращения к системным вызовам в примере используется функция  intdos() стандартной библиотеки компилятора Borland C++  (файл включения dos.h).

Следует отметить, что Microsoft Windows 9x, кроме поддержки полного набора системных функций MS-DOS, предоставляет расширения, позволяющие программам MS-DOS использовать преимущества Windows. Примером может являться функция 6Ch INT 21h – расширенное открытие / создание файла.

Похожие материалы

Информация о работе