Промышленные контроллеры. Сравнительный анализ протоколов fieldbus применительно к промышленным приборам. Специализированные контроллеры TeleSAFE, объединяющие алгоритмы управления и сбор данных в системе телеметрии, страница 37

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

В процессе работы над новыми версиями системы созданы различные, специфичные для типа процессора, ядра (в отличие от двух ядер общего назначения в 05-9/680х0 V2.4). Эта настройка позволила оставить в ядре только тот код, который может поддерживаться процессором данного типа. Например, ядро для 68040 содержит около 2 Кбайт кода только для восстановления сбоев шины, управления арифметическим устройством с плавающей запятой и использования инструк­ции move 16, оно также использует второй указатель стека для обработки прерываний.

Хотя в процессе разработки желательно иметь и полнофун­кциональное ядро, нет никакого разумного довода требовать от целевой встроенной системы РВ поддержания таких функций, как обеспечение многопользовательской защиты и средств отладки. Для решения этой проблемы Microware наряду с полнофункциональным предлагает микроядро Atomic. Из нового ядра удалены функции поддержки средств отладки, многопользовательской защиты, защиты памяти и учета использования ресурсов.

Atornic-ядро OS-9 обеспечивает выполнение только тех функций, которые требуются во встроенной целевой системе, обеспечивая наиболее высокую производительность (3 мкс - Interrupt Latency Time. 68040 - 25 МГц) ii детерминирован­ность всех предоставляемых функций.

В это же время было решено продолжать развивать полнофункциональное стандартное ядро, включающее все возможные способы улучшения быстродействия без уменьше­ния функциональных ^нможиос-юй. Тем самым будет поддерживаться переносимость из системы с микроядром в систему с полнофункцнональным ядром как для прикладных процессов, так и для исполняющегося в системном состоянии ПО (типа обработчиков прерываний).

Данное полнофункциональное ядро может поддерживать разработку и отладку как резидентного ПО, так и ПО хоста, обеспечивая одновременно адекватную многим системам времени исполнения эффективность. Пользователи, которые хотят иметь в своей целевой системе микроядро, могут выполнить разработку своего приложения РВ с полнофункци­ональным ядром, а затем (после отладки кода) заменить на время исполнения стандартное ядро микроядром. С точки зрения обычного пользователя, стандартное и микроядра почти неотличимы друг от друга.

Надежность системы

Как указывалось ранее, ядро OS-9 обеспечивает диспетчери­зацию процессов на основе приоритетов с (необязательным) разделением времени; обслуживание прерываний; обмен информацией между процессами; обработку ошибок; распре­деление и защиту всех разделяемых системных ресурсов.

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


том ошибка при создании прикладной программы нс приведет к краху всей системы. Кроме того, защита выделенной ядром памяти выполняется диспетчером памяти.

В системе имеются следующие требующие защ1 ггы ресурсы: содержимое памяти; регистры портов ввода-вывода; регистры системных часов; процедуры перехвата сигналов в процессах; процедуры обработки ошибок; интервалы прносгановкн исполнения; приоритеты диспетчеризации; пользовательские и групповые привилегии.

Изменение любых из этих величин, выполняемое в процессе работы системы, должно выполняться очень осторожно н тщательно во избежание возможного краха системы. Един­ственный способ гарантии того, что все изменения будут производиться с соблюдением необходимых мер предосто­рожности, — это поручить ядру задачи распределения н защитыэтих ресурсов. При прекращении исполнения процесса (нормальным образом или аварийно) ядро определяет, какие ресурсы были связаны с этим процессом в момент прекраще­ния выполнения, и высвобождает эти ресурсы.