Начальная

Windows Commander

Far
WinNavigator
Frigate
Norton Commander
WinNC
Dos Navigator
Servant Salamander
Turbo Browser

Winamp, Skins, Plugins
Необходимые Утилиты
Текстовые редакторы
Юмор

File managers and best utilites

Интеграция MS-DOS приложений в современные операционные системы. Какой вид эмуляторов позволяет запускать программы написанные для других операционных систем


Тема 4. Совместимость операционных систем( 2 часа)

4.1 Виды совместимости

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

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

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

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

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

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

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

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

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

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

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

studfiles.net

Конспект лекций по дисциплине «операционные системы»

Литература

  1. Таненбаум Э., Вудхал А. Операционные системы. Разработка и реализация. 3-е изд. – СПб.: Питер, 2007. – 704 с.

  2. Гордеев А.В. Операционные системы. – СПб.: Питер, 2007. – 416 с.

  3. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2002. – 736 с.

  4. Харт Д.М. Системное программирование в среде Windows.: пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 529 с.

  5. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения. – М.: ИД «ФОРУМ»: ИНФРА-М, 2008. – 400 с.

  6. Иртегов Д.В. Введение в операционные системы. – СПб.: БХВ-Петербург, 2002. – 624 с.

  7. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. – СПб.: Питер, 2001. – 544 с.

  8. Партыка Т.Л., Попов И.И. Операционные системы, среды и оболочки. М.: ФОРУМ: ИНФРА-М, 2007. – 528 с.

  9. Реймонд С. Искусство программирования для UNIX. – М.: Издательский дом «Вильямс», 2005. – 544 с.

Лекция № 1. Основные понятия

    1. Системное и прикладное программное обеспечение

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

В составе системного ПО можно выделить две составляющие: базовое и сервисное.

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

Сервисное ПО – программы и программные комплексы, которые расширяют возможности базового ПО и организуют более удобную среду работы пользователя. К сервисному ПО также относятся средства разработки (редакторы) и создания программ (компиляторы и интерпретаторы).

Веб-браузер

Базы данных

Игры

Прикладное ПО

Компиляторы

Редакторы

Интерпретаторы

Системное ПО

Операционная система

Машинный язык

Аппаратура

Микроархитектура

Физические устройства

Рис. 1.1.

Место операционной системы в общей структуре компьютера показано на рис. 1.1. Самый нижний слой модели – это физические устройства, которые входят в состав компьютера: интегральные микросхемы, платы, источники питания, дисплей, клавиатура и т.д. Отдельные устройства объединяются в функциональные блоки и образуют микроархитектуру компьютера. На микроархитектурном уровне находятся внутренние регистры ЦПУ (центрального процессорного устройства) и тракт данных, включающий арифметико-логическое устройство.

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

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

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

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

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

    1. Операционные системы

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

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

Примеры операционных систем: UNIX, OS/2, Windows, Linux, QNX, MacOS, BeOS.

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

Более детальный перечень функций приведен ниже:

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

  2. Загрузка в оперативную память подлежащих исполнению программ.

  3. Распределение памяти.

  4. Запуск программы (передача ей управления, в результате чего процессор исполняет программу).

  5. Идентификация всех программ и данных.

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

  7. Обслуживание всех операций ввода-вывода.

  8. Обеспечение работы систем управления файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.

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

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

  11. Организация механизмов обмена сообщениями и данными между выполняющимися программами.

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

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

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

  15. Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени).

  16. Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.

  17. Предоставление услуг на случай частичного сбоя системы.

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

В литературе также часто используется термин ядро (kernel) операционной системы, который понимается как синоним супервизора.

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

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

  1. ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;

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

  3. ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).

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

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

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

    1. Операционные среды

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

Та программная среда, которая непосредственно образуется кодом операционной системы, называется основной, естественной, или нативной (native – по английски «туземец»). Помимо основной операционной среды в операционной системе могут быть организованы (путем эмуляции иной операционной среды) дополнительные программные среды.

Эмуляция (англ. emulation) – воспроизведение программными или аппаратными средствами (либо их комбинацией) работы других программ или устройств. В отличие от симуляции (simulation), которая лишь воспроизводит поведение программы, при эмуляции ставится цель точного моделирования состояния имитируемой системы, для выполнения оригинального машинного кода.

Обычно эмуляцию используют для осуществления следующих целей.

  • Создание нового микропроцессора. В этом случае при помощи эмулятора на другом микропроцессоре выполняются команды этого еще не существующего процессора.

  • Необходимость выполнения программного обеспечения, написанного для другого устройства или операционной системы.

  • Тестирование программ написанных для различных систем.

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

Если в операционной системе организована работа с различными операционными средами, то в такой системе можно выполнять программы, созданные не только для данной, но и для других операционных систем. Например, можно создать программу для работы в среде DOS. Если такая программа все функции, связанные с операциями ввода-вывода и запросами памяти, выполняет не сама, а за счет обращения к системным функциям DOS, то она будет (в абсолютном большинстве случаев) успешно выполняться и в MS DOS, и в OS/2, и в Windows 2000, и даже в Linux.

Операционная система Windows XP позволяет выполнять помимо основных приложений, созданных с использованием Win32API, 16-разрядные приложения для Windows 3.х, 16-разрядные DOS-приложения, 16-разрядные приложения для первой версии OS/2.

Эмуляцию Windows в UNIX можно осуществить с помощью программы WineHQ. Информация по этому вопросу и по загрузке пакета с открытым исходным кодом Wine, позволяющего эмулировать Windows API поверх UNIX, содержится на сайте http://www.winehq.com.

Необходимо заметить, что WineHQ не является обычным эмулятором. Об этом говорит аббревиатура этой программы: «Wine Is Not an Emulator». Вместо действия в качестве полного эмулятора Wine создает «слой совместимости», обеспечивая альтернативное подсоединение динамически связываемых библиотек (Dynamic Link Library), которые вызывают программы Windows, и выполнение процессов, совместимых с ядром Windows NT.

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

    1. Операционные оболочки

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

Для преодоления этого недостатка было создано множество программных «оболочек» – shell (по английски – «раковина»).

К ним относятся Norton Commander – программа, созданная как надстройка над DOS, FAR Manager – текстовая оболочка для Windows 95/98/NT/2000/XP, Midnight Commander – программная оболочка системы Linux и т.п. Программные оболочки предлагают пользователю меню, из которого он может выбрать желаемое действие.

В последнее время операционные оболочки активно вытесняются графическими интерфейсами (Graphical User Interface – GUI), например X-Window с различными менеджерами окон – KDE, Gnome и т.п., которые приобретают все большую популярность у пользователей.

По-видимому, операционные оболочки можно рассматривать как нечто промежуточное между интерфейсом командной строки и графическими интерфейсами.

studfiles.net

Интеграция MS-DOS приложений в современные операционные системы

Проблематика области

На данный момент существует большое количество программ, написанных для операционной системы MS-DOS. Однако эта операционная система уже устарела, и использовать её становится неудобно, а порой даже не представляется возможным [1]. Несмотря на ограниченные возможности MS-DOS, а так же нестабильность работы и плохой пользовательский интерфейс большинства из описанных приложений, программы продолжают использоваться в повседневной практике. Причина заключается в том, что многие из MS-DOS приложений предоставляют уникальные средства для решения тех или иных задач. Нельзя говорить о том, что аналогов для данных систем не существует вовсе. Они, конечно же, существуют, но могут решать те же самые задачи другими методами или в неполном объеме.

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

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

Исполнение MS-DOS приложений

Для исполнения MS-DOS приложений в современном мире существует несколько способов. Первым и самым простым способом является использование самой операционной системы MS-DOS. Но такой способ обладает целым рядом недостатков. Основным недостатком является то, что пользователю придётся периодически переключаться между двумя операционными системами. В одной из них он будет исполнять необходимое DOS приложение, а во второй будет интерпретировать результат работы приложения, а так же работать с остальными приложениями. Разработчики операционных систем попытались оградить пользователя от такой проблемы, предложив исполнять MS-DOS приложения с помощью так называемых режимов совместимости.

Режимы DOS совместимости позволяют исполнить приложения для MS-DOS, не меняя операционной системы. Т.е. пользователь после предварительной настройки может исполнять необходимое ему DOS приложения как любое другое приложение для этой операционной системы. Но, к сожалению, и такой способ имеет существенные недостатки:

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

Ø  Режимы совместимости работают не всегда. Происходит это потому, что некоторые DOS приложения запрашивают номер версии Windows. Или же местоположение или формат пользовательских папок может не совпадать с ожидаемым и т.д. В таких случаях DOS приложение просто отказывается работать.

Ø  Режимы совместимости присутствуют не во всех операционных системах. Например, в Windows 98 эта схема работала очень не постоянно. В Windows XP режимы совместимости с DOS были, в конечном итоге, заменены другим инструментом. Ну а о режимах совместимости в Linux или Mac OS можно и вовсе забыть.

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

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

Имитация работы с MS-DOS приложением

Для решения поставленной задачи необходимо разработать модель, которая бы позволяла использовать функциональность MS-DOS приложений в современной среде. Идея решения этой проблемы – имитация работы пользователя с приложением. Рассмотрит модель, представленную на рисунке ниже:

 

 

 

Рис. 1. Общая модель интеграции MS-DOS приложения в современной среде

 
 

 

 

 

 

 

 

 

 

 

 

 

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

Чтобы осуществить управление MS-DOS приложением, исполняемому с помощью DOS эмулятора, нам необходимо передать пользовательские команды этому эмулятору, т.е. имитировать работу пользователя с эмулятором.

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

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

Однако, при интегрировании большого MS-DOS приложения в современную среду, хотелось бы работать не с низкоуровневыми командами, такими как нажатие клавиш на клавиатуре, а с более высокоуровневыми операциями, например, сохранение результатов в какой-то файл и т.д. Для решения этой задачи в модель добавлен контроллер приложения. Этот контроллер хранит в себе набор команд, с помощью которого можно получить тот или иной результат, обращаясь к MS-DOS приложению, и с помощью контроллера простейших команд умеет выполнять свои задачи. Таким образом, контроллер приложения может включать в себя метод сохранения файла, который выполняет последовательность команд: нажатие клавиши Left, нажатие клавиши Enter, передача строки с именем файла и т.д.

Не стоит забывать и о том, что решение каких-то задач с помощью MS-DOS приложения может не ограничиваться исполнением только одного приложения. Для некоторых DOS приложений может понадобиться выполнение каких-то внешних программ. Например, некоторые вычислительные пакеты программ предполагают сначала запуск компилятора языка Fortran для того, чтобы собрать приложение, которое в дальнейшем тоже будет исполняться. В таком случае, обязанность запуска этого компилятора так же ложиться на контроллер приложения. Нужно помнить, что контроллер передаёт команды не приложению, а эмулятору. И прежде, чем передавать команды конкретному приложению нам необходимо это приложению запустить.

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

Эмуляторы MS-DOS

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

Ø  Стабильность. Нельзя допускать, чтобы используемый эмулятор приводил к различным ошибкам в работе с MS-DOS приложением.

Ø  Поддержка различных операционных систем. Желательным требования к эмулятору является как можно большая независимость от операционной системы, так как MS-DOS  приложения могут использоваться в самых различных операционных системах.

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

Наиболее популярным среди эмуляторов является эмулятор с открытым исходным кодом DOSBox [7]. Его работа основывается на использование SDL библиотеки, что позволяет осуществить его работу на операционных системах Linux, FreeBSD, Windows, Mac OS X и BeOS. Чаще всего, этот эмулятор используют для запуска старых DOS игр, но его можно использовать и для работы с серьёзными приложениями. К плюсам этого эмулятора можно отнести следующее:

Ø  DOSBox полностью эмулирует центральный процессор, при этом не требуя ни процессора x86, ни копии DOS.

Ø  Динамическое ядро процессора: на системах, имеющих набор команд i386, используется динамическая трансляция инструкций. На системах, не совместимых с x86, производится полная эмуляция, приводящая к существенному замедлению. Например, система на основе PowerPC G4 1,6 ГГц способна эмулировать систему со стандартным аппаратным обеспечением и с Intel 80486 50 МГц процессором; на x86-совместимых системах той же скорости можно добиться от гораздо более медленного процессора (например, от Pentium II).

Ø  Графическая эмуляция: текстовый режим, Hercules, CGA (включая композитный и 160x100x16 режимы), EGA, VGA (включая Mode X), VESA и полную эмуляцию S3 Trio 64.

Ø  Звуковая эмуляция: Adlib, динамик компьютера, Tandy, Sound Blaster, Creative CMS/GameBlaster, Disney Soundsource, Gravis Ultrasound и MPU-401.

Ø  Сетевая эмуляция: эмуляция модема через TCP/IP, Сетевой туннелинг IPX. Windows-версия поддерживает прямой последовательный порт.

Ø  Имеет собственную DOS-оболочку.

К минусам эмулятора можно отнести то, что, как и все программы-эмуляторы, DOSBox требует существенно более мощный компьютер (особенно процессор), чем эмулируемая система. Кроме того, поддержка защищённого режима всё ещё находится на ранней стадии разработки, поэтому DOS-программы, которые выполняются только в этом режиме, могут работать не так хорошо, как в других эмуляторах, вроде VMware или Virtual PC (они виртуализируют процессор вместо эмуляции, как в DOSBox).

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

Следующим в нашем списке является эмулятор DOSEmu, позволяющий исполнять DOS программы под операционной системой Linux [8]. Особенностью этого эмулятора является возможность использования некоторых возможностей ядра Linux для запуска MS-DOS программ. Тем не менее, это качество нельзя назвать плюсом этой программы, так как ограничивает её переносимость и использование. Например, конфигурирование DOSBox и запуск с помощью него DOS программ происходит совершенно одинаковым образом вне зависимости от того, какая операционная система используется. А это легче, чем, если бы нам приходилось конфигурировать эмулятор под каждую операционную систему отдельно.

К плюсам этого эмулятора можно отнести то, что он позволяет создавать виртуальные DOS диски, а так же настраивать BIOS. Он также позволяет запустить целый ряд MS-DOS приложений с разными приоритетами разделения CPU и памяти.

Ещё один эмулятор - PalmDOSBox, который позволяет исполнять приложения под операционной системой PalmOS [9]. Он обладает теми же плюсами, что и DOSBox, поскольку был получен в результате портирования DOSBox для указанной операционной системы, но, к сожалению, на данный момент он находится в стадии разработки.

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

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

Пользовательский интерфейс

Создание пользовательского интерфейса не настолько хорошо освещено, как разработка программного обеспечения. К сожалению, многим из-за этого кажется, что пользовательский интерфейс «просто должен быть», и это одна из причин, почему на выходе получается так много плохо оформленных программ. А пользовательский интерфейс – это очень большая часть программы, потому что для конечного пользователя из всей программы остаётся именно он [2].

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

Традиционным подходом к созданию пользовательского интерфейса является использование процедурных или объектно-ориентированных языков программирования. Как правило, такие языки имеют библиотеки, облегчающие создание элементов интерфейса, описание алгоритмов расположения элементов,  а также дают возможность чтения и изменения свойств элементов интерфейса и механизм нотификации контролирующих компонентов об изменениях свойств элементов пользовательского интерфейса, обусловленных пользовательским вводом. В качестве примера наиболее распространенных языков программирования, традиционно использующихся при таком подходе, можно привести Java, С++ и Visual Basic. Главным достоинством такого подхода является возможность реализации пользовательского интерфейса со сколь угодно сложным поведением.  Главным недостатком же является небольшая, по сравнению с другими подходами, скорость разработки, а также – большое количество кода на то же количество функциональности интерфейса, что ведет к большему количеству ошибок и увеличению времени их поиска.

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

На данный момент существует несколько распространенных языков, сочетающих в себе декларативный подход к программированию пользовательского интерфейса и возможность реализации гибкой логики связывания модели данных с представлением. Это такие языки, как XUL, MXML и XAML. В основе синтаксиса всех этих языков лежит XML, а способ декларативного описания элементов пользовательского интерфейса аналогичен способу, использующемуся в языке HTML: каждый тег (XML Element) задает некоторый элемент пользовательского интерфейса и способ расположения элементов, содержащихся в нем.

RCPML – это декларативный язык описания пользовательского интерфейса на основе Eclipse SWT [10]. Основными отличиями от других языков XML описания пользовательского интерфейса являются:

Ø  Простая расширяемость любыми пользовательскими элементами управления и тегами посредством OSGi архитектуры Eclipse.

Ø  Поддержка CSS (Каскадных таблиц стилей).

Ø  Поддержка всевозможных скриптовых языков, реализованных на платформе Java.

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

Язык RCPML является проектом с открытым исходным кодом. Проект был создан по причине отсутствия аналогов XUL под платформу Eclipse с поддержкой всех её функций. Для задания логики в языке предусматривается написание внешних или внутренних скриптов на языке JavaScript. Ввиду расширяемости другие языки программирования могут быть добавлены очень легко.

Благодаря возможности использования CSS, RCPML является единственным декларативным языком, который поддерживает каскадные таблицы стилей в среде Eclipse. Возможно разделение наполнения интерфейса данными и их отображение.

В RCPML встроена возможность связывания с произвольными данными. Возможно создание собственных провайдеров данных на основе языка Java. На следующей диаграмме показано связывание XML данных.

Рис. 2. Связывание XML данных

 
 

Ядро RCPML позволяет реализовать любые XML UI языки под платформу Eclipse.

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

Решение задачи

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

Разработанный подход был реализован на платформе Eclipse, что позволяет пользователям системы воспользоваться широким кругом существующих инструментов. Т.е. функциональность MS-DOS приложения может быть использована как для разработки конечного продукта, так и как часть большой системы. Причём разработчики могут использовать готовые средства для работы с XML, веб-приложениями, инструментами для создания редакторов и т.д. Также была добавлена возможность использования декларативного языка описания пользовательских интерфейсов RCPML.

Возможности системы можно продемонстрировать на двух следующих рисунках, представляющих пользовательский интерфейс простого MS-DOS приложения «Калькулятор», а так же пользовательский интерфейс приложения в современной операционной системе, который был написан с помощью разработанной системы и который использует функциональность MS-DOS приложения.

 

Рис. 3. Пример MS-DOS приложения «Калькулятор»

 
 

 

 

Рис. 4. Современный пользовательский интерфейс приложения «Калькулятор»

 
 

 

Кроме того, полученная система была успешно применена к пакету программ Конус, написанному для MS-DOS. На данный момент, ведётся работа по тестированию и документированию системы, однако уже сейчас весь исходный код доступен по адресу: http://code.google.com/p/ekonus.

 

Литература

1.      Трошкин Э., Кладов П. Вторая жизнь DOS-приложений // Компьютерные вести – 2008. – No. 37.

2.      Бабаев, Александр. Новый метод создания логики интерфейса // RSDN Magazine. – 2005. – No. 5.

3.      Головач, В.В. Дизайн пользовательского интерфейса. 2000. – С. 141

4.      Raskin, Jef. Human Interface, The: New Directions for Designing Interactive Systems. Addison Wesley. – 2000. – March. – 256 p.

5.      Спинеллис, Диомидис. Анализ программного кода на примере проектов Open Source. Вильямс, 2004.

6.      Таненбаум, Эндрю. Современные операционные системы. Питер, 2002.

7.      Официальный сайт эмулятора DOSBox. http://www.dosbox.com/

8.      Официальный сайт эмулятора DOSEmu. http://dosemu.sourceforge.net/

9.      Официальный сайт эмулятора PalmDOSBox. http://palmdosbox.sourceforge.net/

10.  Декларативный язык описания пользовательских интерфейсов RCPML. http://www.rcpml.org/

 

moluch.ru

Ядро операционной системы - Стр 3

Совместимость и множественные прикладные среды

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

 

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

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

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

Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Для пользователя, купившего в свое время пакет (например, Lotus 1-2-3) для MS-DOS, важно, чтобы он мог запускать этот полюбившийся ему пакет без каких-либо изменений и на своей новой машине, работающей под управлением, например, Windows NT.

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

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

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

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

Пусть, например, требуется выполнить DOS-программу для IBM PC-совместимого компьютера на компьютере Macintosh. Компьютер Macintosh построен на основе процессора Motorola 680x0, а компьютер IBM PC — на основе процессора Intel 80x86. Процессор Motorola имеет архитектуру (систему команд, состав регистров и т. п.), отличную от архитектуры процессора Intel, поэтому ему непонятен двоичный код DOS-программы, содержащей инструкции этого процессора. Для того чтобы компьютер Macintosh смог интерпретировать машинные инструкции, которые ему изначально непонятны, на нем должно быть установлено специальное программное обеспечение — эмулятор.

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

Это простая, но очень медленная работа, так как одна команда процессора Intel исполняется значительно быстрее, чем эмулирующая его последовательность команд процессора Motorola.

Трансляция библиотек

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

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

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

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

 

Способы реализации прикладных программных сред

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

Во многих версиях ОС UNIX транслятор прикладных сред реализуется в виде обычного приложения. В операционных системах, построенных с использованием микроядерной концепции, таких как, например, Windows NT или Workplace OS, прикладные среды выполняются в виде серверов пользовательского режима. А в OS/2 с ее более простой архитектурой средства организации прикладных сред встроены глубоко в операционную систему.

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

Рис. 3.13. Прикладные программные среды, транслирующие системные вызовы

К сожалению, поведение почти всех функций, составляющих API одной ОС, как правило, существенно отличается от поведения соответствующих функций другой ОС. Например, чтобы функция создания процесса в OS/2 DosExecPgm() полностью соответствовала функции создания процесса forkO в UNIX-подобных системах, ее нужно было бы изменить, чтобы она поддерживала возможность копирования адресного пространства родительского процесса в пространство процесса-потомка. (При нормальном же поведении этой функции память процесса-потомка инициализируется на основе данных нового исполняемого файла.)

В другом варианте реализации множественных прикладных сред операционная система имеет несколько равноправных прикладных программных интерфейсов. В приведенном на рис. 3.14 примере операционная система поддерживает приложения, написанные для OS1, OS2 и OS3. Для этого непосредственно в пространстве ядра системы размещены прикладные программные интерфейсы всех этих ОС: API OS1, API OS2 и API OS3.

В этом варианте функции уровня API обращаются к функциям нижележащего уровня ОС, которые должны поддерживать все три в общем случае несовместимые прикладные среды. В разных ОС по-разному осуществляется управление системным временем, используется разный формат времени дня, на основании собственных алгоритмов разделяется процессорное время и т. д. Функции каждого API реализуются ядром с учетом специфики соответствующей ОС, даже если они имеют аналогичное назначение. Например, как уже было сказано, функция создания процесса работает по-разному для приложения UNIX и приложения OS/2. Аналогично при завершении процесса ядру также необходимо определять, к какой ОС относится данный процесс. Если этот процесс был создан по запросу UNIX-приложения, то в ходе его завершения ядро должно послать родительскому процессу сигнал, как это делается в ОС UNIX. А по завершении процесса OS/2, созданного с параметром EXEC_SYNC, ядро должно отметить, что идентификатор процесса не может быть повторно использован другим процессом OS/2. Для того чтобы ядро могло выбрать нужный вариант реализации системного вызова, каждый процесс должен передавать в ядро набор идентифицирующих характеристик.

Рис. 3.14. Реализация совместимости на основе нескольких равноправных API

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

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

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

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

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

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

Рис. 3.15. Микроядерный подход к реализации множественных прикладных сред

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

Выводы

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

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

  • Ядро, являясь структурным элементом ОС, в свою очередь, может быть логически разложено на следующие слои (начиная с самого нижнего):

  • машинно-зависимые компоненты ОС;

  •  базовые механизмы ядра;

  •  менеджеры ресурсов;

  •  интерфейс системных вызовов.

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

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

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

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

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

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

Задачи и упражнения

1. Какие из приведенных ниже терминов являются синонимами? 

  •  привилегированный режим;

  •   защищенный режим; 

  •  режим супервизора; 

  •  пользовательский режим; 

  •  реальный режим; 

  •  режим ядра

2. Можно ли, анализируя двоичный код программы, сделать вывод о невозможности ее выполнения в пользовательском режиме?

3. В чем состоят отличия в работе процессора в привилегированном и пользовательском режимах? ;

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

5. Какие этапы включает разработка варианта мобильной ОС для новой аппаратной платформы?

6. Опишите порядок взаимодействия приложений с ОС, имеющей микроядерную архитектуру.

7. Какими этапами отличается выполнение системного вызова в микроядерной ОС и ОС с монолитным ядром?

8. Может ли программа, эмулируемая на «чужом» процессоре, выполняться быстрее, чем на «родном»?

31

studfiles.net

Совместимость операционных систем — Мегаобучалка

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

Различают совместимость на двоичном уровне (в котором хранятся приложения в ОС) и совместимость на уровне исходных текстов.

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

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

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

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

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

Более эффективно использование так называемых прикладных программных сред.Сегодня в типичных программах 60…80 % времени тратится на выполнение функций GUI (графического интерфейса пользователя) и других библиотечных вызовов ОС.

Тщательно спроектированная программная прикладная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на своем «родном» коде.

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

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

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

Выводы

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

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

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

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

Вопросы для самопроверки

1. Дайте определение операционной системы.

2. Каковы функции операционная система предоставляет для пользователя?

3. Каковы функции операционная система предоставляет для прикладного программиста?

4. Какие задачи решает операционная система в отношении аппаратуры вычислительной системы?

5. Что такое API?

6. В чем суть мультипрограммирования?

7. Какие задачи операционной системы относятся к работе подсистемы управления процессами?

8. Какие задачи операционной системы относятся к работе подсистемы управления памятью?

9. Какие задачи операционной системы относятся к работе подсистемы управления файлами и внешними устройствами?

10. Какие задачи операционной системы относятся к работе подсистемы защиты данных и администрирования?

11. Дайте определение понятия файл и каталог?

12. Дайте определение сетевой операционной системы

13. Какие операционные системы называют распределенными?

14. Какие функциональные компоненты входят в состав сетевой операционной системы?

15. Что называется сетевой службой?

16. Как могут быть реализованы сетевые службы в одноранговой сети?

17. Как реализуются сетевые службы в сети с выделенным сервером?

18. В чем суть многослойного подхода к построению операционной системы?

19. Зачем нужен привилигированный режим работы процессора?

20. Каковы особенности функционирования ядра операционной системы?

21. Какие слои обычно выделяют при построении ядра операционной системы? Их назначение?

22. Каковы особенности функционирования вспомогательных модулей операционной системы?

23. Какие задачи решают средства аппаратой поддержки операционной системы?

24. Какие особенности функционирования менеджеров ресурсов в операционной системе с микроядерной архитектурой?

25. Каковы достоинства и недостатки микроядерной архитектуры операционной системы?

26. В чем заключается совместимость операционных систем?

27. В чем суть механизма эмуляции работы операционной системы?

megaobuchalka.ru

Ответы на все вопросы (все модули) по предмету "Операционные системы"

Ответы на все вопросы (все модули, для контрольного тестирования) по предмету "Операционные системы"

Ответы на 1 модуль (ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ) по предмету "Операционные системы"

1) Как называется псевдофайл, который используется для связи двух процессов?канал

2) Какие дисциплины диспетчеризации не относятся к бесприоритетным?адаптивное обслуживание

3) На каком языке программирования написаны операционные системы UNIX и MINIX?на языке программирования С

4) Что из перечисленного не относится к группам системного программного обеспечения?системы управления программными средами

5) Каково значение счетчика count, если системный вызов не может быть выполнен?−1

6) К какому виду ресурсов относятся файлы?к информационным ресурсам

7) Как называются специальные системные программы, с помощью которых можно обслуживать как саму ОС, так всю вычислительную систему?утилиты

8) Какая операционная система доминировала на рабочих станциях и сетевых серверах в четвертом поколении?UNIX

9) Что из перечисленного не относится к внутренним прерываниям?прерывания от таймера

10) Что из перечисленного не относится к видам специальных файлов?табличные специальные файлы

11) Кем был изобретен первый настоящий цифровой компьютер?Чарльзом Бэббиджем

12) Как называется суммарное время нахождения процесса в очереди готовых к выполнению процессов?время ожидания

13) С выпуска какой компьютерной машины начался феноменальный рост мини-компьютеров?PDP-1

14) Что не относится к видам повторно используемых программных модулей?нереентерабельные

15) От чего не зависит виртуальное адресное пространство?от объема реальной физической памяти, установленной в компьютере

16) Изобретение и применение чего радикально изменило картину в компьютерной области?транзисторов

17) Что из перечисленного не относится к основным состояниям процесса?состояние блокировки

18) Какие ресурсы операционных систем существуют?разделяемые и неделимые

19) Как называется механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые ситуации, возникающие при работе процессора?прерывание

20) Что из перечисленного не относится к назначению операционной системы?изменение встроенных в систему возможностей

21) Как называется собственное адресное пространство, из которого состоит приостановленный процесс?образ памяти

22) Какая операционная система представляется пользователям традиционной однопроцессорной системой в четвертом поколении?распределенная операционная система

23) Для чего использовались компьютеры второго поколения?для научных и технических вычислений

24) Каково назначение системного вызова fork?создает дочерний процесс, идентичный родительскому

25) Для чего используются оперативные системы специального назначения?для переносимых компьютеров и встроенных систем, для организации и ведения баз данных и для решения задач реального времени

Ответы на 2 модуль (УПРАВЛЕНИЕ ВВОДОМ / ВЫВОДОМ И ФАЙЛОВЫЕ СИСТЕМЫ) по предмету "Операционные системы"

1) Что из перечисленного не относится к типам разделов, на которые разбит диск?блочный

2) Как называется условие взаимоблокировки, при котором процессы, в данный момент удерживающие полученные ранее ресурсы, вправе запрашивать новые ресурсы?условие удержания и ожидания

3) Чем называется виртуальное устройство?спулингом

4) Какова функция драйверов устройства?установка регистров устройств, завершение операции ввода/вывода

5) Что из перечисленного не относится к основным компонентам файловой системы s5?системный блок

6) Каково максимальное число первичных разделов диска?4

7) Какая особенность у телетайпа как категории терминала с интерфейсом RS-232?символы, посланные компьютером, печатаются на бумаге

8) Какой компонент файловой системы s5 содержит информацию о файле?массив индексных дескрипторов

9) Чем осуществляется обмен информацией между ОЗУ и дисками?секторами

10) Каков метод предотвращения взаимоблокировок при условии взаимного исключения?организовать подкачку данных

11) Чем может быть вызвана временная ошибка контрольной суммы в дисковом накопителе?пылью, попавшей на головку

12) Какая операция терминалов проще?ввод

13) Какова последовательность событий, необходимых для использования ресурса?запрос ресурса - использование ресурса - возврат ресурса

14) Для чего нужны часы в компьютере?для нормального функционирования любой системы с разделением времени, для определения текущего времени и для того, чтобы предотвратить монополизацию процесса одним процессом

15) Каковы большинство операций ввода/вывода на физическом уровне?асинхронные

16) К какой области логического диска в системе FAT относят компонент загрузочную запись?к системной области

17) С помощью каких «координат» не определяется физический адрес сектора на диске?номер строки

18) Что из перечисленного не относится к основным задачам супервизора?обеспечение эффективного управления устройствами ввода/вывода

19) Каковы категории терминалов в соответствии взаимодействия операционной системы с ним?отображаемые в память терминалы, терминалы, подключаемые через последовательную линию передачи данных стандарта RS-232 и терминалы, подключаемые через сеть

20) Как называется электронный компонент устройства ввода/вывода?контроллер устройства

21) Что из перечисленного не относится к компонентам часов компьютера?электронный блок управления

22) Как называется время, через которое нужный сектор пройдет под головкой в жестком диске?задержка вращения

23) Какая категория терминала с интерфейсом RS-232 понимает управляющие последовательности символов, называемых ESC-последовательностями?«умный» терминал

24) Какой уровень программного обеспечения вода/вывода является самым нижним?обработчики прерываний

25) Как называются устройства, хранящие информацию в виде адресуемых блоков фиксированного размера?блочные

Ответы на 3 модуль (УПРАВЛЕНИЕ ВВОДОМ / ВЫВОДОМ И ФАЙЛОВЫЕ СИСТЕМЫ) по предмету "Операционные системы"

1) Какая задача интерфейса операционной системы включает функции запуска, приостановки и снятие задачи с выполнения?управление процессами

2) Как называется состояние процесса, когда процесс временно приостановлен, чтобы позволить выполняться другому процессу?готовый к работе

3) Какой переход происходит, если планировщик решил, что пора предоставить процессор следующему процессу?переход 2

4) Как называется минимальная стержневая часть операционной системы, служащая основой модульных и переносимых расширений?микроядро

5) Что из перечисленного не относится к характеристикам операционных систем реального времени?минимальное время выполнения каждого системного вызова

6) Какой уровень операционной системы THE управляет связью между консолью оператора и процессами?2

7) Согласно какому принципу построения операционных систем операционная система должна относительно легко переноситься с процессора одного типа на процессор другого типа; с аппаратной платформы (архитектуры вычислительной системы) одного типа на аппаратную платформу другого типа?согласно принципу модульности

8) Какие свойства операционной системы отражает принцип модульности?технологические и эксплуатационные свойства

9) Какое условие не относится к необходимым для исключения состояний состязания?два процесса должны одновременно находится в критических областях

10) Как называются потоки в современных операционных системах?нитями

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

12) Какое название имеет сердце системы VM/370?монитор виртуальной машины

13) Сколько уровней включает операционная система THE?6

14) Какой принцип построения операционных систем предполагает возможность настраивать системную супервизорную часть (ядро и основные компоненты), исходя из конкретной конфигурации вычислительного комплекса и класса решаемых задач?принцип генерируемости

15) Какое поле относится к модулю из состава операционной системы, отвечающее за управление памятью в MINIX?статус завершения

16) Каковы варианты реализации API?на уровне модулей операционной системы, на уровне системы программирования и на уровне внешней библиотеки процедур и функций

17) Кто был первым разработчиком программного решения проблемы взаимного исключения?Деккер

18) Что не относится к основным требованиям к операционной системе реального времени?использование единообразного интерфейса

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

20) Какие из перечисленных сервисов не обеспечивает микроядро?управление оперативной памятью

21) В операционных системах какого типа реализован принцип генерируемости?UNIX

22) Операционные системы какого времени различают?«мягкого» реального времени и «жесткого» реального времени

23) Что отвечает за обработку прерываний и детали, связанной с остановкой и запуском процессов?планировщик

24) Какой принцип построения операционных систем дает возможность проведения одной и той же работы различными способами?принцип функциональной избыточности

25) Что не относится к задачам интерфейса операционной системы?управление системой

Ответы на 4 модуль (СЕМЕЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ) по предмету "Операционные системы"

1) Какой уровень сетевых функций в модели OSI представляет собой окно для доступа прикладных процессов к сетевым услугам?прикладной

2) Из какой части не состоит любой командный язык семейства shell?внешних команд

3) Какой базой данных является реестр?древовидной иерархической

4) Что из перечисленного не относится к основным компонентам ключа — узла иерархического дерева?время первой записи

5) Какое средство безопасности регулирует доступ пользователя к каталогам и файлам?доверительные права

6) Как именуется редиректор в зависимости от сетевого программного обеспечения?оболочкой или запросчиком

7) Как называется файл с дескриптором 1?файлом стандартного вывода

8) Какие из перечисленных характеристик не относятся к характеристикам процесса режима ядра?выполняется с меньшим приоритетом, чем процессы режима пользователя

9) Какая сетевая служба служит для обмена сообщениями сети?Messenger

10) Какие ограничения существуют после регистрации пользователя в системе UNIX?пользователь не может изменить свое регистрационное имя, но пользователь может изменить свой пароль

11) Как называется модель, если сеть состоит из нескольких доменов, один из которых выделен в качестве главного и содержит базу данных учетных записей?модель с одним главным доменом

12) Что из перечисленного не относится к основным элементам диска?i-список

13) Как называется механизм, когда объем ОЗУ будет исчерпан, часть содержимого физической памяти переносится на жесткий диск?подкачкой

14) Какие компоненты включает в себя виртуальная машина?карту памяти, контекст выполнения и набор ресурсов, доступных приложению

15) Что из перечисленного относится к файлу стандартного ввода?клавиатура

16) Как называется простейшая форма межпроцессового взаимодействия, которое используется для передачи от одного процесса другому?сигнал

17) Распределением каких аппаратных ресурсов управляет операционная система?память, процессорное время, дисковое пространство, внешние устройства

18) Как называется основная единица, которой операционная система выделяет процессное время, и минимальный квант кода, который может быть запланирован для выполнения?поток

19) Какая операционная система является основой для серверных приложений, позволяющая реализовать стандартные функции серверов файлов и печати?Windows NT Server

20) Какое утверждение является верным?Linux поддерживает большинство свойств, присущих другим реализациям UNIX

21) Что из перечисленного должно быть совместимым?операционная система сервера и клиента

22) Какой элемент модифицируется при создании файла?каталог

23) Что из перечисленного не относится к типам права доступа к файлу?копирование

24) Какой уровень запускает приложение с уровнем приоритета 7?обычный уровень

25) Что из перечисленного не относится к основным логическим сегментам образа памяти?сегмент цилиндра

Loading ... Loading ...

mtianswer.ru

Свойства информационных технологий

Поиск Лекций

1. Целесообразность — состоит в повышении эффективности про­изводства за счет внедрения современных средств вычислительной тех­ники, распределенных баз данных, различных вычислительных сетей, что позволяет обеспечить эффективную циркуляцию и переработку ин­формации.

2. Наличие компонентов и структуры. В состав информационной технологии должны входить:

Структура конкретной автоматизированной информационной тех­нологии для своей реализации предполагает наличие трех основных взаимосвязанных составляющих:

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

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

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

Функциональные компоненты —это конкретное содержание про­цессов циркуляции и обработки данных (информационная база ИТ)

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

Понятие платформы

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

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

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

Аппаратная платформа (hardware) это совокупность совместимых аппаратных решений с ориентирован­ной на них операционной системой

Принцип «открытой архитектуры» — это степень открытости организации конфигурации ПК, которая позволяет выполнять модернизацию компьютера, включать в него дополнительные новые совместимые устройства._

Варианты решения проблемы совместимости компьютерных платформ

АППАРАТНЫЕ РЕШЕНИЯ - специальные платы, позволяющие установить аппаратное обеспечение другой платформы

ПРОГРАММНЫЕ РЕШЕНИЯ - специальные программы-эмуляторы, позволяющие запустить программное обеспечение, разработанное для ПК другой платформы эмуляторы-исполнители эмуляторы аппаратного обеспечения эмуляторы операционной системы

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

Существует несколько видов эмуляторов:

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

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

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

• эмуляторы операционных систем позволяют воспроизвести на ПК операционную систему, которая несовместима с данной аппаратной платформой. Примером такого эмулятора является эмулятор операционной системы Windows, который позволяет на компьютере Macintosh работать с операционной системой, написанной для IBM-совместимых ПК. Работают такие программы несколько быстрее, чем эмуляторы аппаратного обеспечения, но у них есть много ограничений. Например, пользователь не может сам выбрать операционную систему.

Операционная система —совокупность программ для управления вычислительным процессом персонального компьютера или вычислительной сети.

Выбор той или иной платформы и конфигурации определяется рядом критериев. К ним относятся:

1. Отношение стоимость-производительность.

2. Надежность и отказоустойчивость.

3. Масштабируемость (означает способность системы увеличивать свою производительность при добавлении ресурсов).

poisk-ru.ru


 

..:::Новинки:::..

Windows Commander 5.11 Свежая версия.

Новая версия
IrfanView 3.75 (рус)

Обновление текстового редактора TextEd, уже 1.75a

System mechanic 3.7f
Новая версия

Обновление плагинов для WC, смотрим :-)

Весь Winamp
Посетите новый сайт.

WinRaR 3.00
Релиз уже здесь

PowerDesk 4.0 free
Просто - напросто сильный upgrade проводника.

..:::Счетчики:::..