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.