6.2.1 Групповые сервисы поддержки управления
Групповые сервисы поддержки управления используются для получения доступа к другим сервисам и для инициализации (и загрузки, при необходимости) расширенных сервисных провайдеров. Таблица 2 дает обзор указанных сервисов.
Таблица 2 - Групповые сервисы поддержки управления
Сервис | Название | Примечания |
Получение сервисной ссылки | GetFuncAddress | Получение ссылки на сервис по идентификатору (название и/или количество) и номер версии |
Инициализация типа периферийного интерфейса | io_initiate | Получение идентификатора указанного типа интерфейса и загрузка расширенного сервисного провайдера данного типа (при необходимости) |
Принятие решения о типе периферийного интерфейса | io_conclude | Применение идентификатора типа и закрытие расширенного сервисного провайдера данного типа (при наличии) |
6.2.2 Групповые сервисы входа/выхода
Групповые сервисы входа/выхода используются для установления связи с реальными устройствами, для конфигурирования периферийного интерфейса и управления им. Таблица 3 представляет обзор указанных сервисов.
Таблица 3 - Групповые сервисы входа/выхода
Сервис | Название | Примечания |
Открыть канал периферийного интерфейса | io_open | Открытие периферийного интерфейса передачи данных и конфигурирование данного интерфейса |
Реконфигурировать канал периферийного интерфейса | io_config | Изменение конфигурации интерфейса без его закрытия, например без изменения параметров передачи |
Считать данные | io_read | Извлечение полученных данных на периферийном интерфейсе |
Ввести данные | io_write | Введение данных в периферийный интерфейс для передачи |
Выполнить операцию | io_execute | Выполнение операции, принадлежащей каналу периферийного интерфейса, что сравнимо с обработкой сразу и считанных и введенных данных с помощью одного сервиса (обмен данными) |
Отменить установленную связь | io_cancel | Отмена сервиса "Считать данные", "Ввести данные" или "Выполнить операцию" и подготовка интерфейса к новым запросам |
Получить статус канала периферийного интерфейса | io_stat | Получение информации о статусе периферийного интерфейса |
Очистить буфер считывания | io_clear | Стирание содержимого входного буфера периферийного интерфейса |
Закрыть канал периферийного интерфейса | io_close | Закрытие периферийного интерфейса |
Выдать сигнал о наступлении события | io_event | Индикация локального события, выдача отклика на источник события |
Групповые сервисы входа/выхода преобразуются в соответствующие расширенные (см. таблицу 4), если загрузка расширенного сервисного провайдера соответствует указанному типу интерфейса.
6.2.3 Расширенные сервисы
Расширенные сервисы не видны пользователю интерфейса RMSI. Они определены в настоящем стандарте для практической реализации иерархической модульной структуры RMS с помощью расширенных сервисных провайдеров. Указанные сервисы в значительной степени совпадают с групповыми сервисами входа/выхода RMS.
Таблица 4 - Расширенные сервисы для периферийных интерфейсов
Сервис | Название | Примечания |
Инициировать тип расширенного интерфейса | ext_initiate | Задание идентификатора указанного типа периферийного интерфейса |
Принять решение о типе расширенного интерфейса | ext_conclude | Задание типа идентификатора для сервиса ext_initiate |
Открыть расширенный интерфейс | ext_open | Открытие периферийного интерфейса для передачи данных и его конфигурации |
Реконфигурировать расширенный интерфейс | ext_config | Изменение конфигурации периферийного интерфейса без его закрытия, например без изменения параметров передачи |
Считать данные расширенного интерфейса | ext_read | Считывание данных с периферийного интерфейса |
Ввести данные в расширенный интерфейс | ext_write | Ввод данных в периферийный интерфейс для передачи |
Выполнить операцию на расширенном интерфейсе | ext_execute | Выполнение операции на соответствующем периферийном интерфейсе, что сравнимо с обработкой считываемых и вводимых данных одного сервиса (обмен данными) |
Отменить расширенную связь | ext_cancel | Отмена сервиса "Считать данные расширенного интерфейса", "Ввести данные в расширенный интерфейс" и "Выполнить операцию на расширенном интерфейсе", а также подготовка интерфейса к новым запросам |
Получить статус расширенного интерфейса | ext_stat | Получение информации о статусе интерфейса |
Очистить буфер считывания расширенного интерфейса | ext_clear | Стирание содержимого входного буфера периферийного интерфейса |
Закрыть периферийный интерфейс | ext_close | Закрытие периферийного интерфейса |
Получить сигнал о расширенном событии | ext_event | Индикация расширенного события и ожидание отклика |
6.2.4 Сервисы поддержки обслуживания
Сервисы поддержки обслуживания (см. таблицу 5) обеспечивают доступ к памяти, управление таймером, семафорами и другими ресурсами операционной системы компьютера.
Таблица 5 - Сервисы поддержки обслуживания
Сервис | Название | Примечания |
Выделить место в памяти | os_allocate | Выделение согласованного места в памяти заданного размера для хранения данных |
Перевыделить место в памяти | os_reallocate | Изменение размера места в памяти, выделенного для хранения данных |
Освободить память | os_free | Очистка выделенного в памяти места для хранения данных |
Получить время | os_time | Получение информации о местном времени |
Получить время обработки данных | os_clock | Получение информации о времени работы центрального процессора (CPU-time) |
Ожидать | os_delay | Ожидание в течение указанного времени |
Создать таймер | os_settimer | Создание и запуск таймера |
Обеспечить срабатывание таймера | os_timerEvent | Выдача сигнала о срабатывании и ожидании отклика таймера |
Удалить таймер | os_killtimer | Остановка и удаление таймера |
Создать световой таймер | os_setLPTimer | Создание и запуск таймера со световой индикацией, разрешение и точность которого зависят от типа процесса световой индикации |
Сигнализировать о событии с помощью таймера со световой индикацией | os_LPTimerEvent | Выдача сигнала световым таймером об истечении времени и ожидание отклика |
Удалить таймер со световой индикацией | os_killLPTimer | Остановка и стирание таймера со световой индикацией |
Идентифицировать процесс световой индикации | os_getLPnumber | Идентификация реального процесса световой индикации |
Создать вычислительные семафоры | os_createSem | Создание вычислительных семафоров для управления одновременно используемыми ресурсами |
Ожидать вычислительный семафор | os_waitSem | Ожидание свободного доступа к защищенному ресурсу |
Открыть вычислительный семафор | os_releaseSem | Открытие доступа к защищенному ресурсу |
Стереть вычислительный семафор | os_deleteSem | Стирание вычислительного семафора |
Создать частный семафор | os_createMutex | Создание частного семафора для управления доступом к ресурсам с помощью различных процессов световой индикации, исключающих взаимное влияние |
Ожидать частный семафор | os_waitMutex | Ожидание свободного доступа к защищенному ресурсу |
Открыть частный семафор | os_releaseMutex | Открытие доступа к защищенному ресурсу |
Стереть частный семафор | os_deleteMutex | Стирание частного семафора |
Открыть журнал отладки | os_openDebug | Открытие текстового журнала для сообщений отладки |
Записать сообщение отладки | os_writeDebug | Посылка сообщения в текстовый журнал отладки |
Закрыть журнал отладки | os_closeDebug | Закрытие текстового журнала отладки |