Программирование в среде IS-DOS 1993 г.

Общие понятия и терминология, принятые в системе IS-DOS - определения, таблицы, адресное пространство.


7. ОБЩИЕ ПОНЯТИЯ И ТЕРМИНОЛОГИЯ, ПРИНЯТЫЕ В СИСТЕМЕ IS-DOS

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

Уровень ядра - некоторое подмножество подпрограмм, входящее в ядро. Множество всех уровней является непере-
секающимся множеством, в совокупности образующим ядро.

Минимальное количество уровней, обязательное для работы операционной системы, равно 3 (0-й, 1-й и 2-й), мак-
симальное количество уровней, которое может быть создано и одновременно доступно разработчику прикладной прог-
раммы, равно 8 (самый верхний - 7-й).

Обращение к ядру из программ пользователя или из других подпрограмм ядра обычно происходит через инструкцию
ассемблера RST 16. При этом в регистре С должен находиться код функции, которую будет выполнять соответствую-
щяя подпрограмма соответствующего уровня ядра.

Уровни ядра загружаются транзитной командой SET.com с диска.

Уровень ядра 0 - набор подпрограмм для обеспечения взаимодействия с устройствами, драйверами и каталогами.
Диапазон кодов функций - от 0 до 31.

Уровень ядра 1 - набор подпрограмм, образующих файловую службу. Диапазон кодов функций - от 32 до 63.

Уровень ядра 2 - набор подпрограмм, организующих работу с каталогами и транзитными командами. Диапазон
кодов функций - от 64 до 95.

Уровень ядра 3 - набор подпрограмм, реализующих функции оконной технологии. Диапазон кодов функций - от
96 до 127.

Уровень ядра 4 - набор подпрограмм, создающих пользователю удобную среду для интерактивной работы с фай-
лами и каталогами дисковой внешней памяти (так называемую "файловую оболочку"). Диапазон кодов функций - от
128 до 159.

Супервизор ядра - программа, расположенная в нулевом уровне и обрабатывающая инструкции RST 16. Она ана-
лизирует содержимое регистра С, в котором находится код выполняемой команды и либо выполняет соответствующую
подпрограмму ядра, либо - в случае ошибки - возвращает управление программе, вызвавшей RST 16, помещая код
ошибки в регистр А и устанавливая флаг С в регистре состояния процессора.

При выполнении инструкции RST 16 содержимое регистра С интерпретируется следующим образом : старшие 3
бита задают номер уровня ядра (отсюда пошло ограничение на количество уровней), младшие 5 битов задают номер
функции в пределах конкретного уровня.

Если в настоящий момент в системе нет требуемого уровня, или в заданном уровне нет требуемой функции, то
последствия будут самыми непредсказуемыми, ибо последние версии iS-DOS не следят за этим.

Т.о. из вышесказанного ясно, что в системе IS-DOS в качестве рестартов используется ТОЛЬКО RST 16 с ука-
занием функции в регистре "С" (сделано по типу INT 21 в IBM/MS-DOS)

Устройство - аппаратурная компонента ПЭВМ. С точки зрения IS DOS устройства подразделяются на блочные
устройства, символьные устройства вывода, символьные устройства ввода. Система IS DOS поддерживает до 8-и уст-
ройств каждого типа.

Драйвер - резидентная перемещаемая программа, которая может обслуживать одно или несколько устройств
одного типа.

Драйверы загружаются транзитной командой set.com с диска.

Резидентная задача - программа, имеющая такую же структуру, как и драйвер, но не обслуживающая устройс-
тва. Может применяться для различных целей.

Резидентная задача запускается на выполнение из монитора или командного файла командой

@имя задачи [параметры]

Резидентные задачи, как и драйверы могут иметь имя, отличное от имени файла.

Фоновые задачи - задачи, выполняющиеся по прерыванию. Они вызываются на выполнение каждые 20 млс.

Цепочка фоновых задач - несколько фоновых задач, последовательно выполняемых по прерыванию. Рекоменду-
ется, чтобы общее время выполнения всех задач из цепочки не превышало 15 млс. В цепочку фоновых задач рекомен-
дуется помещать такие задачи, которые требуется вызывать на выполнение периодически через равные промежутки
времени. Цепочка фоновых задач всегда состоит по крайней мере из двух задач: задачи обслуживания 4-х байтного
счетчика времени и задачи опроса клавиатуры. Кроме того, периодически при необходимости включается задача ми-
гания курсора.

Транзитные команды - команды операционной системы, обработчики которых находятся на диске (программы
пользователя тоже могут рассматриваться как транзитные команды).

Рекурсивная цепочка - цепочка, описывающая вложенность файлов (например, когда программа вызывает на
выполнение саму себя).

Диски - с точки зрения пользователя Moryi быть трех типов :

- архивные диски - предназначены для хранения данных, доступны только для использования в IS DOS и не-
доступны для TR-D0S (помечены, как занятые) - создаются программой is_tools.com;

- рабочие диски с монитором оболочки - предназначены для работы в IS DOS - создаются из архивных дисков
копированием в главный каталог файла extend.txt, добавлением каталогов SHELL, UNIL, RES, EDIT, СЕРВИС и копи-
рованием туда необходимых утилит;

/

- загрузочные диски - предназначены для загрузки IS DOS - создаются из рабочих дисков добавлением файла
с копией системы,подключением ее к диску транзитной командой connect.com, фиксирующей необходимые адресные
ссылки на диске на файл копии системы для ее загрузки, и запуском программы boot.com на этом диске. Программа
boot.com создает в 5-м секторе 0-й дорожки системный загрузчик из среды TR DOS.

Кроме того, можно создать файл autoexec.bat в корневом каталоге - он будет выполняться непосредственно
перед выходом в монитор оболочки и осуществлять действия для создания необходимой пользователю комфортной сре-
ды для работы;

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

Любой канал имеет следующую структуру :

Менеджер каналов - программа нулевого уровня, которая по требованию системы или пользователя выделяет
новый временный канал, выбирая из каналов, выделенных менеджеру, свободны канал с наименьшим номером.

Каналы с определенными логическими номерами имеют следующее жестко фиксированное предназначение :
#00 ... #07 - для работы блочных устройств;

#08 ... #0F - для работы символьных устройств вывода;

#10 ... #17 - для работы символьных устройств ввода;

#18 ... #D7 - доступны менеджеру каналов, который может вызываться пользователем;

#D8 ... #Е7 - зарезервированы для описания резидентных задач;

#Е8 ... #EF - зарезервированы для описания драйверов символьных устройств ввода;

#F0 ... #F7 - зарезервированы для описания драйверов символьных устройств вывода;

#F8 ... #FF - зарезервированы для описания драйверов блочных устройств;

Виртуальный диск представляет собой быстродоступную копию некоторых наиболее часто используемых блоков

блочных устройств. Он размещается в памяти и имеет следующую структуру:

Размер виртуального диска (количество блоков) в 0-м уровне ядра.

Описатель блока имеет следующую структуру :

1-й байт - регистр состояния блока, совмещенный с номером устройства:

7-й бит : блок модифицирован (1) или нет (0);

6-й бит : блок защищен (1) или нет (0);

5-й бит : блок существует (1) или нет (0);

4-й, 3-й биты : резервные;

2-й ... 0-й биты : номер устройства, которому принадлежит блок.

2-й байт - счетчик обращений к блоку;

3-й и 4-й (мл.,ст.) - номер блока на устройстве.

Минимальный размер виртуального диска равен 6 блокам.

Виртуальный диск создается системой автоматически, т.к. он необходим для работы файловой службы. Поль-
зователь может изменять размер виртуального диска.

Файлы и каталоги в IS DOS могут быть двух типов - непрерывные и сегментированные. Непрерывным файлом
является тот, у которого блоки идут без промежутков один за другим. Сегментированным называется тот, у которо-
го блоки могут располагаться в любой области дискового пространства (по принципу заполнения "дырок"). Непре-
рывные файлы и каталоги можно только укорачивать, зато доступ к ним - быстрее и они занимают меньше места на
диске. Если известны правила использования каталога, его лучше делать непрерывным и нужного размера.

Системное устройство - блочное устройство, на котором находятся основные транзитные команды, необходимые
для работы системы.

Быстрое устройство - часть системного устройства, находящаяся на устройстве с быстрым доступом, напри-
мер, на виртуальном диске. Туда рекомендуется помещать команды и программы наиболее часто используемые систе-
мой и пользователем. Поиск файла при запуске осуществляется сначала на быстром устройстве, а затем на систем-
ном (на дискете).

Текущее устройство - логическое имя, альтернативное имени системного устройства. Например, на дисковод
"А" могут быть назначены логические имена "А" и "С".Может применяться, например, при операциях копирования для
назначения устройства, на которое выполняется копирование.

Структура адресного пространства при работе IS DOS.

Драйверы и резидентные задачи являются перемещаемыми в ОП при их удалениях и добавлениях.

В некоторых версиях аппаратуры есть возможность заменить ПЗУ дополнительной областью памяти. В таком
случае имеется возможность переместить туда часть ядра системы, драйверов и резидентных задач.

Рекомендации пользователю по написанию прикладных программ.

Если прикладная программа не может целиком разместиться в памяти, то рекомендуется разделить ее на нес-
колько частей и общие функции этих частей вынести в главный модуль, который загружается в память и поручить
ему управлять оверлеями. Для связи частей с главным модулем рекомендуется использовать 7-й уровень системы,
зарезервированный для пользователя, рестарты с 224 по 255. Для этого главный модуль должен содержать 32-слов-
ную адресную таблицу функций, доступных оверлейным модулям. Адрес этой таблицы необходимо сообщить системе при
загрузке главного модуля.

При работе с вложенными (см. выше "Рекурсивная цепочка") структурами рекомендуется использовать следую-
щий механизм операционной системы. Все вложенные программы должны иметь доступ к одному общему байту, содержа-
щему 0, если рекурсивная цепочка отсутствует, или номер канала, описывающего самый верхний уровень вложеннос-
ти. Канал должен иметь следующую структуру:
0-й байт - номер устройства

1-й и 2-й байты - номер каталога

3-й байт - номер файла

4-й байт - номер канала, описывающего предыдущий уровень рекурсии

5-й и остальные байты - используются прикладной программой в интересах пользователя.

При входе в следующий уровень рекурсии менеджер каналов выделяет новый канал, номер которого помещается в
общий байт, прежнее содержимое которого сохраняется в 4-м байте выделенного канала. При выходе из очередного
уровня рекурсии содержимое 4-ого байта канала, описывающего этот уровень,помещается в общий байт, а канал ос-
вобождается. Для удаления всех уровней используется системный рестарт функции второго уровня (см. далее) rsdel
- 77.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Интервью - интервью с участниками ENLiGHT'97: Digital Reality.
Новости - Вести из Черкасс.
Библиотека - Формула боя.
Playing - Советы по прохождению игр: Бегство на Хархан, Сталкер.
BIRTHDAY - С днем рождения: Vel, Alex Melted Show, Dr.Crash.

В этот день...   25 апреля