Фоновая дисковая операционная система. Часть 7.

Интерфейс системы с программой пользователя. Осуществляется с помощью макрокоманд библиотеки SYSMAC.SML при использовании Макроассемблера или подпрограмм системной библиотеки объектных модулей SYSLIB.OBJ при использовании языков Фортран и Паскаль. В первом случае включение в текст программы обращений к системе происходит на этапе ассемблирования, во втором — на этапе компоновки.

Обращения к ядру ОС из программы (в виде макрокоманд и вызовов подпрограмм), называемые программными запросами, реализуются в виде команд прерывания ЕМТ. Это обеспечивает независимость размещения ядра системы относительно выполняемой программы в оперативной памяти. Система использует несколько кодов ЕМТ в зависимости от формы запроса:

  • 375— запрос с несколькими аргументами; регистр R0 содержит указатель на список аргументов;
  • 374 — запрос с одним аргументом, размещенным в регистре R0;
  • 340...357 — запросы с аргументами в стеке;
  • 360...373; 376 — коды для внутренних запросов в ядре;
  • 377 — резервный код (используется в запросах МДОС). Все запросы могут быть отнесены к одной из следующих групп: управление оперативной памятью, в том числе запросы, связанные с распределением виртуальной памяти;
  • управление процессорами — передача управления другой программе, организация обработчиков прерываний и программ завершения, синхронизация процессов и обмен сообщениями между фоновой и оперативной программами;
  • управление устройствами — загрузка и удаление драйверов, управление очередями и таймером, многотерминальная поддержка;
  • управление информацией — создание, удаление и переименование файлов; открытие-закрытие файлов (потоков данных), в том числе временное закрытие, когда блок управления данными перемещается в другое место оперативной памяти, освобождая канал (поток данных); чтение-запись по прямому доступу в файловом адресном пространстве, имеющем блочную структуру (размер блока — 512 байт); чтение-запись строк с терминала;
  • корректировка функций ядра — переход к мягкой реакции на ошибки, без немедленного прекращения выполнения; отмена клавиши «Переход на интерпретатор директив», получение определенной информации о конфигурации системы аз ядра;
  • использование интерпретатора командной строки (CSI), включенного в программу USR.