Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
9.7. Свойства живости (осуществимости)Эта категория свойств выражается общей формулой:
Эта формула означает, что для каждого допустимого вычисления, если Заметим, что вследствие замкнутости оператора 0 относительно множества суффиксов допустимых вычислений приведенная формула, выражающая свойство живости, эквивалентна следующей:
9.7.1. Абсолютная корректностьЭто свойство похоже на частичную корректность и имеет смысл только для программ с терминальными местами. Говорят, что программа абсолютно корректна, если для всех значений входных переменных х, удовлетворяющих
Это означает, что если мы имеем допустимую выполняемую последовательность, начинающуюся в ситуации, определяемой местами последовательности гарантированно будет иметь место ситуация, определяемая Пример. Программа вычисления факториала:
Пример. Программа подсчета вершин дерева:
Пример. Программа вычисления биноминальных коэффициентов:
9.7.2. Гарантированное осуществлениеСвойства живости позволяют выразить причинно-следственную связь между любыми двумя событиями, возникающими в течение выполнения программы, а не только между началом и окончанием программы. Такая возможность особенно существенна, когда программа является циклической. Общий вид формулы, выражающей свойство гарантированного осуществления, следующий.
Эта формула означает, что если Пример. Для программы подсчета числа вершин в дереве утверждение гарантированного осуществления, которое служит основой для доказательства ее корректности, имеет вид
где Следующие свойства живости имеют значение для параллельных программ, содержащих более одного процесса. 9.7.3. ДоступностьРассмотрим снова процесс, который имеет критическую секцию С. В предыдущем разделе при изучении свойства взаимного исключения было показано, как установить защиту для такой секции от вмешательства со стороны других процессов. Продолжающим и дополняющим свойством к свойству взаимного исключения является свойство доступности, означающее следующее: если процесс желает войти в свою критическую секцию, он, в конечном счете, попадает туда, т.е. не будет неопределенно долго удерживаться механизмом зашиты. Очевидно, что защитный механизм является бесполезным, если он не позволяет в конце концов процессу войти в его критическую секцию. Пусть
Правильная конструкция критической секции должна гарантировать выполнение этих двух полезных свойств: взаимного исключения и доступности. 9.7.4. БеступиковостьБолее общий класс свойств живости связан с возможностью осуществления продвижения процедуры вычисления любого процесса, находящегося в месте
или эквивалентной формулой
которая означает, что мы никогда не будем заблокированы в месте Свойство беступиковости так же известно как свобода от индивидуального зависания, определяемого как ситуация, в которой некоторые процессы, которые не находятся в терминальных местах, не могут продвигаться (выполняться), несмотря на то, что программа в целом выполняется за счет продвижения других процессов. Заметим, что это более сильное требование, чем отсутствие дедлока, поскольку считается, что программа не попала в дедлок до тех пор, пока хотя бы один процесс выполняется. 9.7.5. ОтзывчивостьОчень важным классом программ, относящихся обычно к параллельным программам, являются операционные системы и такие программы реального времени, как системы резервирования билетов в авиации или другие системы баз данных, функционирующие в режиме on-line. Эти программы удобно рассматривать как непрерывные или циклические программы, работающие постоянно. Остановка выполнения этих программ обычно отражает ошибочные условия. Следовательно, эти программы работают не на получение конечного результата, а для результатов, производимых в течение их бесконечного выполнения. Таким образом, понятия абсолютной и частичной корректности здесь не применимы и должны быть заменены утверждениями, учитывающими непрерывное выполнение программ. Одним из важнейших свойств таких программ является отзывчивость. Пример. Предположим, что программа, моделирующая операционную систему Итак, имеем
Утверждением о, означающим, что диспетчер справедливо реагирует на запросы потребителя, является
т.е. когда бы Подобным образом необходимо обеспечить подтверждение
Более того, система не сможет работать нормально, если не будет обеспечено должного взаимодействия между программами пользователей. Например, система не может обещать пользователю Следовательно, требуется, чтобы поведение пользователя
Это утверждение говорит о том, что в случае предоставления потребителю
означающее, что в любом такте диспетчер предоставляет ресурс самое большее одному потребителю. Оно относится к типу утверждений взаимного исключения. Введем теперь утверждение корректного поведения диспетчера С в целом:
Корректное поведение, ожидаемое от пользователей
Проблема доказательства правильного поведения диспетчера С может быть решена двумя различными путями. В первом случае рассматривается параллельная программа, которая состоит из одного диспетчера С. Переменные
задающей свойство отзывчивости. Смысл этой формулы состоит в том, что при условии непрерывно правильного поведения пользователей, формирующих внешнее воздействие в соответствии с формулой Во втором случае рассматривается параллельная программа Р, которая состоит из операционной системы С, работающей совместно с программами
Для каждого
Если полагать, что эта модель
также задающей свойство отзывчивости. Таким образом, возможны две моделирующие ситуацию альтернативы: рассмотрение диспетчера Аналогичный анализ может быть распространен на другие ситуации, где необходимо обеспечивать взаимодействие с внешними устройствами и реагировать соответствующим образом на внешние сигналы.
|
1 |
Оглавление
|