В параллельные вычисления, живучесть относится к набору свойств параллельных систем, которые требуют от системы прогресса, несмотря на то, что ее одновременно выполняемые компоненты («процессы») может потребоваться «по очереди» в критических разделах, частях программы, которые не могут одновременно выполняться несколькими процессами. Гарантии живучести являются важными свойствами операционных систем и распределенных систем.
В более общем плане свойство живучести утверждает, что «со временем произойдет что-то хорошее», в отличие от свойства безопасности, которое гласит, что «что-то плохое случается не происходит «. Если свойство безопасности нарушено, всегда существует конечное выполнение, которое показывает нарушение (возникновение «плохого» события), но свойство живучести не может быть нарушено при конечном выполнении распределенной системы, потому что «хорошее» событие все еще может произойти в немного позже. Конечная согласованность — это пример свойства живучести. Все свойства линейного времени могут быть выражены как пересечение свойств безопасности и живучести. В то время как нарушение данного свойства безопасности допускает наличие ограниченного свидетеля, нарушение свойств живучести может быть труднее установить, поскольку конечный свидетель не может быть использован в качестве доказательства.
РЕН ТВ — прямой эфир онлайн ||
Формы жизнеспособности
Признаны несколько форм жизнеспособности. Следующие из них определены в терминах многопроцессорной системы, в которой есть критическая секция, защищенная некоторым устройством взаимного исключения (мьютекс). Предполагается, что все процессы правильно используют мьютекс; прогресс определяется как завершение выполнения критического раздела.
- Свобода от тупика — это форма жизни, хотя и слабая. Рассмотрим систему с несколькими процессами и одним критическим разделом, защищенным каким-то устройством взаимного исключения. О такой системе говорят, что она свободна от тупиков, если, когда группа процессов конкурирует за доступ к критическому разделу в какой-то момент времени, какой-то процесс в конечном итоге прогрессирует в более поздний момент времени. Этот процесс не обязательно должен принадлежать к вышеупомянутой группе; он мог получить доступ раньше или даже позже.
- Свобода от голода (или «конечный обход») является более надежной гарантией жизнеспособности, чем свобода от тупиков. В нем говорится, что все процессы, соперничающие за доступ к критической области, в конечном итоге достигают прогресса. Любая система, свободная от голодания, также свободна от тупиков.
- Еще более строгим является требование ограниченного обхода. Это означает, что если n процессов конкурируют за доступ к критической области, то каждый процесс прогрессирует после того, как его обойдут не более f (n) раз другие процессы для некоторой функции f.
Жизнеспособность и безопасность
Согласно Б. Альперну, отсутствие тупиков — это свойство безопасности. Альперн предполагает, что состояния системы могут быть разделены между состояниями, в которых имеется тупик (красные состояния), и состояниями, в которых тупик не существует (зеленые состояния). Свойство, которое утверждает, что система всегда остается в зеленом состоянии (или, альтернативно, что система никогда не достигает красного состояния), является свойством безопасности. Однако, если невозможно различить зеленое и красное состояния, свойство, которое говорит о том, что в конечном итоге один из процессов в системе будет развиваться, является свойством жизнеспособности.
5.2 Свойства безопасности и живучести
Формальное различие
Различие между безопасностью и живучестью можно формально установить с помощью предиката P (t) , где t относится ко времени. Пусть t 0 > будет моментом времени, начиная с которого оцениваются свойства живучести и безопасности. В приведенных ниже примерах пусть x будет процессом (или потоком), для которого нужно гарантировать отсутствие тупиков.
Пример: P (t) означает, что « x находится в состоянии тупика в момент времени t ».
Живучесть: ∀ t 1 ≥ t 0, ∃ t ≥ t 1, t
Ограниченный объезд и ограниченный обгон
Также стоит отметить, что различие между свойством живучести ограниченного объезда и свойством безопасности ограниченного обгона едва уловимо. Свобода голода вместе с ограниченным обгоном подразумевает ограниченный объезд (т.е. хотя ограниченный объезд классифицируется как свойство живучести, на самом деле он представляет собой сочетание свойства живучести и свойства безопасности).
Ограниченный обгон означает, что после того, как помеченный процесс заявляет о своей заинтересованности во входе в критическую секцию, каждый другой процесс будет обгонять помеченный процесс ограниченное количество раз, прежде чем помеченный процесс войдет в критическую секцию. Обратите внимание, что если отмеченному процессу никогда не предоставляется разрешение на вход в его критическую секцию, ограниченный обгон все еще может сохраняться. Следовательно, ограниченный обгон сам по себе не является свойством живучести. В системе с взаимоблокировкой ограниченный обгон выполняется тривиально, поскольку ни один процесс не обгоняет другой, а ограниченный обход — нет.
См. Также
Источник: alphapedia.ru
Сегментирование.
Модули, к-ые являются очень большими (от 100 до 200 вып-ых операции), могут быть разбиты на сегменты. Сегмент– логич или физич часть модуля.Логический– подфункции функции модуля.
Физический – ограничивается числом строк исходного текста, к-ый помещается на одной странице печатающего текста (50-60 строк).
Сегментирование– способ разумной организации программы.Основная тонкость заключ в том, что логика управления концентрируется в сегментах более высокого уровня, менее важные детали переносятся в сегменты более низкого уровня.
Этот подход упрощает программирование и тестирование модулей, облегчает чтение и понимание программы, упрощает внесение изменений, к-ые могут потребоваться в будущем. Каждый сегмент должен быть простой программой и возвращать управление своему «старшему» сегменту.
Методы тестирования и отладки программ.
Если тестирование программы проводится интуитивно по принципу и вмешательству в работу программиста программы без какого-либо четкого плана испытаний программы, то этот процесс можно назвать искусством.
Если же тестированию предшествует тщательный подбор данных для контр программы и заблаговременный выбор элементов программы, а сам этот процесс проводится аккуратно, то тестирование становится наукой.
Отладка и тестирование– это два не похожих друг на друга этапа.
В первом случаепроисходит устранение синтаксических и явных ошибок кодирования.
Во втором случаеимеют дело с программой, не содержащей отмеченных ошибок, но к-ая выдает какие-то правильные рез-ты.
Осн цель выделения отладки и тестирования как отд этапов создания программы заключ в том, чтобы обратить внимание на обязат-ть и первой, и второй стадий и на необходимость спец планирования временных затрат по каждой из этих стадий в отдельности. В программе могут остаться логические ошибки (ручная проверка машинных результатов очень полезна).
Проблема живучести программы
Программа должна быть написана программистом. Последнее требование обычно связано с понятием независимости к некоторым данным. Живучесть любой программы со временем возрастает, т.к. выявляются ошибки и они устраняются. Живучая программа– это такая программа, к-ая продолжает сохранять свою работоспособность, несмотря на введенные данные.
— наиболее важный принцип, относящийся к тестированию программы, состоит в написании программы
— если ответ на вопрос о способе тестирования не ясен, то программа должна быть переписана либо разбита на модули
— проектировать программу следует т.о., чтобы процесс разработки легко контролировался и осн элементами явл-сь простота и ясность программы. Это позв-т осущ-ть проверку программы.
— на первых порах загрузочными модулями польз-ся не следует
— ЯП должен выбираться в соотв-ии с решаемой задачей. Учет этого фактора, как и выбор алгоритма облегчает процесс тестирования программы
— необходимо применять миним кол-во контр примеров, т.е. здесь отдается предпочтение разумному тестированию программы.
Источник: studfile.net
Что такое живучесть программы
При системном программировании 1-го рода программы пишутся на языке Ассемблера (а иногда и на языке машины). Это связано с требованием особенно высокого качества программ. Однако при этом срок жизни МО ЭВМ не больше срока жизни самой ЭВМ (с отмиранием данной модели машины отмирают и программы МО ЭВМ). При системном программировании 2-го рода выдвигается требование живучести программ, так как любая система планирования, управления или учета разрабатывается для определенного потребителя, который стремится к тому, чтобы она жила независимо от срока жизни конкретной машины, на которой решается данный комплекс задач. При отмирании данной машины комплекс задач должен быть переведен на новую машину с наименьшими затратами труда, т. е. с наименьшим количеством переделок. Следовательно, большинство программ должно быть написано на таком языке высокого уровня, который с большой вероятностью появится в следующей модели или в следующем поколении ЭВМ. [c.18]
Язык программирования. Весьма важным вопросом при разработке программ является вопрос о возможности применения одного из имеющихся алгоритмических языков с готовым транслятором (например, АЛГОЛ, ФОРТРАН, PL/I). Если суммарное время решения задач сравнительно невелико, то целесообразность применения одного из таких языков высокого уровня не вызывает никаких сомнений. Если учесть требование живучести программ, то можно рекомендовать BL/1 и ФОРТРАН. Эти языки в настоящее время можно считать наиболее перспективными. [c.48]
Принцип программности предусматривает изучение частных аспектов эффективности отдельных программ развития энергокорпорации. В сущности, мотивом образования многих корпоративных структур и является объединение ресурсов по реализации совместных программ с целью получения синергетического эффекта.
В случае образования межгосударственной электроэнергетической корпорации общий экономический эффект ее деятельности может складываться из совокупности ряда частных эффектов. К ним можно отнести координацию усилий по инновационной деятельности в сфере повышения конструктивной надежности, живучести и экономичности работы энергооборудования, реконструкции и техническому перевооружению объектов., выработавших свой ресурс, организации и управления производством и т.п.
Важной составляющей синергетического эффекта является совместное аккумулирование инвестиционных ресурсов для реализации наиболее эффективных проектов. Например, сооружение дополнительных ЛЭП, позволит более эффективно использовать незагруженные производственные мощности отдельных энергогенерирующих предприятий и избежать дополнительных расходов на строительство генерирующих мощностей в энергодефицитных регионах. Тем самым достигается устранение дублирующих разработок по инвестиционным проектам и обеспечивается общая экономия финансовых средств. Сюда же можно отнести координацию усилий участников корпорации по производственной и сбытовой кооперации. Это, в первую очередь, согласование режимов нагрузки отдельных энергопредприятий и достижение на этой основе экономии текущих затрат (топливной и ремонтной составляющей), координация действий по обеспечению электростанций топливными ресурсами, ремонтным обслуживанием (чем выше объем заказов, тем ниже стоимость единицы топлива или услуг), техническому и консультационному обслуживанию потребителей электроэнергии. [c.83]
Смотреть страницы где упоминается термин Живучесть программ
[c.32] Математическое обеспечение планово-экономических задач (1977) — [ c.18 ]
Источник: economy-ru.info