Настройка оборудования и программного обеспечения

Прикладные среды. Схема разработки прикладных программ в среде типичной системы программирования Прикладная программная среда схемы

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

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

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

Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же продукт в различных операционных системах и на различных машинах.

Вид возможной совместимости зависит от многих факторов. Самый главный из них – архитектура процессора. Если процессор применяет тот же набор команд (возможно, с добавлениями, как в случае IBM PC : стандартный набор + мультимедиа + графика + потоковые) и тот же диапазон адресов, то двоичная совместимость может быть достигнута достаточно просто. Для этого необходимо соблюдение следующих условий:

  • API, который использует приложение, должен поддерживаться данной ОС;
  • внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.

Если процессоры имеют разную архитектуру, то, кроме перечисленных условий, необходимо организовать эмуляцию двоичного кода. Например, широко используется эмуляция команд процессора Intel на процессоре Motorola 680x0 компьютера Macintosh. Программный эмулятор в этом случае последовательно выбирает двоичную инструкцию процессора Intel и выполняет эквивалентную подпрограмму, написанную в инструкциях процессора Motorola. Так как у процессора Motorola нет в точности таких же регистров, флагов, внутреннего АЛУ и др., как в процессорах Intel, он должен также имитировать (эмулировать) все эти элементы с использованием своих регистров или памяти.

Это простая, но очень медленная работа, поскольку одна команда Intel выполняется значительно быстрее, чем эмулирующая ее последовательность команд процессора Motorola. Выходом в таких случаях является применение так называемых прикладных программных сред или операционных сред. Одной из составляющих такой среды является набор функций интерфейса прикладного программирования API , который ОС предоставляет своим приложениям. Для сокращения времени на выполнение чужих программ прикладные среды имитируют обращение к библиотечным функциям.

Эффективность этого подхода связана с тем, что большинство сегодняшних программ работает под управлением GUI (графических интерфейсов пользователя) типа Windows , MAC или UNIX Motif , при этом приложения тратят 60-80% времени на выполнение функций GUI и других библиотечных вызовов ОС. Именно это свойство приложений позволяет прикладным средам компенсировать большие затраты времени, потраченные на покомандное эмулирование программ. Тщательно спроектированная программная прикладная среда имеет в своем составе библиотеки, имитирующие библиотеки GUI , но написанные на "родном" коде. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы. Иначе такой подход называют трансляцией – для того, чтобы отличить его от более медленного процесса эмулирования по одной команде за раз.

Например, для Windows -программы, работающей на Macintosh, при интерпретации команд процессора Intel производительность может быть очень низкой. Но когда производится вызов функции GUI , открытие окна и др., модуль ОС, реализующий прикладную среду Windows , может перехватить этот вызов и перенаправить его на перекомпилированную для процессора Motorola 680x0 подпрограмму открытия окна. В результате на таких участках кода скорость работы программы может достичь (а, возможно, и превзойти) скорость работы на своём родном процессоре.

Чтобы программа , написанная для одной ОС, могла быть выполнена в рамках другой ОС, недостаточно лишь обеспечивать совместимость API . Концепции, положенные в основу разных ОС, могут входить в противоречия друг с другом. Например, в одной ОС приложению может быть разрешено управлять устройствами ввода-вывода, в другой – эти действия являются прерогативой ОС.

Каждая ОС имеет свои собственные механизмы защиты ресурсов, свои алгоритмы обработки ошибок и исключительных ситуаций, особую структуру процессора и схему управления памятью, свою семантику доступа к файлам и графический пользовательский интерфейс . Для обеспечения совместимости необходимо организовать бесконфликтное сосуществование в рамках одной ОС нескольких способов управления ресурсами компьютера.

Существуют различные варианты построения множественных прикладных сред, отличающиеся как особенностями архитектурных решений, так и функциональными возможностями, обеспечивающими разную степень переносимости приложений. Один из наиболее очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС.

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

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

Такому подходу к конструированию множественных прикладных сред присущи все достоинства и недостатки микро ядерной архитектуры, в частности:

  • очень просто можно добавлять и исключать прикладные среды, что является следствием хорошей расширяемости микро ядерных ОС;
  • при отказе одной из прикладных сред остальные сохраняют работоспособность, что способствует надежности и стабильности системы в целом;
  • низкая производительность микроядерных ОС сказывается на скорости работы прикладных средств, а значит, и на скорости работы приложений.

В итоге следует отметить, что создание в рамках одной ОС нескольких прикладных средств для выполнения приложений различных ОС представляет собой путь , который позволяет иметь единственную версию программы и переносить ее между различными операционными системами. Множественные прикладные среды обеспечивают совместимость на двоичном уровне данной ОС с приложениями, написанными для других ОС.

1.9. Виртуальные машины как современный подход к реализации множественных прикладных сред

Понятие " монитор виртуальных машин" (МВМ) возникло в конце 60-х годов как программный уровень абстракции , разделявший аппаратную платформу на несколько виртуальных машин. Каждая из этих виртуальных машин (ВМ) была настолько похожа на базовую физическую машину, что существующее программное обеспечение могло выполняться на ней в неизменном виде. В то время вычислительные задачи общего характера решались на дорогих мэйнфреймах (типа IBM /360), и пользователи высоко оценили способность МВМ распределять дефицитные ресурсы среди нескольких приложений.

В 80-90-е годы существенно снизилась стоимость компьютерного оборудования и появились эффективные многозадачные ОС , что уменьшило ценность МВМ в глазах пользователей. Мэйнфреймы уступили место мини-компьютерам, а затем ПК, и нужда в МВМ отпала. В результате из компьютерной архитектуры попросту исчезли аппаратные средства для их эффективной реализации. К концу 80-х в науке и на производстве МВМ воспринимались не иначе как исторический курьез .

Сегодня МВМ – снова в центре внимания. Корпорации Intel, AMD , Sun Microsystems и IBM создают стратегии виртуализации, в научных лабораториях и университетах для решения проблем мобильности, обеспечения безопасности и управляемости развиваются подходы, основанные на виртуальных машинах. Что же произошло между отставкой МВМ и их возрождением?

В 90-е годы исследователи из Стэндфордского университета начали изучать возможность применения ВМ для преодоления ограничений оборудования и операционных систем. Проблемы возникли у компьютеров с массовой параллельной обработкой (Massively Parallel Processing , MPP ), которые плохо поддавались программированию и не могли выполнять имеющиеся ОС. Исследователи обнаружили, что с помощью виртуальных машин можно сделать эту неудобную архитектуру достаточно похожей на существующие платформы, чтобы использовать преимущества готовых ОС. Из этого проекта вышли люди и идеи, ставшие золотым фондом компании VMware (www.vmware. com ), первого поставщика МВМ для компьютеров массового применения.

Как ни странно, развитие современных ОС и снижение стоимости оборудования привели к появлению проблем, которые исследователи надеялись решить с помощью МВМ. Дешевизна оборудования способствовала быстрому распространению компьютеров, но они часто бывали недогруженными, требовали дополнительных площадей и усилий по обслуживанию. А следствиями роста функциональных возможностей ОС стали их неустойчивость и уязвимость .

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

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

Виртуализация – развивающаяся технология. В общих словах, виртуализация позволяет отделить ПО от нижележащей аппаратной инфраструктуры. Фактически она разрывает связь между определенным набором программ и конкретным компьютером. Монитор виртуальных машин отделяет программное обеспечение от оборудования и формирует промежуточный уровень между ПО , выполняемым виртуальными машинами, и аппаратными средствами. Этот уровень позволяет МВМ полностью контролировать использование аппаратных ресурсов гостевыми операционными системами (GuestOS) , которые выполняются на ВМ.

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

Благодаря полной инкапсуляции состояния ПО на ВМ монитор МВМ может отобразить ВМ на любые доступные аппаратные ресурсы и даже перенести с одной физической машины на другую. Задача балансировки нагрузки в группе машин становится тривиальной, и появляются надежные способы борьбы с отказами оборудования и наращивания системы. Если нужно отключить отказавший компьютер или ввести в строй новый, МВМ способен соответствующим образом перераспределить виртуальные машины. Виртуальную машину легко тиражировать, что позволяет администраторам по мере необходимости оперативно предоставлять новые услуги.

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

МВМ играет роль посредника во всех взаимодействиях между ВМ и базовым оборудованием, поддерживая выполнение множества виртуальных машин на единой аппаратной платформе и обеспечивая их надежную изоляцию. МВМ позволяет собрать группу ВМ с низкими потребностями в ресурсах на отдельном компьютере, снизив затраты на аппаратные средства и потребность в производственных площадях.

Полная изоляция также важна для надежности и обеспечения безопасности. Приложения, которые раньше выполнялись на одной машине, теперь можно распределить по разным ВМ. Если одно из них в результате ошибки вызовет аварию ОС, другие приложения будут от нее изолированы и продолжат работу. Если же одному из приложений угрожает внешнее нападение, атака будет локализована в пределах "скомпрометированной" ВМ. Таким образом, МВМ – это инструмент реструктуризации системы для повышения ее устойчивости и безопасности, не требующий дополнительных площадей и усилий по администрированию, которые необходимы при выполнении приложений на отдельных физических машинах.

МВМ должен связать аппаратный интерфейс с ВМ, сохранив полный контроль над базовой машиной и процедурами взаимодействия с ее аппаратными средствами. Для достижения этой цели существуют разные методы, основанные на определенных технических компромиссах. При поиске таких компромиссов принимаются во внимание основные требования к МВМ: совместимость, производительность и простота. Совместимость важна потому, что главное достоинство МВМ – способность выполнять унаследованные приложения. Производительность определяет величину накладных расходов на виртуализацию – программы на ВМ должны выполняться с той же скоростью, что и на реальной машине. Простота необходима, поскольку отказ МВМ приведет к отказу всех ВМ, выполняющихся на компьютере. В частности, для надежной изоляции требуется, чтобы МВМ был свободен от ошибок, которые злоумышленники могут использовать для разрушения системы.

Вместо того чтобы заниматься сложной переработкой кода гостевой операционной системы, можно внести некоторые изменения в основную операционную систему, изменив некоторые наиболее "мешающие" части ядра. Подобный подход называется паравиртуализацией . Ясно, что в этом случае адаптировать ядро ОС может только автор , и, например, Microsoft не проявляет желания адаптировать популярное ядро Windows 2000 к реалиям конкретных виртуальных машин.

При паравиртуализации разработчик МВМ переопределяет интерфейс виртуальной машины, заменяя непригодное для виртуализации подмножество исходной системы команд более удобными и эффективными эквивалентами. Заметим, что хотя ОС нужно портировать для выполнения на таких ВМ, большинство обычных приложений могут выполняться в неизменном виде.

Самый большой недостаток паравиртуализации – несовместимость. Любая операционная система , предназначенная для выполнения под управлением паравиртуализованного монитора МВМ, должна быть портирована в эту архитектуру, для чего нужно договариваться о сотрудничестве с поставщиками ОС. Кроме того, нельзя использовать унаследованные операционные системы, а существующие машины не удается легко заменить виртуальными.

Чтобы добиться высокой производительности и совместимости при виртуализации архитектуры x86 , компания VMware разработала новый метод виртуализации, который объединяет традиционное прямое выполнение с быстрой трансляцией двоичного кода "на лету". В большинстве современных ОС режимы работы процессора при выполнении обычных прикладных программ легко поддаются виртуализации, а следовательно, их можно виртуализировать посредством прямого выполнения. Непригодные для виртуализации привилегированные режимы может выполнять транслятор двоичного кода, исправляя "неудобные" команды x86 . В результате получается высокопроизводительная виртуальная машина , которая полностью соответствует оборудованию и поддерживает полную совместимость ПО .

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

Хотя трансляция двоичного кода требует некоторых дополнительных расходов, при нормальных рабочих нагрузках они незначительны. Транслятор обрабатывает лишь часть кода, и скорость выполнения программ становится сопоставимой со скоростью прямого выполнения – как только заполнится кэш-

Самым многочисленным классом компьютера являются прикладные программы.

Прикладное ПО предназначено для того, чтобы обеспечить применение вычислительной техники в различных сферах деятельности человека.

Прикладные программы – программы, предназначенные для решения конкретных задач пользователя.

Один из возможных вариантов классификации.

Классификация прикладного программного обеспечения по назначению

Текстовый редактор – программа, предназначенная только для просмотра, ввода и редактирования текста.

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

Все текстовые редакторы сохраняют в файле «чистый» текст и благодаря этому совместимы друг с другом.

Различные текстовые процессоры записывают в файл информацию о форматировании по-разному и поэтому несовместимы друг с другом.

Основные компоненты текстового процессора:

  • Набор шрифтов.
  • Проверка орфографии.
  • Предварительный просмотр печатаемых страниц.
  • Объединение документов, многооконность.
  • Автоформатирование и автоперенос.
  • Стандартные инструменты.
  • Табличный редактор и калькулятор.
  • Вставка графических объектов.

Примеры — MS Word, Write, WordPerfect, Ami Pro, MultiEdit, Лексикон, Рефис

Издательские системы — необходимы для подготовки документов типографского качества, компьютерной верстки (объединение текста и графики в книгу, журнал, брошюру или газету).

Примеры — Corel Ventura, QuarkXPress, Adobe PageMaker, MS Publisher, FrameMaker

Графическая информация – сведения или данные, представленные в виде схем, эскизов, изображений, графиков, диаграмм, символов.

Графический редактор – программа для создания, редактирования, просмотра графический изображений.

Основные компоненты графического редактора:

  • Набор шрифтов, работа с текстом.
  • Стандартные инструменты.
  • Библиотека картинок.
  • Объединение картинок.
  • Спецэффекты.

Различают всего три вида компьютерной графики . Это растровая графика, векторная графика и фрактальная графика . Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге.

Растровую графику применяют при разработке электронных (мультимедийных) и полиграфических изданий.

Иллюстрации, выполненные средствами растровой графики, редко создают вручную с помощью компьютерных программ. Чаще для этой цели сканируют иллюстрации, подготовленные художником на бумаге, или фотографии. В последнее время для ввода растровых изображений в компьютер нашли широкое применение цифровые фото- и видеокамеры.

Фрактальную графику редко применяют для создания печатных или электронных документов, но ее часто используют в развлекательных программах

Примеры — Paint, PaintBrush, CorelDraw, MS PhotoEditor, Adobe PhotoShop, 3D MAX Studio

СУБД (система управления базами данных) — предназначена для автоматизация процедур создания, хранения и извлечения электронных данных (обработка массивов информации).

Примеры — dBase, Paradox, MS Access, Oracle, FoxPro

Интергрированные системы встречаются двух типов

  • Традиционные (полносвязанные) пакеты прикладных программ(ППП).
  • Пакеты прикладных программ с интеграцией объектно-связанного характера

Традиционные ППП

Интегрированный программный комплекс представляет собой многофункциональный автономный пакет, в котором в одно целое объединены функции и возможности различных специализированных (проблемно-ориентированных) пакетов. В этих программах происходит интеграция функций редактора текстов, СУБД и табличного процессора. В целом стоимость такого пакета гораздо ниже суммарной стоимости аналогичных специализированных пакетов.

В рамках пакета обеспечивается связь между данными, однако, при этом сужаются возможности каждого компонента по сравнению с аналогичным специализированным пакетом.

Типичной является ситуация, когда данные, полученные из базы данных, необходимо обработать средствами табличного процессора, представить графически, а затем вставить в текст. Для выполнения работ такого типа существуют т.н. интегрированные пакеты – программные средства, совмещающие возможности, характерные в отдельности для текстовых редакторов, графических систем, электронных таблиц, баз данных и других программных средств. Конечно, такое совмещение возможностей достигается за счет компромисса. Некоторые возможности оказываются в интегрированных пакетах ограниченными или реализованными не в полной мере. Это касается, в первую очередь, богатства команд обработки БД и электронной таблицы, их размеров, макроязыков. Однако преимущества, создаваемые единым интерфейсом объединенных в интегрированном пакете программных средств, неоспоримы.

Известны пакеты Open Access фирмы Open Access, FrameWork фирмы Ashton-Tate, Lotus 1-2-3 и Symphony фирмы Lotus Development Corporation, Lotus Works.

ППП с интеграцией объектно-связанного характера

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

Интеграция предполагает придание компонентам комплекса единообразия с точки зрения их восприятия и приемов работы с ними. Согласованность интерфейсов реализуется на основе единых пиктограмм и меню, диалоговых окон и т.д. В конечном итоге это способствует повышению производительности труда и сокращению периода освоения.

Особенностью этого типа интеграции является использование общих ресурсов. Виды совместного доступа к ресурсам:

  • использование утилит, общих для всех программ комплекса (проверка орфографии);
  • применение объектов, которые могут находиться в совместном использовании нескольких программ;

В плане совместного использования объектов несколькими приложениями есть два основных стандарта:

  • динамической компоновки и встраивания объектов Object Linking and Embedding OLE фирмой Microsoft;
  • OpenDoc (открытый документ) фирмами Apple, Boriartd, IBM, Novell и WordPerfect.

Механизм динамической компоновки объектов дает возможность пользователю помещать информацию, созданную одной прикладной программой в документ, формируемый другой. При этом пользователь может редактировать информацию в новом документе средствами той программы, с помощью которой этот объект был создан.

Также данный механизм позволяет переносить OLE-объекты из окна одного приложения в окно другого.

OpenDoc представляет собой объектно-ориентированную систему, базирующуюся на открытых стандартах фирм – участников разработки. В качестве модели объекта используется распределенная модель системных объектов (DSOM – Distributed System Object Model), разработанная фирмой IBM для OS/2.

  • реализация простого метода перехода из одного приложения в другое;
  • наличие средств автоматизации работы с приложением (макроязыка).

Примеры: Borland Office for Windows, Lotus SmartSute for Windows, MS Office.

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

Принципиальным отличием экспертных систем от других программ является их адаптивность, т.е. изменчивость в процессе самообучения.

Принято выделять в ЭС три основных модуля: модуль базы знаний, модуль логического вывода, интерфейс с пользователем.

Экспертные системы используются в самых различных сферах человеческой деятельности – науке (классификация животных и растений по видам, химический анализ), в медицине (постановка диагноза, анализ электрокардиограмм, определение методов лечения), в технике (поиск неисправностей в технических устройствах, слежение за полетом космических кораблей и спутников), в геологоразведке, в экономике, в политологии и социологии, криминалистике, лингвистике и многих других. Существуют как узкоспециализированные ЭС, так и «оболочки», пользуясь которыми, можно, не будучи программистом, создавать свои ЭС.

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

Системы мультимедиа – программы, обеспечивающие взаимодействие визуальных и аудиоэффектов под управлением интерактивного программного обеспечения.

АРМ – автоматизированное рабочее место.

АСНИ – автоматизированные системы научных исследований.

АСУ автоматизированная система управления.

Прикладные программы пользователей создаются пользователем с использованием средств программирования, имеющихся в его распоряжении в составе конкретной вычислительной среды. В этом случае создание и отладка программ осуществляются каждым пользователем индивидуально, в соответствии с правилами и соглашениями того ППП, или ОС, в рамках которых они применяются.

Концепция микроядерной архитектуры

Двоичная совместимость и совместимость исходных текстов

Двои́чная совмести́мость,- вид совместимости программ, позволяющий программе работать в различных средах без изменения её исполняемых файлов.

Этот термин часто используется в значении «совместимость операционных систем», и в таком случае означает способность уже скомпилированной версии программы для одной операционной системы работать в другой операционной системе без перекомпиляции. Двоичная совместимость включает в себя побайтовую совместимость полей загрузки, полную идентичность механизма вызова функций, передачи переменных и получения результата вычислений, и полную реализацию интерфейса программирования. При этом технически реализация может быть совершенно иной, - главное, чтобы были реализованы все вызовы и чтобы они приводили к ожидаемому результату, а каким способом этот результат достигается, решают создатели программы.

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

Микроядерная архитектура является альтернативой классическому способу построения операционной системы, в соответствии с которым все основные функции операционной системы, составляющие многослойное ядро, выполняются в привилегированном режиме. В микроядерных ОС в привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Все остальные высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Микроядерные ОС удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За эти достоинства приходится платить снижением производительности, что является основным недостатком микроядерной архитектуры.

Один из более очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС.

ОС ОС1 кроме своих приложений поддерживает приложения ОС2 и ОС3. Для этого в ее составе имеются специальные приложения, прикладные программные среды, которые транслируют интерфейсы чужих ОС API ЩС2 и API ОС3 в интерфейс своей родной ОС API ОС1.

Другая реализация множественных прикладных сред предполагает наличие в ОС нескольких равноправных прикладных программных интерфейсов.

В пространстве ядра системы размещаются прикладные программные интерфейсы всех ОС.



Функции уровня API обращаются к функциям нижележащего уровня ОС, который должен поддерживать 3 (в данном случае) несовместимые среды.

Функции каждого API реализуются ядром с учетом специфики соответствующей ОС, даже если они имеют аналогичное назначение.

Еще один способ построения множественных прикладных сред основан на микроядерном подходе. При этом важно отделить базовые, общие для всех прикладных сред механизмы ОС от специфических.

В соответствии с микроядерной архитектурой все функции ОС реализуются микроядром и серверами пользовательского режима.

Важно, что каждая прикладная среда оформляется в виде отдельного сервера пользовательского режима и не включает базовых механизмов.

Приложение, используя API, обращается к системным вызовам к соответствующей прикладной среде через микроядро.

Прикладная среда образует запрос, выполняет его, и отсылает приложению результат. В ходе выполнения запроса прикладной среде приходится обращаться к базовым механизмам ОС, реализуемым микроядром и другими серверами ОС.

Такому подходу конструирования множественных прикладных сред присущи все достоинства и недостатки микроядерной архитектуры.

Несколько прикладных программ, объединенных для решения одной пользовательской задачи, называют приложением или прикладной средой. Это графические и текстовые редакторы, системы обработки электронных таблиц, системы управления базами данных, программы связи и др.

Прикладная среда – это компьютерная среда, формируемая прикладными программами. В качестве удобных и широко распространенных программных приложений для работы с различными видами данных являются прикладные программы Microsoft Office, созданных для работы в среде Windows. Важным достоинством Windows – приложений является наглядность. Во-первых, все инструменты среды Во-первых, все инструменты среды, имеющиеся в распоряжении пользователя, могут быть представлены графически в виде командных кнопок, расположенных на специальной панели. Под инструментами понимаются команды основного меню, позволяющие пользователю производить действия над объектами прикладной среды. На командных кнопках помещается графическое изображение инструмента. В настоящее время изображения на кнопках стандартизованы, так что можно говорить о специальном языке компьютерных обозначений. Каждая среда имеет набор стандартных инструментов, таких как Открыть, Сохранить, Удалить, Отменить, Копировать, Вставить. Кнопки с этими инструментами размещаются на панели, называющейся Стандартная панель . Но в прикладной среде есть также и свои специфические инструменты. Для них тоже разработаны графические изображения.

Во-вторых, документы, создаваемые в приложениях, отображаются на экране точно в таком виде, в каком будут распечатаны на бумаге. Это особенно важно, когда заранее известно, какого формата должен быть конечный документ.

Многозадачность. Еще одной отличительной особенностью Windows-приложений является работа в многозадачном режиме. На рабочем столе могут быть одновременно открыты сразу несколько документов, созданных различными приложениями. Можно одновременно редактировать рисунок, писать письмо и производить расчеты. Следует, однако, уточнить понятие одновременности. Все вышеперечисленные задачи могут быть запущены на выполнение. После запуска все они будут размещаться в оперативной памяти компьютера одновременно. Сам пользователь не может одновременно задействовать один и тот же орган восприятия информации для двух разных задач. Нельзя, например, читать текст и рисовать одновременно. Органы зрения человека, глаза, не приспособлены для этого. Соответственно, в таких случаях и с документами в средах человек работает последовательно, например, сначала рисует, потом пишет. Однако, если в каждой из задач задействованы разные органы восприятия информации, то эти задачи могут действительно выполнятся одновременно. Например, если запустить программу проигрывания лазерного диска и текстовый процессор, то можно одновременно слушать музыку и набирать текст, задействовав соответственно слух и зрение.

Организация обмена данными. Другой важной особенностью прикладных сред Windows является возможность обмена данными между приложениями. Системная среда предоставляет два различных способа для обмена данными между приложениями: через буфер обмена и по технологии OLE.

Обмен через буфер позволяет либо переместить объект документа на новое место, либо поместить на новое место или в новый документ копию объекта. Обмен через буфер позволяет передавать объекты и их копии из документа в документ, не сохраняя связи с приложением, в котором этот объект создавался.

Обмен через буфер производится в два этапа. На первом этапе в буфер помещается либо сам объект, либо его копия. На втором этапе объект из буфера вставляется в выбранный документ.

Технология OLE, которую предоставляет программная среда Windows, поддерживает постоянный контакт между прикладной средой, куда объект внедряется, и прикладной средой, где этот объект был создан. Применение технологии OLE эффективно в тех случаях, когда один и тот же объект используется в разных документах. Например, средствами текстового редактора создана эмблема фирмы. Затем, создавая различные документы (справку, письмо, заключение акт и пр.), можно использовать эту эмблему. Затем в эмблему были внесены изменения. В том случае, если эмблема помещалась в документы через буфер обмена, придется вставлять ее в каждый документ заново. Если же она была внедрена по технологии OLE, то обновление эмблемы во всех связанных документах будет произведено автоматически после редактирования исходного файла с эмблемой.

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

Интерфейс прикладной среды . Приложения, работающие в среде Windows, имеют очень похожий графический интерфейс. Интерфейсы прикладных сред состоят из однотипных по своему назначению элементов. В интерфейсе каждой из них можно выделить четыре зоны (рисунок 2.1):

Строка заголовка прикладной среды, где размещаются инструменты управления оконным интерфейсом приложения и отображается имя среды;

Зона управления, где размещаются средства управления приложением и документами;

Рабочее поле, где размещаются редактируемые документы;

Справочная зона, где размещается информация о режимах работы приложения и подсказки пользователю.

Рисунок 2.1- Структурные части интерфейса приложения

Все программы, создаваемые для Windows, имеют стандартный оконный интерфейс. У них формируются однотипные справочные зоны и зоны управления. Вид рабочего поля изменяется в зависимости от назначения прикладной среды.

При запуске любой прикладной среды на экран выводится окно приложения , то есть самой среды. Обычно внутри окна приложения сразу открывается и окно документа . Это может быть новый документ или документ, который редактировался последним. Если приложение было вызвано через запуск документа, то именно этот документ и будет располагаться в окне приложения.

Интерфейс прикладной среды включает в себя следующие элементы: строка заголовка прикладной среды, строка основного меню, панели инструментов, строка ввода и редактирования, строка состояния.

Строка заголовка включает в себя: кнопку системного меню, название приложения (например Microsoft Excel), кнопку Свернуть , кнопку Развернуть/Восстановить и кнопку Закрыть.

Основное меню прикладной среды, так же как и любой другой Windows-программы, похоже на матрешку. Разделы верхнего уровня обозначены в строке основного меню. В каждом из таких разделов команды более низкого уровня объединены по своему назначению. Список этих команд открывается в виде выпадающего меню. Обращение к некоторым из этих команд приводит в свою очередь к появлению дополнительного подменю еще более низкого уровня. Таким образом, с помощью основного меню производится последовательный выбор требуемой управляющей команды и задание всех необходимых для ее выполнения параметров.

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

Интерфейс табличного процессора и системы управления базами данных включает в себя также строку ввода и редактирования. Строка ввода и редактирования отображает вводимые в текущую ячейку таблицы или поле базы данных формулы или данные. В этой строке можно просматривать или редактировать содержимое этой ячейки или поля, а также увидеть саму формулу.

Строка состояния содержит информацию о режимах работы приложения. Кроме уже перечисленных, имеется группа элементов, которые можно условно назвать вспомогательной областью управления. К ним относятся: строка заголовка окна документа, создаваемого приложением, а также полосы прокрутки.

В строке заголовка окна документа указывается имя файла документа, редактируемого выбранным приложением. Если окно документа развернуто до максимального размера, то строка заголовка документа совмещается со строкой заголовка прикладной среды.

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

Редактирование документа . При работе в прикладной среде часто возникает необходимость вносить изменения в ранее созданные документы. С помощью прикладных программ можно не только создавать документы, как это было возможно на печатной машинке, но и осуществлять дальнейшие изменения, например, вносить исправления, устранять ошибки, осуществлять поиск и замену отдельных значений. Все операции, связанные с внесением изменений в документ и исправлением в нем ошибок, объединяются в общее понятие - редактирование. Редактирование - процесс внесения изменений в документ.

Редактировать можно не только текстовые документы, но и таблицы, базы данных, рисунки. Например, если деятельность связана с выполнением расчетов, нет необходимости пересчитывать заново огромные таблицы. Достаточно изменить только исходные цифры, а перерасчет итогов табличный процессор выполнится самостоятельно.

При редактировании необходимо:

1. Выделить объект.

2. Выполнить команду или действия по редактированию.

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

Форматирование документа. Любой документ должен быть оформлен красиво и профессионально. Например. создана таблица, но она настолько широка, что не умещается на странице. Надо либо уменьшить таблицу, либо развернуть страницу. Каждая прикладная среда обладает набором операций, позволяющих выполнить внешнее оформление документа в соответствии с предъявляемыми требованиями. Все операции по оформлению всего документа в целом или его объектов объединяются общим понятием - форматирование.

Форматирование - процесс представления внешнего вида документа или отдельных его объектов в требуемой форме.

При этом, следует учитывать, в какой среде создавался объект, так как это определит используемый инструментарий работы.

Характеристика инструментов прикладной среды. Работая на компьютере с тем или иным документом, человек использует в качестве инструментов прикладные программы, формирующие данную прикладную среду. Каждая прикладная среда имеет инструменты, обеспечивающие работу пользователя с документом. Работать с этими инструментами можно, используя кнопки на панели инструментов или выполняя команды различных меню. Инструменты прикладной среды - все средства воздействия прикладной среды на объекты документа и сам документ.

Инструменты различаются между собой, прежде всего, по назначению. Например, одни инструменты предназначены для работы с файлами, другие - для обработки данных в приложении. Управление всеми инструментами прикладной среды осуществляется с помощью команд основного меню. Названия этих команд обычно совпадают с названиями соответствующих инструментов. Команды по своему назначению объединены в группы, которые называются пунктами меню (например, пункты Файл, Правка, Вставка, Сервис ). Пункты меню образуют верхний уровень основного меню (рисунок 2.2).

Рисунок 2.2 – Основное меню прикладной среды

Такое меню называется многоуровневым, так как содержит команды, объединенные по назначению в группы. Каждая группа раскрывается щелчком мыши по ее названию. После можно переходить на следующий уровень меню и выбрать нужную команду из группы. В ряде случаев открывается подменю более низкого уровня. На самом нижнем уровне часто бывает необходимо уточнить параметры команды, указав необходимые значения в открывшемся диалоговом окне. На рисунке приведены только те имена меню, которые являются общими для всех приложений.

Файл. Этот пункт меню объединяет команды для работы с файлами и документами в целом. С его помощью можно создать новый файл, открыть существующий, сохранить редактируемый файл или его копию под другим именем и/или в другом месте, установить параметры страницы, вывести редактируемый файл на печать.

Создаваемый прикладной средой документ может быть в различных формах:

В экранной форме, то есть в виде отображенного на экране монитора документа с внедренными в него объектами;

В форме твердой копии, то есть в виде распечатки созданного документа на принтере;

В электронной форме - в виде файла, сохраненного на диске.

Результат работы с любой прикладной программой обязательно должен быть сохранен в файле на диске. Без этого невозможно ни продолжение работы, ни передача созданного документа на другой компьютер.

Правка. Обычно список команд этого пункта открывает команда продвижения вперед или назад. Этот раздел меню также включает в себя команды редактирования содержимого объектов документа. Несмотря на то, что для каждой прикладной среды эти объекты разные, общий для прикладной среды механизм обмена данными позволяет применять однотипные операции для всех объектов. Для копирования и перемещения различных объектов, как уже говорилось, используется буфер обмена или технология OLE. С их помощью можно осуществлять интеграцию данных различных прикладных сред.

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

Вставка. В этом разделе меню сгруппированы команды, предназначенные для выполнения действий по вставке (внедрению) в документ различных объектов, созданных в любой прикладной среде.

Формат. Этот пункт меню содержит команды, с помощью которых выполняется форматирование объектов документа, созданных в данном приложении. Обычно имена команд совпадают с названиями объектов, которые необходимо форматировать: Ячейки..., Строки, Столбцы, Шрифт..., Абзац... и т. д.

Помимо команд форматирования конкретных объектов здесь же находятся команды, определяющие стили и автоформат.

Под стилем понимается совокупность параметров форматирования объекта документа. Автоформат назначает параметры форматирования для всех объектов документа и всего документа в целом.

Вид. Этот пункт меню предназначен для выбора различных способов отображения документа на экране, настройки вывода на экран используемых инструментов, добавления колонтитулов, изменения масштаба отображения документа на экране и т. п.

Сервис . Это меню обеспечивает дополнительные возможности прикладной среды. Предоставление этих возможностей обеспечивается запуском на выполнение вспомогательных программ прикладной среды, например, программы проверки орфографии. Эта программа может использоваться не только текстовым редактором, но и другими Windows-приложениями.

Другим примером может служить адресная книга. Эта программа хранит данные людей, с которыми вам часто приходится иметь дело. Она может быть использована для пересылки вашего документа по адресу, хранящемуся в адресной книге или для вставки обращения в документ, предназначенный для конкретного лица.

Окно. К этому меню следует обращаться при одновременной работе с несколькими документами в разных окнах для их настойки и перехода из одного окна в другое.

Справка . Данный пункт меню используется для получения помощи по всем инструментам текущей прикладной среды.

Планирование деятельности и поддержка коммуникаций

Программа Microsoft Outlook предназначена для организации документов и планирования задач, в том числе для отправки почты, планирования встреч, событий и собраний, ведения списка контактов и списка задач, а также учета всех выполненных работ.

Программная среда Microsoft Outlook пришла на смену разнообразным видам блокнотов и записных книжек, которые использовали руководители и секретари для организации своей работы. Так, для хранения сведений о различных людях и организациях использовались телефонные книжки, для планирования ежедневных встреч и дел - еженедельники, для временных записей - блокноты для заметок. Помимо перечисленных видов блокнотов составлялись планы работы на одну неделю, на один месяц, на год и т. д.

Информация организована в виде папок, которые по назначению аналогичны своим бумажным предшественникам Удобные способы представления информации, ее поиска, средства напоминания предлагаемые средой Outlook, могут помочь эффективно организовать свою работу. Среду Outlook могут использовать и руководитель, и секретарь, и другие сотрудники.

На рисунке 2.3 представлено главное окно программной среды Outlook. В левой части окна находится панель Outlook, на которой расположены основные объекты, с которыми работает среда. Объекты представляют собой папки с информацией определенного вида. Эти объекты сгруппированы в группы: Outlook, Почта, Другие папки. Основными элементами информации, с которыми работает среда Outlook, являются папки Контакты, Календарь, Задачи, Заметки, Дневник .

Папка Контакты является хранилищем сведений и данных о людях, с которыми организация поддерживает деловые и личные отношения. Эти люди могут быть как сотрудниками данной организации, так и работниками других фирм. В папке Контакты могут храниться: адрес электронной почты, почтовый адрес, несколько номеров телефонов и другие сведения, относящиеся к контактному лицу, например, день рождения или годовщина какого-либо события. На основе папки Контакты формируется Адресная книга для пересылки электронной почты.

Рисунок 2.3 – Окно программы Outlook

В среде Outlook все мероприятия подразделяются на несколько групп: встречи, собрания, события, задачи, телефонные звонки (рисунок 2.4).

Встречи - это мероприятия, для которых резервируется время в календаре. На встречи никто не приглашается, для них не привлекаются никакие ресурсы. Под ресурсами понимается выделение специального помещения, временные затраты, связанные с подготовкой, материальные расходы.

Собрание - это встреча с приглашением лиц или привлечением ресурсов. Событие - это мероприятие на весь день, на которое могут приглашаться или не приглашаться другие люди. В среде Outlook для планирования встреч, собраний и событий и установления времени их проведения предназначена папка Календарь.

Рисунок 2.4 – Виды мероприятий

Задача – это дело, которое надо выполнить к определенному сроку, связанное со значительными временными затратами.

Для описания сведений о задаче и организации решения задач используется папка Задачи .

Телефонный звонок – мероприятие, связанное с решением вопросов по телефону и не требующее непосредственного контакта.

Телефонные звонки, а также вся работа по созданию и обработке различных документов на компьютере фиксируется в папке Дневник.

Представленная система папок позволяет деловому человеку организовать планирование своего рабочего времени и отслеживать временные затраты на выполнение работы.

Другая группа папок, включающая папки Входящие, Исходящие, Черновики и Отправленные , предназначена для организации обмена электронной почтой с партнерами по работе.

Основными информационными элементами этих папок являются сообщения. Сообщение - документ, отправленный или полученный по электронной почте. Папка Входящие предназначена для приема сообщений. Папки Исходящие и Черновики предназначены для подготовки сообщений к отправке. Папка Отправленные предназначена для сохранения отправленных сообщений.

Основными действиями, которые можно выполнять над элементами в среде Outlook, являются:

Создать;

Установить и изменить параметры;

Выделить, скопировать, вставить копию, удалить;

Пометить как выполненный;

Переслать другому лицу;

Прикрепить документ;

Связать с контактом.

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

Совместимость приложений может быть на двоичном уровне и на уровне исходных текстов [13 ]. Приложения обычно хранятся в ОС в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная совместимость достигается в том случае, если можно взять исполняемую программу и запустить ее на выполнение в среде другой ОС.

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

Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же продукт в различных операционных системах и на различных машинах.

Вид возможной совместимости зависит от многих факторов. Самый главный из них – архитектура процессора. Если процессор применяет тот же набор команд (возможно, с добавлениями, как в случае IBM PC: стандартный набор + мультимедиа + графика + потоковые) и тот же диапазон адресов, то двоичная совместимость может быть достигнута достаточно просто. Для этого необходимо соблюдение следующих условий:

    API, который использует приложение, должен поддерживаться данной ОС;

    внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.

Если процессоры имеют разную архитектуру, то, кроме перечисленных условий, необходимо организовать эмуляцию двоичного кода. Например, широко используется эмуляция команд процессора Intel на процессоре Motorola 680x0 компьютера Macintosh. Программный эмулятор в этом случае последовательно выбирает двоичную инструкцию процессора Intel и выполняет эквивалентную подпрограмму, написанную в инструкциях процессора Motorola. Так как у процессора Motorola нет в точности таких же регистров, флагов, внутреннего АЛУ и др., как в процессорах Intel, он должен также имитировать (эмулировать) все эти элементы с использованием своих регистров или памяти.

Это простая, но очень медленная работа, поскольку одна команда Intel выполняется значительно быстрее, чем эмулирующая ее последовательность команд процессора Motorola. Выходом в таких случаях является применение так называемых прикладных программных сред или операционных сред. Одной из составляющих такой среды является набор функций интерфейса прикладного программирования API, который ОС предоставляет своим приложениям. Для сокращения времени на выполнение чужих программ прикладные среды имитируют обращение к библиотечным функциям.

Эффективность этого подхода связана с тем, что большинство сегодняшних программ работает под управлением GUI (графических интерфейсов пользователя) типа Windows, MAC или UNIX Motif, при этом приложения тратят 60-80% времени на выполнение функций GUI и других библиотечных вызовов ОС. Именно это свойство приложений позволяет прикладным средам компенсировать большие затраты времени, потраченные на покомандное эмулирование программ. Тщательно спроектированная программная прикладная среда имеет в своем составе библиотеки, имитирующие библиотеки GUI, но написанные на "родном" коде. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы. Иначе такой подход называют трансляцией – для того, чтобы отличить его от более медленного процесса эмулирования по одной команде за раз.

Например, для Windows-программы, работающей на Macintosh, при интерпретации команд процессора Intel производительность может быть очень низкой. Но когда производится вызов функции GUI, открытие окна и др., модуль ОС, реализующий прикладную среду Windows, может перехватить этот вызов и перенаправить его на перекомпилированную для процессора Motorola 680x0 подпрограмму открытия окна. В результате на таких участках кода скорость работы программы может достичь (а, возможно, и превзойти) скорость работы на своём родном процессоре.

Чтобы программа, написанная для одной ОС, могла быть выполнена в рамках другой ОС, недостаточно лишь обеспечивать совместимость API. Концепции, положенные в основу разных ОС, могут входить в противоречия друг с другом. Например, в одной ОС приложению может быть разрешено управлять устройствами ввода-вывода, в другой – эти действия являются прерогативой ОС.

Каждая ОС имеет свои собственные механизмы защиты ресурсов, свои алгоритмы обработки ошибок и исключительных ситуаций, особую структуру процессора и схему управления памятью, свою семантику доступа к файлам и графический пользовательский интерфейс. Для обеспечения совместимости необходимо организовать бесконфликтное сосуществование в рамках одной ОС нескольких способов управления ресурсами компьютера.

Существуют различные варианты построения множественных прикладных сред, отличающиеся как особенностями архитектурных решений, так и функциональными возможностями, обеспечивающими разную степень переносимости приложений. Один из наиболее очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС.

На рис. 1.9 ОС OS1 поддерживает кроме своих "родных" приложений приложения операционных систем OS2 и OS3. Для этого в её составе имеются специальные приложения, прикладные программные среды, которые транслируют интерфейсы "чужих" операционных систем API OS2 и API OS3 в интерфейс своей "родной" ОС – API OS1. Так, например, в случае если бы в качестве OS2 выступала ОС UNIX, а в качестве OS1 – OS/2, для выполнения системного вызова создания процесса fork () в UNIX-приложении программная среда должна обращаться к ядру операционной системы OS/2 с системным вызовом DOS ExecPgm ().

Рис. 1.9. Организация множественных прикладных сред

К сожалению, поведение почти всех функций, составляющих API одной ОС, как правило, существенно отличается от поведения соответствующих функций другой ОС. Например, чтобы функция создания процесса в OS/2 Dos ExecPgm () полностью соответствовала функции создания процесса fork () в UNIX-подобных системах, её нужно было бы изменить и прописать новую функциональность: поддержку возможности копирования адресного пространства родительского процесса в пространство процесса-потомка [17 ].

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

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

Такому подходу к конструированию множественных прикладных сред присущи все достоинства и недостатки микро ядерной архитектуры, в частности:

    очень просто можно добавлять и исключать прикладные среды, что является следствием хорошей расширяемости микро ядерных ОС;

    при отказе одной из прикладных сред остальные сохраняют работоспособность, что способствует надежности и стабильности системы в целом;

    низкая производительность микроядерных ОС сказывается на скорости работы прикладных средств, а значит, и на скорости работы приложений.

В итоге следует отметить, что создание в рамках одной ОС нескольких прикладных средств для выполнения приложений различных ОС представляет собой путь, который позволяет иметь единственную версию программы и переносить ее между различными операционными системами. Множественные прикладные среды обеспечивают совместимость на двоичном уровне данной ОС с приложениями, написанными для других ОС.

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!