Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
9.6. Инвариантные свойстваПрограммные свцйства, которые всегда должны выполняться для данной программы, называют инвариантными свойствами. Они описываются формулой вида Это означает, что формула Чтобы подчеркнуть тот факт, что мы имеем дело с предусловием 9.6.1. Частичная корректностьЭто свойство имеет значение только для программ, в которых каждый процесс содержит терминальное место
где Пример. Программа вычисления факториала:
В результате выполнения этой программы после ее останова в месте
где начальные условия, ассоциируемые с допустимым вычислением, имеют вид
Свойство частичной корректности как инвариантное свойство фактически является частью совокупности инвариантов. Обычно для того, чтобы доказать свойство частичной корректности, доказывают инвариантность более полной формулы, из которой следует частичная корректность:
Пример. Программа, подсчитывающая число вершин в двоичном дереве X:
проверка стека
выбор головы голова
проверка переменной дерева на отсутствие в нем вершин.
Увеличение счетчика на 1.
Помещение левого и правого поддеревьев в стек
Здесь Т — переменная дерева;
Начальные условия, соответствующие допустимому вычислению для этого случая, имеют вид
Пример. Параллельная программа вычисления биноминальных коэффициентов: Утверждение частичной корректности:
Полное начальное условие, ассоциируемое с допустимым вычислением:
9.6.2. Чистое поведениеСвойство чистого поведения обусловливает правильность выполнения переходов (команд) для каждого места процессов программы. Например, в случае деления свойство чистого поведения может обусловливать, что делитель не ноль и не слишком мал, чтобы не приводить к переполнению. Если программа содержит ссылку на элемент массива, то свойство чистого поведения может обусловливать попадание индекса в определенные границы. Обозначив условие чистого поведения в месте
Конъюнкция берется по всем потенциально опасным местам программы. Пример. Программа должна давать только целые числа в течение всего времени вычисления. Тогда условие чистого поведения для программы вычисления факториала в месте
Пример. Если программа деление содержит команду
где оператор целого деления и изменение индекса
Пример. Свойство чистого поведения для программы, считающей вершины дерева, имеет вид
Это утверждение гарантирует, что не будет сделана попытка вытолкнуть (взять) данные из пустого стека или декомпозировать пустое дерево. Пример. Главное условие чистого поведения для программы вычисления биноминальных коэффициентов будет следующим:
9.6.3. Глобальная инвариантностьОчень часто некоторые свойства программ не зависят от какого-либо конкретного места. В этом случае говорят о глобальных инвариантностях. Свойство глобальной инвариантности в общем виде выглядит следующим образом:
т.е. свойство Пример. Условие того, что у, всегда должно быть положительным для программы вычисления факториала, выглядит следующим образом:
Другое условие глобальной инвариантности для этой программы может быть следующим:
Пример. Свойство глобальной инвариантности для программы вычисления биноминальных коэффициентов имеет вид
Те же самые обозначения можно использовать для локальной инвариантности по отношению к определенному месту
Пример. Условие, которое должно быть истинным, когда мы находимся в месте
т.е. сумма вершин поддеревьев в стеке 9.6.4. Взаимное исключениеПонятие критической секции и взаимного исключения было введено ранее. Вернемся к ним и сформулируем свойства корректности программ. Рассмотрим два параллельных процесса Свойство взаимного исключения для С, и
Это свойство означает, что всегда, когда активно хотя бы одно место секции 9.6.5. Отсутствие дедлокаКак уже отмечалось, параллельная программа, состоящая из Рассмотрим набор
Это означает, что в случае, когда процессы находятся в Для того чтобы предотвратить возможность дедлока во всей программе, необходимо налагать подобные требования на каждый набор ожидаюших мест, исключая Пример. Условие отсутствия дедлока для программы вычисления биноминальных коэффициентов является следующим:
Это условие учитывает тот факт, что при нахождении в
|
1 |
Оглавление
|