В чем состоит принцип программной совместимости

Совместимость (информатика)

Аппаратная (техническая) совместимость (англ. hardware compatibility) — способность одного устройства работать с узлами другого устройства. Включает в себя электромагнитную совместимость.

Информационная совместимость (англ. data compatibility) — способность двух или более систем адекватно воспринимать одинаково представленные данные.

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

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

Связанные понятия

Упоминания в литературе

Связанные понятия (продолжение)

О программном обеспечении рассказывает другая статья.Переносимое приложение (также портативное, автономное, и — неточно, в качестве кальки — портированное; англ. portable application, portable app) — программное обеспечение, которое для своего запуска не требует процедуры установки и может полностью храниться на съёмных носителях информации, что позволяет использовать данное ПО на многих компьютерах. Переносимое приложение может быть настроено так, чтобы считывать свои конфигурационные настройки.

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

Источник

Принцип модульности

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

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

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

Мы говорим о системных программных модулях (они являются программными ресурсами и могут быть распределены между выполняющимися процессами).

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

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

Многократно используемые программные модули делятся на

— повторно входимые и

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

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

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

Противоположны им реентерабельные модули ( reenterable – допускающий повторное обращение).

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

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

Чаще используется динамический метод.

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

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

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

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

Заметим, что повторно входимые модули встречаются чаще, чем реентерабельные.

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

Принцип функциональной избирательности

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

При формировании состава ядра требуется учитывать два противоречивых требования.

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

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

В состав ядра, как правило, входят модули

— по управлению системой прерываний,

— средства по переводу программ из состояния счета в состояние ожидания, готовности и об ратно,

— средства по распределению таких основных ресурсов, как оперативная память и процессор.

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

Принцип генерируемо сти ОС

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

Эта процедура проводится редко, перед достаточно протяженным периодом эксплуатации ОС.

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

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

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

Принцип функциональной избыточности

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

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

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

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

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

Чаще виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представле нии выступают с новыми или улучшенными характеристиками, часто упрощаю щими работу с системой. Характеристики могут быть произвольными, но чаще всего пользователи желают иметь собственную «идеальную» по архитектурным характеристикам машину в следующем составе:

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

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

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

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

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

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

Принцип независимости программ от внешних устройств

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

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

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

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

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

Гораздо сложнее достичь двоичной совместимости между процессорами, осно ванными на разных архитектурах. Для того чтобы один компьютер выполнял про граммы другого (например, программу для ПК типа IBM PC желательно выпол нить на ПК типа Macintosh фирмы Apple), этот компьютер должен работать с машинными командами, которые ему изначально непонятны. В таком случае процессор типа 680×0 (или PowerPC) на Мае должен исполнять двоичный код, предназначенный для процессора 180×86. Процессор 80×86 имеет свои собственные дешифратор команд, регистры и внутреннюю архитектуру. Процессор 680×0 не понимает двоичный код 80×86, поэтому он должен выбрать каждую команду, декодировать ее, чтобы определить, для чего она предназначена, а затем выпол нить эквивалентную подпрограмму, написанную для 680×0. Так как к тому же у 680×0 нет в точности таких же регистров, флагов и внутреннего арифметико- логического устройства, как в 80×86, он должен имитировать все эти элементы с использованием своих регистров или памяти. И он должен тщательно воспро изводить результаты каждой команды, что требует специально написанных под программ для 680×0, гарантирующих, что состояние эмулируемых регистров и флагов после выполнения каждой команды будет в точности таким же, как и на реальном 80×86. Выходом в таких случаях является использование так называемых прикладных сред или эмуляторов. Учитывая, что основную часть программы, как правило, составляют вызовы библиотечных функций, прикладная среда имитирует библиотечные функции целиком, используя заранее написанную биб лиотеку функций аналогичного назначения, а остальные команды эмулирует каждую по отдельности.

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

Принцип открытой и наращиваемой ОС

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

Этот принцип иногда трактуют как расширяемость системы.

Принцип мобильности (переносимости)

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

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

Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.

Принцип обеспечения безопасности вычислений

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

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

Источник

Программная совместимость

Совместимость (compatibility) — способность аппаратных или программных средств работать с компьютерной системой. Аппаратная (техническая) совместимость ( hardware (equipment) compatibility) — способность одного компьютера работать с узлами или устройствами, входящими в состав другого компьютера. Составной частью аппаратной совместимости является электромагнитная совместимость (ЭМС) (ElectroMagnetic Compatibility, EMC) — способность работающих (в том числе, автономно друг от друга) технических средств не создавать взаимных электромагнитных помех, а также функционировать при наличии внешних электромагнитных полей. Также ЭМС называют ограничение собственного электромагнитного излучения устройств до уровня, не влияющего на работу других устройств.

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

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

. Совместимость компьютеров определяют, как правило, по отношению к компьютерам IBM AT. Как уже было сказано, первые ПК класса IBM AT создавались из уже широко представленных на компьютерном рынке элементов. Любой инженер, имеющий представление о структуре вычислительной системы, может без труда из таких «покупных» деталей собрать свой собственный ПК, подобный IBM AT. Единственным запатентованным фирмой IBM компонентом является набор из двух микросхем, названный BIOS (базовая система ввода- вывода). Именно записанный в этих схемах код лежит в основе совместимости.

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

программную совместимость с компьютерами фирмы IBM.

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

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

Совместимость внутри одного пакета программ. Иногда случается так, что программы одного и того же программного обеспечения не могут вместе «сосуществовать» независимо от типа компьютера. Наиболее часто такие «конфликты» возникают между резидентными программами. Такая несовместимость не оказывает влияния на работу самого ПК, нарушается лишь выполнение программ.

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

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

Следует заметить, что два компьютера, IBM AT и IBM ХТ286, имеют наиболее высокую аппаратную и программную совместимости. Поэтому именно их приняли за стандарт, относительно которого определяется совместимость. Так, компьютеры типа IBM PS/2 Model 50 и 60, имея программное обеспечение, совместимое с IBM AT, физически с ними не­совместимы. Это обусловлено принципиально новой аппаратной частью систем IBM PS/2. Их совместимость с ПК семейства AT возрастает по мере разработки новых стандартов на аппаратуру PS/2 и создания большего числа модулей расширения для них.

Совместимость аналогов и так называемых совместимых компьютеров с «фирменными» ПК постоянно повышается. В отличие от аналогов IBM-совместимые не являются полностью взаимозаменяемыми с самими компьютерами IBM AT. Отсюда и низкая оценка их аппаратной совместимости.

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

Программная совместимость ПК обеспечивается в первую очередь применением в них одной и той же операционной сис­темы или однотипных операционных систем.

Стремление добиться совместимости компьютеров, выпускае­мых разными фирмами в разных странах, привело к появлению в мире особого класса ПК, так называемых «IBM-совместимых».

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

«IBM-совместимыми» являются, в частности, отечественные компьютеры ЕС-1840, ЕС-1841, ЕС-1842, Искра-1030, Нейрон, болгарский «Правец-16», польские «Мазовия-1016» и «Мазовия- 2016» и др.

В составе ЦВМ в соответствии с определением вычислитель­ной машины выделяют ряд устройств.

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

В соответствии с принципами построения и действия ЦВМ в состав любой ЦВМ входят.

Арифметико-логическое устройство (АЛУ) — функциональ­ная часть ЦВМ, предназначенная для выполнения операций преобразования (обработки) величин: арифметических, логиче­ских (поразрядных), сдвига.

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

Запоминающее устройство (ЗУ) — функциональная часть ЦВМ, предназначенная для записи, хранения и выдачи инфор­мации, представленной цифровыми кодами.

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

Дата добавления: 2016-03-20 ; просмотров: 11293 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *