Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Файловая система FAT и управление данными в MS-DOS

Структуры данных в памяти

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

Таблица SFT (System File Table) содержит записи о всех файлах, в данный момент открытых программами пользователя и самой ОС. Эта таблица хранится в системной памяти, число записей в ней определяется параметром FILES в файле конфигурации CONFIG.SYS, но не может превышать 255.

Если один и тот же файл был открыт несколько раз (неважно, одной и той же программ             ой или разными программами), то для него будет несколько записей в SFT.

Каждая запись содержит подробную информацию о файле, достаточную для выполнения операций с ним. В частности, в записи SFT содержатся:

·         копия каталожной информации о файле;

·         адрес каталожной записи (сектор и номер записи в секторе);

·         текущее положение указателя чтения/записи;

·         номер последнего записанного или прочитанного кластера файла;

·         адрес в памяти программы, открывшей файл;

·         режим доступа, заданный при открытии.

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

В отличие от единственной SFT, таблицы JFT (Job File Table) создаются для каждой запускаемой программы, поэтому одновременно может существовать несколько таких таблиц. (А откуда в однозадачной MS-DOS могут взяться одновременно несколько программ? Простейший ответ: когда одна программа запускает другую, то в памяти присутствуют обе. Подробнее см. п. 4.4.3.) Таблица JFT имеет простейшую структуру: она состоит из однобайтовых записей, причем значение каждой записи представляет собой индекс (номер записи) в таблице SFT. Неиспользуемые записи содержат значение FF16. Размер таблицы по умолчанию составляет 20 записей (байт), но может быть увеличен до 255.

предыдущаяследующая