Совместимость процессора и операционной системы

Совместимость процессора и операционной системы

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

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

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

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

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

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

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

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

Читайте также:  Как в экселе закрепить несколько столбцов

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

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

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

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

Читайте также:  Как настроить языковую панель на компьютере

Статьи к прочтению:

Лекция 3: Классификация операционных систем

Похожие статьи:

Накопители на гибких магнитных дисках — Предназначены для хранения небольших объемов информации — Это носители произвольного (прямого) доступа к…

Windows 7 — без сомнений одна из самых удачных операционных систем Microsoft, о чём говорит парк её пользователей, не желающих переходить ни на Windows 8.1, ни на активно рекламируемую и продвигаемую Windows 10. Не помогают никакие уговоры и даже активная политика отказа от поддержки аппаратного обеспечения в среде Windows 7. Например, Intel откажется от официальной поддержки архитектур Skylake и Kaby Lake в Windows 7 с 17 июля 2018 года. И это полностью соответствует официальной политике Microsoft.

К счастью, Advanced Micro Devices придерживается стратегии наибольшей совместимости и старается охватить как можно больше потенциальных пользователей, благо предложить им компания вскоре сможет кое-что серьёзное — сравнительно недорогие восьмиядерные процессоры Ryzen. Как сообщают зарубежные источники, AMD не собирается отказываться от поддержки Windows 7 и работает над созданием драйверов для этой операционной системы. Данные носят официальный характер — они были разглашены самой AMD на одном из партнёрских мероприятий.

Как отнесётся к этому шагу Microsoft, неизвестно — уже было сказано, что компания старается выдавить пользователей из сред устаревших по её мнению версий Windows в пользу исключительно Windows 10. Но Microsoft не имеет права запретить AMD разработку драйверов, а значит, все функции и наборы инструкций будут доступны будущим владельцам Ryzen, предпочитающим оставаться в среде Windows 7. Такой ход со стороны Advanced Micro Devices можно лишь приветствовать, тем более что агрессивное продвижение Windows 10 и сама ОС нравятся далеко не всем.

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

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

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

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

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

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

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

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

Читайте также:  Как убрать кнопку войти в windows 10

Тщательно спроектированная программная прикладная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки 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. В чем суть механизма эмуляции работы операционной системы?

Ссылка на основную публикацию
Ярославский вокзал выход к поездам дальнего следования
Телефоны Сервисы Информационно-справочные услуги Справочное бюро выдает платные/бесплатные устные справки пользователям услуг железнодорожного транспорта только при личной явке в круглосуточном...
Что такое медиана числового ряда
Среднее арифметическое ряда чисел – это сумма данных чисел, поделенная на количество слагаемых. Среднее арифметическое называют средним значением числового ряда....
Что такое номер ssid
Компьютеры и телефоны уже давно прочно вошли в нашу жизнь. Помимо смартфонов и ноутбуков, существуют еще десятки устройств, которые имеют...
Совместимость процессора и операционной системы
Рассмотрев основы построения и функционирования ОС, можно сделать вывод, что конкретные архитектурные и функциональные особенности любой ОС непосредственно должны касаться...
Adblock detector