На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 4 / Структуры данных ввода/вывода DOS Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Структуры данных ввода/вывода DOS

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


Когда DOS загружает программу, она записывает PSP этой программы в общие переменные (В DOS 3.10 эти переменные размещены со смещением 02DEh в сегменте DOS). Программа, чей PSP записан в сегменте DOS, становится текущей. Как только IBMBIO загрузила ядро системы, имеется всегда одна и только одна текущая программа.


Когда программа делает запрос на ввод/вывод, она передает DOS описатель или блок управления файлом. Для обработки описателя файла DOS должен найти структуру данных, известную как рабочая таблица файлов (JFT). Каждый PSP содержит адрес JFT на смещении 34h (Листинг 4-5 "Структура PSP"). Для нахождения текущей JFT DOS проcматривает PSP текущей программ. Обычно JFT начинается со смещения 18h PSP (т.е. адрес JFT указывает другое смещение внутри PSP). Для получения номера системного файла (SFN), который, в свою очередь, является индексом в системной таблице файлов, DOS использует описатель как индекс в JFT. Одно из неописанных полей внутри FCB содержит номер системного файла(FSN); этот SFN является индексом системной таблицы файлов FCB. Эта системная таблица указывает DOS, как найти устройство.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz