КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оптимального управления 7 страница
Интересно, что во всех нововведениях PCI-X остается совместимость с устройствами и шинами PCI: каждая шина будет работать в режиме, доступном самому слабому участнику — от PCI с частотой 33 МГц до PCI-X533. Мосты позволяют разным сегментам системы (шинам PCI) работать в разных режимах, так что можно выбрать эффективную конфигурацию, в которой новые устройства, критичные к пропускной способности, будут нормально уживаться со старыми. Третье поколение организации ввода-вывода — это PCI Express, Hyper Transport. Для третьего поколения характерен переход от шин к двухточечным соединениям с последовательным интерфейсом. По сути, третье поколение ввода-вывода приближается к совсем локальным (в пределах системной платы) сетям. Здесь между узлами сети передаются пакеты, в которых содержится как управляющая информация (команды), так и собственно передаваемые данные. Каждый интерфейс состоит из пары встречных однонаправленных связей (link), работающих независимо друг от друга (никакого квитирования при передаче не предусматривается). Пропускная способность связей одного интерфейса в разных направлениях может различаться — она выбирается с учетом потребностей данного применения. В архитектуре ввода-вывода появились новые возможности: управление качеством сервиса (QoS), потреблением и бюджетом связей. Топология соединения узлов и свойства связей различны, но и HyperTransport, и PCI Express, как и шины прежних поколений, не допускают петель в топологии. PCI Express, она же 3GIO (3-Generation Input-Output, ввод- вывод 3-го поколения), — это двухточечное подключение периферийных компонентов как в пределах системной платы, так и карт расширения. Интерфейс с разрядностью 1, 2, 4, 8, 12, 16 или 32 бит обеспечивает скорость передачи до 8 Гбайт/с. Здесь сохраняются программные черты шины РС1 (конфигурирование, типы транзакций), что обеспечивает плавность миграции от PCI к PCI Express. HyperTransport — это высокоскоростное двухточечное соединение между микросхемами в пределах платы (разъемы и карты расширения не предусмотрены). Основной вариант топологии — цепочка устройств-туннелей, имеющих по два интерфейса, и транслирующих все пакеты насквозь. Возможно применение мостов и коммутаторов, осуществляющих маршрутизацию пакетов. Разрядность связей может быть 2, 4, 8, 16 или 32 бита; тактовая частота от 200 до 800 МГц при двойной синхронизации обеспечивает пиковую скорость передачи данных до 6,4 Гбайт/с (32-битная связь). Поскольку пакеты могут передаваться одновременно в обоих направлениях, можно говорить о пропускной способности интерфейса 12,8 Гбайт/с. Общая идея конфигурирования и поддерживаемые типы транзакций обеспечивают удобную интеграцию с PCI/PCI-X посредством мостов. InfiniBand — это новая архитектура соединений для серверов, основанная на построении централизованной "фабрики ввода-вы вода" (I/O fabric). Узлы InfiniBand объединяются с помощью "коммутационной фабрики" — структуры коммутаторов, допускающей избыточные связи. Избыточность связей приветствуется, так как позволяет повысить суммарную пропускную способность. Избыточность обеспечивается как внутренними связями элементов коммутационной фабрики, так и наличием нескольких интерфейсов у устройств, позволяющих подключаться к нескольким точкам коммутационной фабрики. В InfiniBand представлены три уровня пропускной способности связей: 0,25, 1 и 3 Гбайт/с. Каждая связь (IB Link) состоит из 1, 4 или 12 пар встречных однонаправленных линий, работающих в полнодуплексном режиме со скоростью передачи в каждой линии 2,5 Гбит/с. Соединения обеспечиваются как межплатными разъемами, так и кабельными соединениями: медными до 17 м и оптическими до 10 км; в медном соединении каждая линия — это пара проводов с дифференциальными сигналами, в оптическом — одно волокно. Архитектура позволяет объединять до десятков тысяч узлов в единую подсеть. В зависимости от назначения, узлы снабжаются канальными адаптерами InfiniBand двух типов: НСА (Host Channel Adapter) для процессорных узлов, являющихся инициаторами транзакций, и ТСА (Terminal Channel Adapter) для узлов ввода-вывода (кон троллеров интерфейсов устройств хранения и сетей, графических контроллеров, шасси ввода-вывода с традиционными шинами расширения и т. п.). Карты PCMCIA и PC Card — это 68-контактный разъем. Назначение контактов (тип интерфейса), которое "заказывается" картой при установке ее в слот, следующее: Интерфейс памяти, 8/16-битные обращения, Vmax=10/20 Мбайт/с. Интерфейс ввода-вывода, 8/16-битные обращения, Vmax=3,92/7,84 Мбайт/с. Интерфейс CardBus: чуть упрощенная PCI 33 МГцх х32 бит = 132 Мбайт/с; дополнительно — цифровая передача аудиосигнала, ИКМ или ШИМ (PWM). Интерфейс АТА, предназначенный для дисков. Существует 4 типа PC Card. У них у всех размер в плане 54x 85,5 мм, но разная толщина (меньшие адаптеры встают в большие гнезда): PC Card Type I — 3,3 мм — карты памяти; PC Card Type II — 5 мм — карты устройств ввода-вывода, модемы, адаптеры локальных сетей; PC Card Type III — 10,5 мм — дисковые устройства хранения; PC Card Type IV- 16 мм.Small PC Card размером 45 x 42,8 мм — это тот же коннектор и те же типы по толщине. ZV Port (Zoomed Video) — это двухточечный интерфейс для доставки видеоданных с карты в экранный буфер VGA, 4 аудио- канала. "Мелкие" интегрированные контроллеры ПУ (порты СОМ, LPT, GAME, контроллер клавиатуры, мыши PS/2, НГМД, аудио), по традициям совместимости как устройства PCI не оформляют. Для них есть "маленькие" шины: X-Bus (на старых системных платах) — конструктивно не оформленная (слотами) шина ISA со всеми атрибутами (IRQ, DMA). Асинхронная (как ISA), неудобна в стыковке с синхронным окружением. LPC (Low Pin Count) — синхронная (33 МГц) 4-битная мультиплексированная шина, адрес памяти 32-битный; прерывания, DMA, BusMaster, пропускная способность на уровне ISA/X -Bus. В современных платах подключается через мост к PCI. Автоконфигурирование не предусмотрено (все абоненты априорно известны BIOS). Рассмотрим периферию. Основной поток информации от PC — зрительный, через активные (монитор) и пассивные (принтер, плоттер) средства вывода. Графическая подсистема содержит монитор, подключенный через графический адаптер. При этом изображение формируется программно. Видеосистема обеспечивает ввод/вывод "живого" видео. Видеокарта (в современном понимании) обеспечивает графику, возможно и видео. Устройство графического адаптера — это видеопамять, контроллер атрибутов (RAMDAC), контроллер ЭЛТ (развертки), интерфейс монитора, интерфейс к хосту, акселератор, VideoBIOS. Интерфейсы мониторов могут быть дискретные, аналоговые и цифровые. Наиболее известные интерфейсы следующие: Дискретный RGB TTL: DB-9, синхронизация HSync, +/—VSync; Video + Intens, RGB + Intens, RrGgBb. Аналоговый RGB (VGA): DB-15; синхронизация раздельная/общая, RGB - 75 Ом/О,7 В. Цифровые интерфейсы: P&D, DVI, DFP. Интерфейс Panel-Link (VESA) —- основа; кодек последователь ного интерфейса, протокол T M.D.S. (Transition Minimazed Difleretial Signaling), 4 канала (3 data + 1 clock). Каждый канал данных (8 бит) образован кодером, расположенным на видеокарте, линией связи и декодером, расположенным в дисплее; передает либо видео, либо синхронизацию и дополнительные сигналы. Аналоговый интерфейс Composite Video: полный видеосигнал 1,5 В, коаксиал (75 Ом), разъемы RCA "колокольчики" (в бытовых видеомагнитофонах, аналоговых телекамерах, телевизорах). Аналоговый интерфейс S-Video (Separate Video, S-VHS и Y/C): Y — это яркость и синхронизации (luminance+sync, обычный черно-белый видеосигнал, 1В) и С — это цветность (под- несущая, модулированная цветоразностными сигналами, 0,3 В). Коаксиал 75 Ом. Разъем mini-DIN (4 конт. или 7). Рассмотрим другую важную часть обеспечения функционирования УВМ. Работа УВМ в реальном масштабе времени обеспечивается операционной системой реального времени (ОС РВ), являющейся фундаментом базового программного обеспечения любой ЭВМ. ОС РВ должна обеспечивать полный цикл жизни программного обеспечения: создание текста программы, ее компиляцию, построение, отладку, исполнение и сопровождение. Требования, которым должны удовлетворять любые ОС РВ, изложены в стандарте POSIX 1003.4 (Real Time Extensions for Portable Operating Systems) рабочего комитета IEEE, утвержденном ISO/IEC как международный стандарт 9945. Этот стандарт определяет операционную систему как систему реального времени (ОС РВ), если она обеспечивает требуемый уровень сервиса за вполне определенное, ограниченное время. Сказанное можно сформулировать таким образом, что ОС РВ должна быть предсказуема. Правильная, но запоздалая реакция системы на внешнее событие зачастую может быть просто гибельной, например, в системе безопасности атомной станции, системах управления воздушным транспортом и т. п. При этом важно не абсолютное время реакции системы, а то, что оно определено заранее. В системе управления прокатным станом время реакции системы должно быть в пределах нескольких миллисекунд, а в системе контроля за окружающей средой — несколько минут. Однако оба эти при- ■ мера из области задач реального времени. Попробуем с учетом изложенных особенностей режима реального времени ответить на вопрос: а можно ли задачу реального времени решать с помощью операционных систем общего назначения (MS-DOS, UNIX и др.)? j Прежде чем ответить на него, вспомним, что все операционные системы делятся на системы реального времени и разделения времени (общего назначения). Главное требование, предъявляемое к системам общего назначения, заключается в обеспечении оптимального разделения всех ресурсов между всеми процессами,, Соответственно, не должно быть высокоприоритетных задач, которые использовали бы какой-либо ресурс системы только по мере необходимости. Поэтому разработчики операционных сис тем так или иначе стремятся достичь компромисса между меха- j низмом приоритетности и упомянутым требованием. Самыми популярными операционными системами до на~ стоящего времени остаются UNIX — подобные системы. Более j того, UNIX стал de facto стандартом для последующих операционных систем. Он реализован и на микро- и на суперкомпьютерах. Многие программные международные стандарты и согла шения основаны на UNIX, например: POSIX (Portable Operating System Interfase Standard), SV1D, BSD 4.3 UNIX Socket и др. Однако UNIX разрабатывалась как система общего назначения, не имеет эффективного механизма приоритетности задач ! и поэтому мало пригодна в задачах реального времени. В то же время, как будет показано позже, очень многие ОС РВ можно отнести к UNIX-подобным. MS-DOS в принципе можно использовать в задачах реального времени. Однако надо учесть, что существует еще целый ряд требований к системам реального времени, чисто практического свойства, которым MS-DOS не удовлетворяет, а имен- j но: многозадачность (MS-DOS — однозадачная система), легкость написания и включения в систему драйверов внешних устройств и хорошо развитый механизм синхронизации процессов и межзадачных обменов. Таким образом, очевидно, что задачи реального времени целесообразно реализовывать в рамках специфической системной программной среды — ОС РВ, которую мы и рассмотрим более подробно. Начнем с классификации ОС РВ. Обычно выделяют 4 класса ОС РВ: 1.0С РВ с программированием на уровне микропроцессоров. Такие системы очень небольшие и обычно написаны на языке низкого уровня, типа ассемблера или PLM и используются для программируемых процессоров. Эти микросхемы встраиваются в исполнительные механизмы и другие устройства. Внутрисхемные эмуляторы пригодны для отладки, но другие средства высокого уровня для разработки и отладки программ не применимы. Операционная среда обычно недоступна. 2. ОС РВ с минимальным ядром системы реального времени. s9to более высокий уровень системы реального времени, обеспечивающий минимальную среду исполнения. Предусмотрены основные функции, но управление памятью и диспетчер недоступны. Ядро представляет собой набор программ, выполняющих типичные, необходимые для встроенных систем низкого уровня функции типа арифметические операции с плавающей запятой и функции минимального сервиса ввода-вывода. Прикладные программы разрабатываются в инструментальной среде и выполняются на различных объектных устройствах с помощью встраиваемых микропроцессоров. З.ОС РВ с ядром системы реального времени и инструментальной средой. Этот класс систем обладает многими чертами полноценной операционной системы с полным сервисом. Разработка ведется в инструментальной среде, а исполнение -— на целевых системах. Обеспечивается гораздо более высокий уровень сервиса для разработчиков прикладных программ. Например, сюда включены такие средства, как дистанционный символьный отладчик, анализаторы эффективности, протокол ошибок и другие средства CASE (Computer Aided Software Engineering tools — средства разработки вспомогательного программного обеспечения для работы на компьютере). Кроме того, часто доступно параллельное программирование как часть среды исполнения. 4. ОС РВ с полным сервисом. Такие операционные системы могут быть применимы в любых конкретных приложениях реального времени. При этом разработка и исполнение прикладных программ ведутся в рамках одной и той же системы. Системы второго и третьего классов принято называть системами "жесткого" реального времени из-за жестких требова- | ний к времени реакции и необходимому объему памяти, а системы четвертого класса — "мягкого" реального времени из-за более мягких требований. Быстродействие ОС РВ полностью зависит от приложений, но всем ОС РВ присуща предсказуемость, т. е. способность системы откликнуться на событие в течение определенного ограниченного времени. При выборе той или иной ОС РВ все более важным моментом становится среда разработки прикладных программ. Кроме того, важной характеристикой для пользователя ОС РВ является ее конфигурация. Выделим следующие основные конфигурации: 1. Встроенные промышленные системы. 2. Промышленные системы с дисковой поддержкой. 3. Промышленные системы с сетевой поддержкой. 4. Однопользовательские системы разработки. 5. Однопользовательские системы разработки с дисковой поддержкой. 6. Небольшие многопользовательские системы. 7. Большие многопользовательские системы. При анализе характеристик конкретных ОС РВ следует учесть,что любая операционная система реализуется на конкретном j процессоре, а процессорная плата может быть выполнена в различных стандартах, что естественно сказывается на характеристиках ОС РВ. В настоящее время наиболее распространенными ОС РВ являются VRTX, Сехес, pSOS+, OS-9, VxWorks, iRMX, pDOS, QNX, HP RT. Рассматривая их основные характеристики, надо отметить, что при своих отличиях все они обладают основным набором возможностей к которым относятся: -многозадачность с управлением задачами, -управление памятью, -синхронизация -процессов, -межзадачный обмен, -ввод-вывод. Операционная система VRTX разработана фирмой Ready Systems (США) и нашла применение в области автоматизации производства, коммуникации, управления роботами и аэрокосмических исследований. Крупнейшими пользователями системы являются фирмы AT&T, NASA, Motorola, IBM и другие. Распространяется в двух вариантах: VRTX — ядро реального времени и VTRXvelocity — ядро реального времени плюс средства разработки. Это UNIX-подобная система "жесткого" реального времени, которая может быть любой из рассмотренных возможных конфигураций. VRTXvelocity реализована на следующих системах (кросс-среда): SUN 3, SUN 4, DECstation, VAX/VMS, HP 9000/400, PC/AT 80386. Система поддерживает стандарты TCP/ IP, NFS и сети Ethernet. Используется на процессорах Motorola 680x0, 68302, 68332; Intel 8086, 80186, 80286, 80386; Philips 68070, 93Cxxx; SUN SPARK; MIPS R3000; INMOS Transputer T4, T8. Операционная система Cexec разработана фирмой JMI Software Consultants (США) и нашла применение в области управления радарами, кардиографическими установками, лазерными принтерами, лабораторными системами регистрации данных и других. Крупнейшими пользователями системы являются: IBM, Boeing, Lockheed, Xerox, DEC и другие. Система не требует специальной кросс-среды. Задача кросс — компилируется, а затем строится с переносимой библиотекой (Cexecutive). Cexec фактически является ядром реального времени, относится к системам "жесткого" реального времени и может быть первой и второй из рассмотренных конфигураций. Кросс-средой может служить любая система, поддерживающая стандартные С-компиляторы. Используется на процессорах: Motorola 680x0, 68332, 68008, 68009; Intel 8080, 8085, 8086, 8088, 80286, 80386, i860, i960; Zilog Z80; Hitachi 64180; Texas Instruments TMS 34010; DEC LSI-11, National Semiconductor Series 32000; MIPS R2000, R3000; AMD 29000; SUN SPARC. Операционная система pSOS+ разработана фирмой Software Component Group (США) и нашла применение в области аэро-космических исследований, телекоммуникации, военной электроники, автоматизации производства и других. Это UNIX-подобная система "жесткого" реального времени и может быть любой из рассмотренных конфигураций. Кросс- среда реализована на PC/AT, SUN 3, SUN 4, VAX, HP 9000, Apollo Workstation. Есть пакет CASE-средств для SUN 3, SUN 4 и отладчик языков высокого уровня для PC/AT, SUN 3, SUN 4, VAX/VMS, HP 9000, Apollo Workstation. Используется на процессорах: Motorola 680x0; Intel 80x86, i960; AMD 29000. Поддерживает стандарты TCP/IP, NFS, X Windows, ANSI С-компиля- тор BSD 4.3 UNIX socket и сети Ethernet. Операционная система GS-9/9000 разработана фирмой Microware System Corporation (США) и нашла применение в области систем связи, управления роботами, бортовых систем, приборостроения, автоматизации производства, обработки данных, образования, графических систем и других. Крупнейшими пользователями системы являются: AT&T, NASA, Motorola, IBM, CERN, Boeing, Philips, Hitachi, Samsung, Sharp, Bruker, Thompson, Sony и другие. Это UNIX-подобная система "мягкого" реального времени и может быть с первой по шестую из рассмотренных конфигураций. Кросс-среда реализована на PC/AT, SUN 3, SUN 4, VAX, HP 9000/300, Apollo/Domain, Silicon Graphics. Кроме того, разработка программ может вестись в рамках самой системы (Self- hosted-система) Используется на процессорах: Motorola 6809, 680x0, 683хх; Intel 80386, 80486. Поддерживает стандарты TCP/IP, NFS, X Windows, BSD 4.3 UNIX socket, X Motif, Kernighan & Ritchi С-компилятор, RPC и сети Ethernet. Операционная система VxWorks разработана фирмой Wind River Systems (США) и нашла применение в области аэрокосмических исследований, в телекоммуникации, управлении процессами, научныех исследованиях, медицинском приборостроении, финансовом сервисе и других. Крупнейшими пользователями системы являются IBM, Boeing, Rockwell, Mitsubishi, British Aerospace, Xerox и другие.Это UNIX-подобная система "жесткого" реального времени и может быть любой из рассмотренных конфигураций. Кросс- среда реализована на PC/AT, SUN, HP 9000, DEC, FORCE. Используется на процессорах: Motorola 680x0; Intel i960; SUN SPARC; MIPS RxOOO. Поддерживает стандарты POSIX, TCP/IP, NFS, X Windows, ANSI C-компилятор, RPC и сети Ethernet. Операционная система iRMX разработана фирмой Intel Corporation (США) и нашит применение в области авиастроения, телекоммуникации, регистрации и анализа данных, автоматиза ции производства, управления финансами, спутниковой связи и других. Жестко ориентирована на шинные архитектуры MULTIbus 1/11 и стандартные компьютеры семейства IBM PC и PS/2. Это UNIX-подобная система "мягкого" реального времени и может быть любой из рассмотренных конфигураций. Фактически iRMX — это семейство систем iRMX 1/11/111. При этом iRMX 1 — это базовая система для 16-битных процессоров, iRMX 11 — это развитие базовой системы с учетом особенностей процессора 80286, a iRMX 111 — это развитие системы с адаптацией для 32-битных процессоров. Кроме того, в семейство входит 32-битное ядро реального времени для процессоров 80386/486. Кросс-среда реализована в MS-DOS и UNIX по системе self-hosted. Используется на процессорах: Intel 8086, 8088, 80188,80x86 (iRMX 1); Intel 80286, 80386,80486 (iRMXll); Intel 80386, 80486 (iRMX 111). Поддерживает стандарт POSIX и сети Ethernet. Операционная система pDOS разработана фирмой Eyring Corporation (США) и нашла применение в области телекоммуникации, приборостроения, автоматизации производства и друг их. Это система "мягкого" реального времени и может быть с первой по шестую из рассмотренных конфигураций. Кросс- среда реализована в UNIX, VMS, MS-DOS, SUN OS. Кроме того, разработка прикладных программ может вестись в рамках самой системы (self-hosted). Используется на процессорах: Motorola 68000, 68010, 68020,68030. Поддерживает стандарты TCP/IP, POSIX, ANSI С-компилятор и сети Ethernet. Одна из наиболее популярных версий Vmeprorn — предназначена для VME. Операционная система QNX разработана фирмой Quantum Software System (Канада) и нашла применение в области управления производством, роботами, процессами контроля окружающей среды и других. Это система "мягкого" реального времени и может быть со второй по седьмую из рассмотренных конфигураций. Разработка ■ прикладных программ может вестись в рамках самой системы (self-hosted) Используется на процессорах: Intel 80286, 80386,! 80486; PS/2, HP-Vectra. Поддерживает стандарты TCP/IP, POSIX и сети Ethernet. Операционная система HP-RT (HP-VX9.0) является развитием LvnxOS версии 2.1 фирмы Lynx Real-time Systems, Inc. (США) и нашла применение в области научных исследований, телекоммуникации, приборостроения, автоматизации производства и других. Это UNIX-подобная система "мягкого" реального времени и может быть любой из рассмотренных конфигураций. Кросс- среда реализована в UNI, возможен режим self-hosted. Используется на процессорах HP-PA RISC7100. Поддерживает стандарты TCP/IP, POSIX, X Windows, NFS, ANSI С-компилятор j и сети Ethernet. В России есть официальные дистрибуторы фирм-разработчиков ОС РВ, например АО "RTSoft" в г. Черноголовка, дистрибутор фирмы "Microware System Corporation" — разработчика OS- 9, OS-9000, или AVD Systems г. Москва, дистрибутор фирмы Wind River Systems — разработчика VxWorks, и др. Рассмотрим основные аспекты, касающиеся отличий современных и традиционных ОСРВ. К этим отличиям, прежде всего, следует отнести модели межпроцессного взаимодействия, распределение памяти, обработку ошибок, возможность реализации многопроцессорных систем и систем цифровой обработки сигналов, автоматический контроль для обеспечения высокой готовности и безопасности и т. д. В традиционных ОСРВ для межпроцессного взаимодействия (IPC — Inter-Process communication) используется, как правило, модель "разделяемой памяти" (share memory). Большинству разработчиков хорошо известны трудности, связанные с управлением межпроцессным взаимодействием такого типа, а также опасность сбоя системы, возникающая в том случае, когда один процесс "приватизирует" доступ к данным или когда один процесс повреждает данные, жизненно важные для другого про- I цесса. Проблема обеспечения стабильности работы системы через разделяемую память вполне разрешима, однако в общем случае такая задача требует весьма аккуратного управления разработкой и сопровождения программного обеспечения и достаточно длительного периода выявления ошибок. Перечисляя недостатки межпроцессного взаимодействия через разделяемую память, следует упомянуть также о том, что данный метод плохо подходит для распределенных систем и не может похвастаться высокой степенью совместимости с управлением памятью. Работоспособность системы с IPC через разделяемую память достижима и в этих случаях, однако есть способы лучше. Например, в ряде современных ОСРВ модель межпроцессного взаимодействия реализована через "передачу сообщений" (message passing). Согласно этой модели (рис. 2.27), акт взаимодействия заключается в том, что один процесс посылает другому процессу сообщение; при этом может потребоваться лишь четыре системных вызова. Данный подход прост и надежен; прохождение сообщений в процессе работы системы может легко
отслеживаться, что придает разработке и отладке ПО свободу и непринужденность. Кроме того, прямым следствием межпроцессного взаимодействия через передачу сообщений является возможность естественным образом распределять приложение между многочисленными центральными и DSP-процессорами. Еще одним приятным моментом является то, что приложение может быть разделено на несколько задач, создаваемых разными разработчиками. Однако пользователи традиционных ОСРВ могут заявить, что IPC через передачу сообщений не отличается высокой ско ростью, и при определенных обстоятельствах это утверждение будет соответствовать действительности» Тем не менее, как показывает практика, несколько пониженная скорость межпроцессного взаимодействия такого типа весьма редко сказывается на общей производительности системы и вряд ли может служить основанием для заслуживающих внимание критических аргументов. В традиционных ОСРВ для динамического распределения памяти используется механизм, подобный вызову функции malloc в языке Си. При выполнении этой команды исследуется весь массив памяти в поисках свободной области достаточно большого размера. У данного метода есть два недостатка. Первый — это то, что "глубина" таких поисков (а следовательно, и затрачиваемое на распределение памяти время) будет меняться в зависимости от того, как долго работает система. Второй недостаток связан с проблемой возникновения фрагментации: вы можете иметь 50 кбайт свободной памяти, но эти 50 кбайт могут быть в виде непригодных для использования 4-килобайтных кусочков. Многие специалисты решают эту проблему при помощи хитроумных программ и процедур собственного изготовления, однако такие методы могут нелучшим образом сказаться на характеристиках реального времени. Разработчики современных ОСРВ предпочитают другой способ. В случае операционной системы OSE, например, программист должен точно определить объем "пула" используемой памяти. Он также должен задать восемь размеров блоков памяти, которые могут быть выделены ему из этого "пула". В дальнейшем при возникновении потребности в памяти ОСРВ будет брать из "пула" кусок наиболее подходящего размера из этих восьми. Когда блок памяти перестает быть нужным, он отходит в связанный список свободных буферов. Преимущества такого решения состоят в том, что степень фрагментации памяти равна нулю, время распределения памяти строго детерминировано, а незанятый блок всегда находится либо в связанном списке, либо в начале области свободной памяти. В классических ОСРВ, как правило, используется десятилетиями установленный порядок обработки ошибок (рис. 2.28). Для выявления ошибок по совершении системного вызова проверке подвергается каждое возвращаемое значение. Отсюда немедленно следует, что всю полноту ответственности за надежность работы системы несет каждый участвующий в проекте специалист. Дополнительным неудобством является то, что значительная часть вашего приложения будет состоять из кодов ошибок, из- за чего оно увеличивается в размерах, его труднее документировать и отлаживать. В большинстве современных ОСРВ обработчики ошибок связаны с системными вызовами. Если начинает исполняться следующая строка кода, значит, все в порядке. Если же происходит ошибка, в дело вступает "центральный обработчик ошибок". Например, в операционной системе OSE обработка ошибок ведется на трех уровнях: уровне процесса, уровне блока и уровне системы (рис. 2.28), что дает высокую степень гибкости в выборе разрешения связанных с ошибками проблем. Такой механизм
обработки ошибок не только намного надежнее, он позволяет создавать более компактный и простой программный код. Известно, что большинство традиционных ОСРВ разрабатывались с прицелом на единственный центральный процессор, установленный на единственной плате. В наши дни все чаще требуется поддержка многопроцессорных систем, в том числе с поддержкой процессоров цифровой обработки сигналов (DSP- процессоры). В современной операционной системе OSE обработчик связей (link handler) позволяет естественным образом распределять приложение по многочисленным центральным и/или DSP-процессорам. Он действует на манер почтальона, беря сообщение от одного процесса, работающего на одном процессоре, и вручая его другому процессу, исполняющемуся на другом центральном или DSP-процессоре. Сейчас ОСРВ все чаще применяются в критичных к безопасности приложениях и в системах с высоким коэффициентом готовности, и большинство поставщиков операционных систем реального времени ищут способы решения возникающих в этой связи проблем. В случае операционной системы OSE решением являются два особых системных вызова: HUNT и ATTACH. Вызов HUNT позволяет ядру вести поиск процесса по имени. Вызов ATTACH сообщает процессу, что ядро проявляет к этому процессу "интерес". Это означает, что если с процессом что- нибудь будет "не так", ядро будет обязательно об этом проинформировано. Используя эти системные вызовы, разработчик может реализовать "горячую" замену и дублирование (резервирование) аппаратных средств. При отказе или удалении какого- либо устройства происходит уведомление об этом ядра, после чего ядро может провести поиск (hunt) второго подобного устройства и начать работать (attach) с этим устройством в том случае, если последнее окажется работоспособным.
Дата добавления: 2015-04-29; Просмотров: 482; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |