~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 39A68E7710061AFF74368C30572E9A82__1711407600 ✰
Заголовок документа оригинал.:
✰ Software incompatibility - Wikipedia ✰
Заголовок документа перевод.:
✰ Несовместимость программного обеспечения — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Software_incompatibility ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/39/82/39a68e7710061aff74368c30572e9a82.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/39/82/39a68e7710061aff74368c30572e9a82__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 08:57:04 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 26 March 2024, at 02:00 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Несовместимость программного обеспечения — Википедия Jump to content

Несовместимость программного обеспечения

Из Википедии, бесплатной энциклопедии

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

Примеры [ править ]

Тупики [ править ]

Рассмотрим последовательные программы вида:

Запросить  ресурс  А 
  Запросить ресурс Б 
  Выполните действие, используя A и B. 
  Освободить ресурс Б 
  Освободить ресурс А 
 

Конкретная программа может использовать принтер (ресурс A) и файл (ресурс B) для печати файла.

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

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

Запросить ресурс Б
 Запросить ресурс А
 Выполните действие, используя A и B.
 Освободить ресурс А
 Освободить ресурс Б
 

Ресурсы A и B такие же, как и в предыдущем примере, а не просто фиктивные переменные , так как в остальном программы идентичны.

Как и прежде, если таких программ будет несколько, Q1, Q2, Q3, которые запускаются одновременно, используя ресурсы, как и раньше, проблем не возникнет.

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

P: Запросить ресурс A
 Вопрос: Запросить ресурс Б
 Вопрос: Запросить ресурс A (заблокирован P)
 P: Запрос ресурса B (заблокирован Q)
 ...
 

Теперь ни P, ни Q не могут продолжить 1 .

Это один из примеров, когда программы могут демонстрировать несовместимость.

Несовместимость интерфейса [ править ]

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

Рассмотрим следующий пример:

Компонент P вызывает компонент Q с параметрами x и y.  В этом примере y может быть целым числом.
 
 Q возвращает f(x), который является желаемым и никогда не равен нулю, и игнорирует y.
 

Вариант Q, Q' имеет аналогичное поведение со следующими отличиями:

 если y = 100, то Q' не завершается.
 

Если P никогда не вызывает Q со значением y, равным 100, то использование Q' вместо этого является совместимым вычислением . Однако если P вызывает Q со значением y, равным 100, то использование вместо этого Q' приведет к непрерывным вычислениям.

Если далее предположить, что f(x) имеет числовое значение, то компонент Q'' определяется как:

Q'' ведет себя как Q, за исключением того, что
  если y = 100, то Q'' не завершается
  если y = 101, то Q'' возвращает 0,9 * f(x)
  если y = 102, то Q'' возвращает случайное значение
  если y = 103, то Q'' возвращает 0.
 

может вызвать проблемное поведение. Если P теперь вызовет Q'' с = 101, то результаты вычислений будут неверными, но это не может привести к сбою программы. Если P вызывает Q'' с y = 102, тогда результаты непредсказуемы и может возникнуть сбой , возможно, из-за деления на ноль или других ошибок, таких как арифметическое переполнение . Если P вызывает Q'' с y= 103, то в случае, если P использует результат в операции деления, может произойти сбой деления на ноль.

Этот пример показывает, как одна программа P1 может быть всегда совместима с другой программой Q1, но могут быть построены другие программы Q1' и Q1'', такие, что P1 и Q1'' иногда несовместимы, а P1 и Q1'' несовместимы всегда.

Несовместимость производительности [ править ]

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

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

См. также [ править ]

Ссылки [ править ]

  • К.М. Кришна, К.Г. Шин, Системы реального времени, McGraw-Hill, 1997 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 39A68E7710061AFF74368C30572E9A82__1711407600
URL1:https://en.wikipedia.org/wiki/Software_incompatibility
Заголовок, (Title) документа по адресу, URL1:
Software incompatibility - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)