Главная страница
Навигация по странице:

  • Система управления

  • Система реального времени

  • Лекция 1.2. Классы систем реального времени

  • Виртуальная память

  • Межпроцессное взаимодействие

  • Исполнительные системы реального времени.

  • Ядра реального времени.

  • UNIXы реального времени.

  • Расширения реального времени для Windows NT.

  • Лекции по дисциплине системы реального времени тема аппаратнопрограммные средства и комплексы реального времени


    Скачать 1.67 Mb.
    НазваниеЛекции по дисциплине системы реального времени тема аппаратнопрограммные средства и комплексы реального времени
    Дата31.03.2022
    Размер1.67 Mb.
    Формат файлаpdf
    Имя файла62_ZVH.pdf
    ТипЛекции
    #431172
    страница2 из 16
    1   2   3   4   5   6   7   8   9   ...   16
    Ядро - содержит только строгий минимум, необходимый для работы системы: управление задачами, их синхронизация и взаимодействие, управление памятью и устройствами ввода/вывода; размер ядра очень ограничен: часто несколько килобайт.
    2. Система управления - содержит ядро и ряд дополнительных сервисов, расширяющих его возможности: расширенное управление памятью, вводом/выводом, задачами, файлами и т.д., обеспечивает также взаимодействие системы и управляющего/управляемого оборудования.
    3. Система реального времени - содержит систему управления и на- бор утилит: средства разработки (компиляторы, отладчики и т.д.), средства визуализации (взаимодействия человека и операционной системы).

    9
    Вычислительные установки, на которых применяются СРВ, можно ус- ловно разделить на три группы.
    1. «Обычные» компьютеры. По логическому устройству совпадают с настольными системами. Аппаратное устройство несколько отличается. Для обеспечения минимального времени простоя в случае технической неполадки процессор, память и т.д. размещены на съемной плате, вставляемой в спе- циальный разъем так называемой «пассивной» основной платы. В другие разъемы этой платы вставляются платы периферийных контроллеров и дру- гое оборудование. Сам компьютер помещается в специальный корпус, обес- печивающий защиту от пыли и механических повреждений. В качестве мо- ниторов часто используются жидкокристаллические дисплеи, иногда с сен- сочувствительным покрытием.
    По экономическим причинам среди процессоров этих компьютеров доминирует семейство Intel 80x86.
    Подобные вычислительные системы обычно не используются для не- посредственного управления промышленным оборудованием. Они, в основном, служат как терминалы для взаимодействия с промышленными компьютерами и встроенными контроллерами, для визуализации состояния оборудования и технологического процесса. На таких компьютерах в качестве операционных систем часто используются
    «обычные» операционные системы с дополнительными программными комплексами, адаптирующими их к требованиям «реального времени».
    2. Промышленные компьютеры. Состоят из одной платы, на которой размещены: процессор, контроллер памяти, память 4-х видов:
    - ПЗУ, постоянное запоминающее устройство (ROM, read-only memory), где обычно размещена сама операционная система реального вре- мени; типичная емкость – 0,5-1 Мб;
    - ОЗУ, оперативное запоминающее устройство (RAM, random access memory), куда загружается код и данные ОСРВ; обычно организована на базе динамической памяти (dynamic RAM, DRAM); типичная емкость – 16-128
    Mб;
    - статическое ОЗУ (static RAM, SRAM) (то же, что и ОЗУ, но питается от имеющейся на плате батарейки), где размещаются критически важные данные, которые не должны пропадать при выключении питания; типичная емкость - 2Mб; типичное время сохранения данных - 5 лет;
    - флеш-память (flash RAM) (электрически программируемое ПЗУ), ко- торая играет роль диска для ОСРВ; типичная емкость - 4Mб.
    Контроллеры периферийных устройств: SCSI (Small Computer System
    Interface), Ethernet, COM портов, параллельного порта, несколько програм- мируемых таймеров. На плате находится также контроллер и разъем шины, через которую компьютер управляет внешними устройствами. В качестве шины в подавляющем большинстве случаев используется шина VME, кото- рую в последнее время стала теснить шина Compact PCI.
    Несмотря на наличие контроллера SCSI, обычно ОСРВ работает без дисковых накопителей, поскольку они не удовлетворяют предъявляемым к

    10 системам реального времени требованиям по надежности, устойчивости к вибрации, габаритам и времени готовности после включения питания.
    Плата помещается в специальный корпус (крейт), в котором разведены разъемы шины и установлен блок питания. Корпус обеспечивает надлежащий температурный режим, защиту от пыли и механических повреждений. В этот же корпус вставляются платы аналого-цифровых и/или цифро-аналоговых преобразователей (АЦП и/или ЦАП), через которые осуществляется ввод/вывод управляющей информации, платы управления электромоторами. В тот же корпус могут вставляться другие такие же (или иные) промышленные компьютеры, образуя многопроцессорную систему.
    Среди процессоров промышленных компьютеров доминируют процессоры семейств Power PC (Motorola IBM) и Motorola 68xxx (Motorola).
    Также присутствуют процессоры семейств SPARC (SUN), Intel 80x86 (Intel),
    ARM (ARM), Intel 80960x (Intel). При выборе процессора определяющими факторами являются получение требуемой производительности при наименьшей тактовой частоте, а, значит, и наименьшей рассеиваемой мощности, а также наименьшее время переключения задач и реакции на прерывания. Подчеркнем важность малой рассеиваемой мощности процессора с точки зрения получения высокой отказоустойчивости системы в целом, поскольку малый нагрев процессора позволяет обойтись без охлаждающего вентилятора, который является достаточно ненадежным механическим устройством.
    Промышленные компьютеры используются для непосредственного управления промышленным или иным оборудованием. Они часто не имеют монитора и клавиатуры, и для взаимодействия с ними служат «обычные» компьютеры, соединенные с ними через последовательный порт (COM порт) или Ethernet.
    3. Встраиваемые системы. Устанавливаются внутрь оборудования, ко- торым они управляют. Для крупного оборудования (например, ракета или космический аппарат) могут по исполнению совпадать с промышленными компьютерами. Для оборудования поменьше (например, принтер) могут представлять собой процессор с сопутствующими элементами, размещенный на одной плате с другими электронными компонентами этого оборудования.
    Для миниатюрного оборудования (например, мобильный телефон) процессор с сопутствующими элементами может быть частью одной из больших интегральных схем этого оборудования.
    В дальнейшем под компьютером для ОСРВ будем понимать промыш- ленный компьютер. Отметим основные особенности ОСРВ, диктуемые не- обходимостью ее работы на промышленном компьютере.
    Система часто должна работать на бездисковом компьютере и осуще- ствлять начальную загрузку из ПЗУ. В силу этого:
    - критически важным является размер системы;
    - для экономии места в ПЗУ часть системы может храниться в сжатом виде и загружаться в ОЗУ по мере необходимости;
    - система часто позволяет исполнять код как в ОЗУ, так и в ПЗУ;

    11
    - при наличии свободного места в ОЗУ система часто копирует себя из медленного ПЗУ в более быстрое ОЗУ;
    - сама система компилируется, линкуется и превращается в загрузоч- ный модуль на другом, «обычном» компьютере, связанном с промышленным компьютером через последовательный порт или Ethernet; это требует специ- ального кроссплатформенного инструментария разработчика, поскольку ти- пы процессоров и/или операционных систем на этих двух компьютерах не совпадают.
    Система должна поддерживать как можно более широкий ряд процес- соров, что дает возможность потребителю выбрать процессор подходящей мощности, а также поддерживать как можно более широкий ряд специально- го оборудования (периферийные контроллеры, таймеры и т.д.), которые мо- гут стоять на плате компьютера и платах, которыми он управляет через об- щую шину.
    Очевидно, что для получения законченной системы управления недос- таточно промышленного компьютера, АЦП и/или ЦАП платы, крейта и
    ОСРВ. Нужно еще написать программу, которая будет непосредственно управлять конкретным промышленным оборудованием. Для этого необходим
    (кроссплатформенный) инструментарий разработчика, цена которого может превосходить цену перечисленных выше компонент, вместе взятых. Правда, этот инструментарий нужен только разработчику, а полученная программа может работать на многих компьютерах.
    Критически важным параметром для СРВ является время ее реакции на прерывания (которое складывается из аппаратного времени задержки и программных задержек), а также предсказуемость этого времени.
    Таким образом, понятие «системы реального времени» является новым и в полной мере не устоявшимся. Однако основной мыслью существующих определений является наложение жестких или мягких ограничений на время отклика системы при поступлении на нее внешнего воздействия. В связи с этим нельзя считать системами реального времени информационно-управляющие системы, не предусматривающие в алгоритмах своего функционирования возможность выдачи откликов в условиях лимита времени. Поэтому организация работы информационно- управляющих систем, функционирующих в режиме реального времени, существенно отличается от работы традиционных систем управления.
    Лекция 1.2. Классы систем реального времени
    1. Основные понятия систем реального времени.
    2. Типы задач систем реального времени.
    3. Классы систем реального времени.
    1. Основные понятия систем реального времени
    Рассмотрим суть основных понятий, которые используются в системах реального времени. Одним из основных понятий данной дисциплины является понятие процесса.
    Процесс - это динамическая сущность программы, ее код в процессе своего выполнения.

    12
    В данном случае под программой понимается описание на некотором формализованном языке алгоритма, решающего поставленную задачу. Про- грамма является статической единицей, то есть неизменяемой с точки зрения операционной системы, ее выполняющей.
    Процесс имеет:
    - собственные области памяти, где осуществляется хранение кода и данных;
    - собственный стек;
    - собственное отображение виртуальной памяти на физическую (в сис- темах с виртуальной памятью);
    - собственное состояние.
    Процесс может находиться в одном из следующих типичных состоя- ний (точное количество и свойства того или иного состояния зависят от опе- рационной системы):
    1) «остановлен» - процесс остановлен и не использует процессор; на- пример, в таком состоянии процесс находится сразу после создания;
    2) «терминирован» - процесс терминирован и не использует процессор; например, процесс закончился, но еще не удален операционной системой;
    3) «ждет» - процесс ждет некоторого события (которым может быть аппаратное или программное прерывание, сигнал или другая форма межпро- цессорного взаимодействия);
    4) «готов» - процесс не остановлен, не терминирован, не ожидает, не удален, но и не работает; например, процесс может не получать доступа к процессору, если в данный момент выполняется другой, более приоритетный процесс;
    5) «выполняется» - процесс выполняется и использует процессор; в
    ОСРВ это обычно означает, что этот процесс является самым приоритетным среди всех процессов, находящихся в состоянии «готов».
    Понятие вычислительного процесса (или просто «процесса») было введено для реализации идей мультипрограммирования и мультизадачности.
    Как понятие процесс является определенным видом абстракции. Последова- тельный процесс (иногда называемый «задачей») – это выполнение отдель- ной программы с ее данными на последовательном процессоре.
    В концепции, получившей широкое распространение в 70 – е годы, под задачей понимали совокупность связанных между собой и образующих единое целое программных модулей и данных, требующих ресурсов вычислительной системы для своей реализации. В последующие годы задачей стали называть единицу работы, для выполнения которой предоставляется центральный процессор. Вычислительный процесс может включать в себя несколько задач.
    Концептуально процессор рассматривается в двух аспектах: во – пер- вых, он является носителем данных и, во – вторых, он одновременно выпол- няет операции, связанные с их обработкой. Определение концепции процесса преследует цель выработать механизмы распределения и управления

    13 ресурсами. Понятие ресурса, так же как и понятие процесса, является одним из основных при рассмотрении операционных систем реального времени.
    Термин ресурс обычно применяется по отношению к повторно используемым, относительно стабильным и часто недостающим объектам, которые запрашиваются, используются и освобождаются процессами в период их активности. Другими словами, ресурсом называется всякий объект, который может распределяться внутри системы. Ресурс - это объект, необходимый для работы процессу или задаче. Ресурсы могут быть разделяемыми, когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно), а могут быть и неделимыми (рис. 1).
    Рисунок 1. - Классификация ресурсов
    При разработке первых систем ресурсами считались процессорное время, память, каналы ввода/вывода и периферийные устройства. Однако, с течением времени понятие ресурса стало гораздо более универсальным и об- щим. Различного рода программные и информационные ресурсы также могут быть определены для системы как объекты, которые могут разделяться и распределяться, и доступ к которым, необходимо соответствующим образом контролировать. В настоящее время понятие ресурса превратилось в абст- рактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе.
    В первых вычислительных системах любая программа могла выпол- няться только после полного завершения предыдущей программы. Поскольку первые вычислительные системы были построены в соответствии с прин- ципами Неймана, все подсистемы и устройства компьютера управлялись ис- ключительно центральным процессором. Центральный процессор осуществ- лял и выполнение вычислений, и управление операциями ввода/вывода дан- ных. Соответственно, пока осуществлялся обмен данными между оператив- ной памятью и внешними устройствами, процессор не мог выполнять вычис- ления. Введение в состав вычислительной машины специальных контролле- ров позволило совместить во времени (распараллелить) операции вывода по- лученных данных и последующие вычисления на центральном процессоре.
    Однако, процессор продолжал часто и долго простаивать, дожидаясь завер-

    14 шения очередной операции ввода/вывода. Поэтому было предложено орга- низовать мультипрограммный (мультизадачный) режим работы вычисли- тельной системы. Суть его заключается в том, что пока одна программа
    (один вычислительный процесс или задача) ожидает завершения очередной операции ввода/вывода, другая программа (а точнее, другая задача) может быть поставлена на решение.
    Если в операционной системе могут одновременно существовать не- сколько процессов или/и задач, находящихся в состоянии «выполняется», то говорят, что это многозадачная система, а эти процессы называют парал- лельными.
    Если процессор один, то в каждый момент времени на самом деле ре- ально выполняется только один процесс или задача. Система разделяет время между такими «выполняющимися» процессами, давая каждому, квант времени, пропорциональный его приоритету. Этот квант времени часто не зависит от специфики решаемой задачи реального времени, поэтому такой подход обычно не используется в СРВ. Обычно в СРВ в состоянии выполнения может быть только один процесс. В «хорошей» СРВ это можно изменить программным путем.
    Благодаря совмещению во времени выполнения двух программ общее время выполнения двух задач получается меньше, чем, если бы мы выполня- ли их по очереди (запуск только одной задачи после полного завершения другой). Но время выполнения каждой задачи в общем случае становится больше, чем, если бы мы выполняли каждую из них как единственную.
    При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем, если бы он выполнялся в однопрограммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных за- трат времени на ожидание освобождения ресурса).
    Система поддерживает мультипрограммирование и старается эффек- тивно использовать ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддер- жанием в памяти более одного процесса, ожидающего процессор, и более одного процесса, готового использовать другие ресурсы, как только послед- ние станут доступными. Общая схема выделения ресурсов такова. При необ- ходимости использовать какой-либо ресурс (оперативную память, устройство ввода/вывода, массив данных и т.п.), задача обращается к супервизору операционной системы – ее центральному управляющему модулю, который может состоять из нескольких модулей, например: супервизор ввода/вывода, супервизор прерываний, супервизор программ, диспетчер задач и т.д. – по- средством специальных вызовов (команд, директив) и сообщает о своем тре- бовании. При этом указывается вид ресурса и, если надо, его объем. Дирек- тива обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим работы, который обязательно суще- ствует в СРВ.

    15
    Ресурс может быть выделен задаче, обратившейся к супервизору с со- ответствующим запросом, если:
    - он свободен и в системе нет запросов от задач более высокого при- оритета к этому же ресурсу;
    - текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
    - ресурс используется задачей низшего приоритета и может быть вре- менно отобран (разделяемые ресурсы).
    Получив запрос, система либо удовлетворяет его и возвращает управ- ление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит зада- чу в очередь к ресурсу, переводя ее в состояние ожидания (блокируя).
    После окончания работы с ресурсом задача опять с помощью специ- ального вызова супервизора сообщает операционной системе об отказе от ресурса, или операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функ- ции. Супервизор операционной системы, получив управление по этому об- ращению, освобождает ресурс и проверяет, имеется ли очередь к освобо- дившемуся ресурсу. Если очередь есть – в зависимости от принятой дисцип- лины обслуживания и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выпол- нению. После этого управление либо передается данной задаче, либо воз- вращается той, которая только что освободила ресурс.
    В общем случае при организации управления ресурсами в СРВ всегда требуется принять решение о том, что в данной ситуации выгоднее: быстро обслуживать отдельные наиболее важные запросы, предоставлять всем про- цессам равные возможности, либо обслуживать максимально возможное ко- личество процессов и наиболее полно использовать ресурсы.
    Стек (stack) - это область памяти, в которой размещаются локальные переменные, аргументы и возвращаемые значения функций. Вместе с обла- стью статических данных полностью задает текущее состояние процесса.
    Виртуальная память - это «память», в адресном пространстве кото- рой работает процесс. Виртуальная память:
    1) позволяет увеличить объем памяти, доступной процессам за счет дисковой памяти;
    2) обеспечивает выделение каждому из процессов виртуально непре- рывного блока памяти, начинающегося (виртуально) с одного и того же ад- реса;
    3) обеспечивает изоляцию одного процесса от другого.
    Трансляцией виртуального адреса в физический адрес занимается опе- рационная система. Для ускорения этого процесса многие компьютерные системы имеют поддержку со стороны аппаратуры, которая может быть либо прямо в процессоре, либо в специальном устройстве управления памятью.
    Среди механизмов трансляции виртуального адреса преобладает страничный, при котором виртуальная и физическая память разбиваются на части равного размера, называемые страницами (типичный размер - 4Kб), между

    16 страницами виртуальной и физической памяти устанавливается взаимно од- нозначное (для каждого процесса) отображение. Отметим, что ОСРВ стре- мятся получить максимальную производительность на имеющемся оборудо- вании, поэтому некоторые ОСРВ не используют механизм виртуальной па- мяти из-за задержек, вносимых при трансляции адреса.
    Межпроцессное взаимодействие - это тот или иной способ передачи информации из одного процесса в другой. Наиболее распространенными формами взаимодействия процессов являются (не все системы поддерживают перечисленные ниже возможности):
    1) разделяемая память - два (или более) процесса имеют доступ к од- ному и тому же блоку памяти. В системах с виртуальной памятью организа- ция такого вида взаимодействия требует поддержки со стороны операционной системы, поскольку необходимо отобразить соответствующие блоки виртуальной памяти процессов на один и тот же блок физической памяти); семафоры - два (или более) процесса имеют доступ к одной пере- менной, принимающей значение 0 или 1. Сама переменная часто находится в области данных операционной системы и доступ к ней организуется посред- ством специальных функций;
    3) сигналы - это сообщения, доставляемые посредством операционной системы процессу. Процесс должен зарегистрировать обработчик этого со- общения у операционной системы, чтобы получить возможность реагировать на него. Часто операционная система извещает процесс сигналом о наступ- лении какого-либо сбоя, например, делении на 0, или о каком-либо аппаратном прерывании, например, прерывании таймера;
    4) почтовые ящики - это очередь сообщений (обычно тех или иных структур данных), которые помещаются в почтовый ящик процессами и/или операционной системой. Несколько процессов могут ждать поступления со- общения в почтовый ящик и активизироваться после его поступления. Тре- бует поддержки со стороны операционной системы.
    Событие - это оповещение процесса со стороны операционной систе- мы о той или иной форме межпроцессного взаимодействия, например, о принятии семафором нужного значения, о наличии сигнала, о поступлении сообщения в почтовый ящик.
    Создание, обеспечение взаимодействия, разделение процессорного времени требует от операционной системы значительных вычислительных затрат, особенно в системах с виртуальной памятью. Это связано, прежде всего, с тем, что каждый процесс имеет свое отображение виртуальной памяти на физическую, которое надо менять при переключении процессов и при обеспечении их доступа к объектам взаимодействия (общей памяти, семафорам, почтовым ящикам). Часто бывает так, что требуется запустить несколько копий одной и той же программы, например, для управления несколькими единицами одного и того же оборудования. В этом случае мы несем двойные накладные расходы: держим в оперативной памяти несколько копий кода одной программы и тратим дополнительное время на обеспечение их взаимодействия.

    17
    Задача (или поток, или нить, thread) - это как бы одна из ветвей исполнения процесса:
    - разделяет с процессом область памяти под код и данные;
    - имеет собственный стек;
    - разделяет с процессом отображение виртуальной памяти на физиче- скую (в системах с виртуальной памятью);
    - имеет собственное состояние.
    Таким образом, у двух задач в одном процессе вся память является разделяемой и дополнительные расходы, связанные с разным отображением виртуальной памяти на физическую, сведены к нулю. Для задач так же, как для процессов, определяются понятия состояния задачи и межзадачного взаимодействия. Отметим, что для двух процессов обычно требуется органи- зовать что-то общее (память, канал и т.д.) для их взаимодействия, в то время как для двух потоков часто требуется организовать что-то общее (например, область памяти), имеющее свое значение в каждом из них.
    Приоритет - это число, приписанное операционной системой каждому процессу и задаче. Чем больше это число, тем важнее этот процесс или задача и тем больше процессорного времени он или она получит. При неправильном планировании приоритетов в ОСРВ, задача с меньшим приоритетом может вообще не получить управления при наличии в состоянии готовности задачи с большим приоритетом.
    Связывание (линковка, linkage) - это процесс превращения скомпилированного кода (объектных модулей) в загрузочный модуль (то есть то, что может исполняться процессором при поддержке операционной системы). Различают:
    - статическое связывание, когда код необходимых для работы про- граммы библиотечных функций физически добавляется к коду объектных модулей для получения загрузочного модуля;
    - динамическое связывание, когда в результирующем загрузочном модуле проставляются лишь ссылки на код необходимых библиотечных функций; сам код будет реально добавлен к загрузочному модулю только при его исполнении.
    При статическом связывании загрузочные модули получаются очень большого размера. Поэтому подавляющее большинство современных опе- рационных систем использует динамическое связывание, несмотря на то, что при этом начальная загрузка процесса на исполнение медленнее, чем при статическом связывании из-за необходимости поиска и загрузки кода нужных библиотечных функций (часто только тех из них, которые не были загружены для других процессов). При этом для избежания недетермини- рованной задержки на загрузку программы на исполнение все необходимые процессы реального времени запускают при старте системы (заранее, а не по требованию).
    2. Типы задач систем реального времени Всякий процесс содержит одну или несколько задач. Операционная система позволяет задаче

    18 порождать новые задачи. Задачи, по своей манере действовать, можно разделить на 3 категории:
    1. Циклические задачи. Характерны для процессов управления и инте- рактивных процессов.
    2. Периодические задачи. Характерны для многих технологических процессов и задач синхронизации.
    3. Импульсные задачи. Характерны для задач сигнализации и асин- хронных технологических процессов.
    Чтобы система могла управлять задачами, она должна располагать всей необходимой для этого информацией. С этой целью на каждую задачу
    (процесс) заводится специальная информационная структура, называемая дескриптором процесса (описателем задачи). В общем случае дескриптор процесса содержит следующую информацию:
    - идентификатор процесса (так называемый PID - process identificator);
    - тип (или класс) процесса, который определяет для супервизора неко- торые правила предоставления ресурсов. Управление вводом/выводом осу- ществляется операционной системой, компонентом, который называют су- первизором ввода/вывода;
    - приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;
    - переменную состояния, которая определяет, в каком состоянии нахо- дится процесс (готов к работе, в состоянии выполнения, ожидание устройст- ва ввода/вывода и т.д.);
    - защищенную область памяти (или адрес такой зоны), в которой хра- нятся текущие значения регистров процесса, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи;
    - информацию о ресурсах, которыми процесс владеет и/или имеет пра- во пользоваться (указатели на открытые файлы, информация о незавершен- ных операциях ввода/вывода и т.д.);
    - место (или его адрес) для организации общения с другими процесса- ми;
    - параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);
    - в случае отсутствия системы управления файлами – адрес задачи на диске в ее исходном состоянии и адрес на диске, куда информация выгружа- ется из оперативной памяти, если ее вытесняет другая задача.
    Когда говорят о процессах, то тем самым хотят отметить, что система поддерживает их обособленность: у каждого процесса имеется свое вирту- альное адресное пространство, каждому процессу назначаются свои ресурсы
    – файлы, окна, семафоры и т.д. Такая обособленность нужна для того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы вычислительной системы, конкурируют друг с другом. В общем случае процессы (задачи) никак не связаны между собой и могут принадле- жать даже разным пользователям, разделяющим одну вычислительную сис-

    19 тему. Другими словами, в случае процессов система считает их совершенно не связанными и не зависимыми. При этом именно система берет на себя роль арбитра в конкуренции между процессами по поводу ресурсов.
    Желательно иметь возможность задействовать внутренний паралле- лизм, который может быть в самих процессах. Такой внутренний паралле- лизм встречается достаточно часто и его использование позволяет ускорить их решение. В однопроцессорной системе задачи разделяют между собой процессорное время так же, как это делают обычные процессы, а в мульти- процессорной системе могут выполняться одновременно, если не встречают конкуренции из-за обращения к иным ресурсам.
    Таким образом, главное, что обеспечивает многопоточность, - это воз- можность параллельно выполнять несколько видов операций в одной при- кладной программе. Параллельные вычисления (а, следовательно, и более эффективное использование ресурсов центрального процессора, и меньшее суммарное время выполнения задач) теперь уже часто реализуются на уровне задач, и программа, оформленная в виде нескольких задач (потоков, нитей) в рамках одного процесса, может быть выполнена быстрее за счет параллель- ного выполнения ее отдельных частей.
    3. Классы систем реального времени Количество операционных систем реального времени, несмотря на их специфику, очень велико. Сама специфика применения операционных систем реального времени требует гарантий надежности, причем гарантий, в том числе и юридических - этим, видимо, можно объяснить тот факт, что среди некоммерческих систем реального времени нет сколько-нибудь популярных.
    Среди коммерческих систем реального времени можно выделить группу ведущих систем - по объемам продаж и по популярности. Это системы: VxWorks, OS-9, pSOS, LynxOS, QNX, VRTX. Различают следующие классы СРВ:
    - исполнительные системы реального времени;
    - ядра реального времени;
    - UNIX'ы реального времени.
    Исполнительные системы реального времени. Признаки систем этого типа - различные платформы для систем разработки и исполнения.
    Приложение реального времени разрабатывается на host- компьютере
    (компьютере системы разработки), затем компонуется с ядром и загружается в целевую систему для исполнения. Как правило, приложение реального времени -это одна задача и параллелизм здесь достигается с помощью нитей
    (threads).
    Системы этого типа обладают рядом достоинств, среди которых ос- новным достоинством является высокая скорость и реактивность системы.
    Главная причина высокой реактивности систем этого типа - наличие только нитей (потоков) и, следовательно, малое время переключения контекста между ними (в отличие от процессов). С этим главным достоинством связан и ряд недостатков:
    зависание всей системы при зависании нити;

    20 проблемы с динамической загрузкой новых приложений.
    Кроме того, системы разработки для продуктов этого класса традици- онно дороги (порядка $20000). Однако, необходимо отметить, что качество и функциональность систем разработки в этом классе традиционно являются хорошими.
    Наиболее ярким представителем систем этого класса является опера- ционная система VxWorks. Область применения - компактные системы реального времени с хорошими временами реакций.
    Ядра реального времени. В этот класс входят системы с монолитным ядром, где и содержится реализация всех механизмов реального времени этих операционных систем. Исторически системы этого типа были хорошо спроектированы. В отличие от систем других классов, разработчики систем этого класса имели время для разработки систем именно реального времени и не были изначально ограничены в выборе средств (например фирма "Microware" имела в своем распоряжении три года для разработки первого варианта OS-9). Системы этого класса, как правило, модульны, хорошо структурированы, имеют наиболее развитый набор специфических механизмов реального времени, компактны и предсказуемы. Наиболее популярные системы этого класса: OS-9, QNX.
    Одна из особенностей систем этого класса - высокая степень масшта- бируемости. На базе этих ОС можно построить как компактные системы ре- ального времени, так и большие системы серверного класса.
    UNIX'ы реального времени. Исторически системы реального време- ни создавались в эпоху расцвета и бума UNIX'а и поэтому многие из них со- держат те или иные заимствования из этой красивой концепции операцион- ный системы (пользовательский интерфейс, концепция процессов).
    Часть разработчиков операционных систем реального времени попы- талась просто переписать ядро UNIX, сохранив при этом интерфейс пользовательских процессов с системой, насколько это было возможно.
    Реализация этой идеи не была слишком сложной, поскольку не было препятствия в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время, и весь набор пользовательских приложений - компиляторы, пакеты, различные инструментальные системы.
    В этом смысле создателям систем первых двух классов пришлось по- трудиться не только при создании ядра реального времени, но и продвинутых систем разработки.
    Однако Unix'ы реального времени имеют следующие недостатки: сис- темы реального времени получаются достаточно большими и реактивность их ниже, чем реактивность систем первых двух классов.
    Наиболее популярным представителем систем этого класса является операционная система реального времени Lynx OS.
    Расширения реального времени для Windows NT. После появления
    Windows NT, сразу несколько фирм объявили о создании расширений реаль- ного времени для Windows NT. Этот означает, что подобные продукты были востребованы, что и подтверждает динамика их рыночного развития. Появ-

    21 ление в свое время UNIX'ов реального времени означало ни что иное, как попытку применить господствующую программную технологию для созда- ния приложений реального времени. Появление расширений реального вре- мени для Windows NT имеет те же корни, ту же мотивацию. Огромный набор прикладных программ под Windows, мощный программный интерфейс
    WIN32, большое количество специалистов, знающих эту систему.
    Соблазнительно было получить в системе реального времени все эти возможности.
    Несмотря на то, что Windows NT создавалась как сетевая операцион- ная система, и сочетание слов "Windows NT" и "реальное время" многими воспринимается как нонсенс, в нее при создании были заложены элементы реального времени. Она имеет - двухуровневую систему обработки прерыва- ний (ISR и DPC), классы реального времени (процессы с приоритетами 16-32 планируются в соответствии с правилами реального времени). Причина по- явления этих элементов кроется в том, что у разработчиков Windows NT за плечами был опыт создания классической для своего времени операционной системы реального времени RSX11М (для компьютеров фирмы DEC).
    Анализ возможностей Windows NT показывает, что эта система не го- дится для построения систем жесткого реального времени (система непред- сказуема - время выполнения системных вызовов и время реакции на преры- вания сильно зависит от загрузки системы; система велика; нет механизмов защиты от зависаний). Поэтому даже в системах мягкого реального времени
    Windows NT может быть использована, только при выполнении целого ряда рекомендаций и ограничений.
    Разработчики расширений пошли двумя путями. Они использовали ядра классических операционных систем реального времени в качестве дополнения к ядру Windows NT. Таковы решения фирм "LP Eleknroniks" и "Radisys". В первом случае параллельно с Windows NT (на одном компьюте- ре) работает операционная система VxWorks, во-втором случае - InTime.
    Кроме того, предоставляется набор функций для связи приложений реально- го времени и приложений Windows NT. Вот как, например, это выглядит у LP
    Elektroniks: вначале стандартным образом загружается Windows NT, затем с помощью специального загрузчика загружается операционная система
    VxWorks, распределяя под себя необходимую память Windows (что в дальнейшем позволяет избежать конфликтов памяти между двумя ОС).
    После этого полной "хозяйкой" на компьютере уже становится VxWorks, отдавая процессор ядру Windows NT только в случаях, когда в нем нет надобности для приложений VxWorks. В качестве канала для синхронизации и обмена данными между Windows NT и VxWorks служат псевдодрайверы
    TCP/IP в обеих системах. Технология использования двух систем на одном компьютере следующая - работу с объектом выполняет приложение реального времени, передавая затем результаты приложениям Windows NT для обработки, передачи в сеть, архивирования.
    Второй вариант расширений реального времени фирмы VenturCom выглядит иначе: здесь сделана попытка "интегрировать" реальное время в

    22
    Windows NT путем исследования причин задержек и зависаний и устранения этих причин с помощью подсистемы реального времени. Решения фирмы "VenturCom" (RTX 4.2) базируются на модификациях уровня аппаратных аб- стракций Windows NT (HAL - Hardware Abstraction Layer) - программного слоя, через который драйверы взаимодействуют с аппаратурой. Модифици- рованный HAL и дополнтельные функции (RTAPI) отвечают также за ста- бильность и надежность системы, обеспечивая отслеживание краха Windows
    NT, зависания приложений или блокировку прерываний. В состав RTX вхо- дит также подсистема реального времени RTSS, с помощью которой
    Windows NT расширяется дополнительным набором объектов (аналогичным стандартным, но с атрибутами реального времени). Среди новых объектов - нити (потоки, процессы) реального времени, которые управляются специ- альным планировщиком реального времени (256 фиксированных приорите- тов, алгоритм - приоритетный с вытеснением). Побочным результатом RTX является возможность простого создания программ управления устройства- ми, так как среди функций RTAPI есть и функции работы с портами ввода- вывода и физической памятью. Решения VenturCom характерны еще и тем, что они предоставляют для NT возможность конфигурирования Windows NT и создания встроенных конфигураций (без дисков, клавиатуры и монитора, интегратор компонентов - CI).
    Несмотря на всю неоднозначность отношения традиционных пользо- вателей систем реального времени ко всему, что связано с "Microsoft", необ- ходимо констатировать факт: появился новый класс операционных систем реального времени - а именно расширения реального времени для Windows
    NT. Результаты независимых тестирований этих продуктов показывают, что они могут быть в перспективе использованы для построения систем жесткого реального времени после соответствующей доработки. Область применения расширений реального времени - большие системы реального времени, где требуется визуализация, работа с базами данных, доступ в Интернет и пр.
    1   2   3   4   5   6   7   8   9   ...   16


    написать администратору сайта