Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 6. Свойства живучести в Promela. Спецификация и верификация свойств при помощи автоматов Бюхи

Лекция 6. Свойства живучести в Promela. Спецификация и верификация свойств при помощи автоматов Бюхи (К. Савенков - Верификация программ на моделях (2012)), страница 2

PDF-файл Лекция 6. Свойства живучести в Promela. Спецификация и верификация свойств при помощи автоматов Бюхи (К. Савенков - Верификация программ на моделях (2012)), страница 2 Надёжность программного обеспечения (53229): Лекции - 7 семестрЛекция 6. Свойства живучести в Promela. Спецификация и верификация свойств при помощи автоматов Бюхи (К. Савенков - Верификация программ на моделях (22019-09-18СтудИзба

Описание файла

Файл "Лекция 6. Свойства живучести в Promela. Спецификация и верификация свойств при помощи автоматов Бюхи" внутри архива находится в папке "К. Савенков - Верификация программ на моделях (2012)". PDF-файл из архива "К. Савенков - Верификация программ на моделях (2012)", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

 Пример  конечного  автомата  A = S , s0 , L, F , Ts0  α0  S = {s0 , s1 , s2 , s3 , s4 }s1  α2  α4  L = {α 0 , α1 , α 2 , α 3 , α 4 , α5 }α1  s2   α s4  5  α3  s3  F = {s4 }T = {( s0 , α 0 , s1 ), ( s1 , α1 , s2 ),...}Вариант  интерпретации  (планировщик  процессов)  idle  s0  α0  α4  α1  s2   α s4  5  α3  s3  ready  pre-­‐empt  s1  α2  start  run  execute  unblock  stop  block  wai•ng  end  Записываем  в  виде  never  idle  start  ready  pre-­‐empt  never {idle:(start) ->ready:(run) ->execute: if:: (pre-empt) -> goto ready:: (block) -> goto waiting:: (stop) -> goto endfi;waiting: (unblock) -> goto execute;end:skipexecute  unblock  }run  stop  block  wai•ng  end  Детерминизм  и  недетерминизм  •  Конечный  автомат      A      =            S    ,    s  0    ,    L    ,    F      , Tназывается  детерминированным,  только  если    ∀s, ∀l, ((( s, l, s' ) ∈ T ∧ ( s, l, s' ' ) ∈ T ) → s' ≡ s' ')–  т.е.

 целевое  состояние  перехода  однозначно  определяется  исходным  состоянием  и  меткой  –  в  противном  случае  автомат  называется  недетерминированным  deny  Модель  сервера  запросов,  работающего  в  бесконечном  цикле  s0  approve  s2  true  s1  request  s3  true  Определение  прохода  •  Проходом  конечного  автомата          S      ,      s    0    ,    L      ,    F        ,  T            называется  такое  упорядоченное  и,  возможно,  бесконечное  множество  переходов  из  T:  σ = ( s0 , l0 , s1 ), ( s1, l1, s2 ), ( s2 , l2 , s3 ),...  что    ∀        i  ,    i      ≥        0        :    (    s    i  ,    l    i  ,    s    i  +    1    )    ∈        T        .

 •  Проход  соответствует  последовательности  состояний  из  S  и  слову  в  алфавите  L.  idle  start  Последовательность  состояний:  {idle,  ready,  {execute,  wai•ng}*}  ready  pre-­‐empt  execute  unblock  wai•ng  run  stop  block  end  Соответствующее  слово  в  L:    {start,  run,  {block,  unblock}*}  Допускающий  проход  •  Допускающим  проходом  конечного  автомата  A  называется  конечный  проход  σ,  финальный  переход  которого  (sn-­‐1,ln-­‐1,sn)  ведёт  в  терминальное  состояние  idle  start  ready  pre-­‐empt  execute  unblock  wai•ng  run  stop  block  Последовательность  состояний  для  допускающего  прохода:    {idle,  ready,  execute,  wai•ng,  execute,  end}  end  Соответствующее  слово  в  L:    {start,  run,  block,  unblock,  stop}  Язык  автомата  •  Языком  автомата  А  называется  множество  слов  в  алфавите  L,  соответствующих  допускающим  проходам  автомата  А  Язык  автомата:  {idle  start  start,run,{{pre-empt,run}+{block,unblock}*}*,stopready  pre-­‐empt  execute  unblock  wai•ng  run  stop  block  end  }Самое  короткое  слово  языка:    {start,  run,  stop}  Описание  свойств  при  помощи  автомата  Пример  свойства:  если  сначала  p=T,    а  позже  q=T,    !q  то  впоследствии  r=F  !p  p  q  !r  Если  мы  попали  в  терминальное  состояние,  то  свойство  нарушается  r  error  Иногда  нужно  рассуждать  о  потенциально  бесконечной  задержке  Классическое  свойство  живучести:  «если  p,  тогда  впоследствии  q»  Такое  свойство  может  быть  нарушено  только  бесконечным  проходом    Классическое  определение  описывает  лишь  конечные  проходы    Нужно  описать,  что  автомат  не  может  находиться  в  терминальном  состоянии  бесконечно  долго.

 !q  !p  p  error  q  Немного  обозначений  •  Для  любого  бесконечного  прохода  σ  конечного  автомата  можно  выделить  два  множества:  –  множество  σ+  состояний,  встречающихся  конечное  число  раз,  –  множество  σω  состояний,  встречающихся  бесконечное  число  раз.  σ+  σ  σω  Допускающий  проход  по  Бюхи  (ω-­‐допускание)  •  Допускающим  ω-­‐проходом  конечного  автомата  А  называется  такой  бесконечный  проход  σ,  что  ∃i ≥ 0, ( si −1 , li −1 , si ) ∈ σ : si ∈ F ∧ si ∈ σωт.е.  по  крайней  мере  одно  терминальное  состояние  встречается  бесконечно  часто.

 idle  start  Допускающий  ω-­‐проход:  {idle,  ready,  {execute,  ready}*}  ready  pre-­‐empt  execute  unblock  wai•ng  run  stop  block  end  Соответствующее  ω-­‐слово:    {start,  run,  {pre-­‐empt,  run}*}  Множество  допускаемых  автоматом  ω-­‐слов  называется  его  ω-­‐языком  Расширение  автоматов  Бюхи  (конечные  проходы  как  частный  случай  бесконечных)  •  Расширяем  алфавит  автомата  меткой  ε  (пустой  переход),  •  Дополняем  все  конечные  проходы  бесконечным  повторением  перехода  по  метке  ε.  idle  start  Допускающий  ω-­‐проход:  {idle,  ready,  execute,  wai•ng,  execute,  [end,]*}  ready  pre-­‐empt  execute  unblock  wai•ng  run  stop  block  end  ε  Соответствующее  ω-­‐слово:    {start,  run,  block,  unblock,  stop,  ε*}  Проверка  свойств  при  помощи  автоматов  Бюхи  •  При  помощи  автомата  Бюхи  можно  описать  наблюдаемое  поведение  программы  и  требования  к  нему,  •  Проход  автомата  соответствует  наблюдаемому  вычислению  (трассе)  программы,  •  Определение  допускаемости  прохода  позволяет  рассуждать  о  выполнении  или  нарушении  требований  (свойств  правильности).

 Безопасность  и  живучесть  •  Безопасность  –  Любое  свойство  безопасности  можно  проверить,  исследуя  свойства  отдельных  состояний  модели;  –  если  свойство  безопасности  нарушено,  всегда  можно  определить  достижимое  состояние  системы,  в  котором  оно  нарушается;  –  для  проверки  свойств  безопасности  требуется  генерировать  состояния  системы  и  для  каждого  из  них  проверять  свойство;  –  при  проверке  таких  свойств  можно  обойтись  без  темпоральных  логик  и  автоматов  Бюхи.  •  Живучесть  –  Для  проверки  свойств  живучести  необходимо  рассматривать  последовательности  состояний  (конечные  и  бесконечные  проходы  соотв.

 автомата  Бюхи);  –  для  проверки  свойств  используются  другие,  более  сложные  алгоритмы;  –  свойства  удобно  описывать  при  помощи  формул  темпоральной  логики,  а  проверять  –  при  помощи  автоматов  Бюхи.  Пример  свойства  безопасности  Как  только  p  впервые  стало  истинно,    q  больше  не  может  быть  истинно.  never{do:: !p:: p -> breakoddo:: assert(!q)od}!p  p  assert(!q)  Как  только  достигнуто  состояние,  удовлетворяющее  условию,  будет  зафиксировано  нарушение  свойства.  Рассуждать  о  бесконечных  вычислениях  здесь  не  требуется.  Пример  поведения  системы  bool p,q;A  B  active proctype A(){(!p && !q) -> p = true}s0  s0  active proctype B(){(p) -> q = true}!p∧  !q  s1  s1  p  =  true  s2  stop  !p  p  assert(!q)  p  q  =  true  s2  stop  A∥B  s0  s0  !p∧!q  s1  s0  p  =  true  stop  s2  s0  p  -­‐  s0  p  s2  s1   stop   -­‐  s1  q  =  true  stop  q  =  true  -­‐  s2  асинхронно   s2  s2  stop  stop  синхронно  s2  s0   stop   -­‐    -­‐  Проверка  свойства    безопасности    A∥B  A∥B  p0  s0  s0  !p∧!q  p  s1  s0  p  =  true  stop  s2  s0  p  s2  s1   stop  q  =  true  stop  s2  s2  stop  stop  s2  s0  p1  !p  s0  s0  !p∧!q  assert(!q)  синхронно  -­‐  s0  Свойства  безопасности  всегда  можно  проверить  p  путём  анализа  -­‐  s1  достижимости  состояний  q  =  true   либо  асинхронной  параллельной  композиции  -­‐  s2  процессов  А∥В,  либо  её  stop   синхронной  композиции  с  процессом,  описывающим  -­‐    -­‐  свойство  –  (A∥B)∣P  s1  s0  p  =  true  stop  s2  s0  p  -­‐  s0  p  stop  s  s-­‐  s1   p1  p1   2 1  q  =  true   q  =  true  stop  pp1   s2  s2  stop  stop  p1   s2  -­‐  -­‐  s2  1  stop  -­‐    -­‐   p1  Пример  свойства  живучести  Как  только  p  впервые  стало  истинно,  в  течение  конечного  числа  шагов  q  также  станет  истинным.

   Нарушение  свойства:  p  становится  истинным,  а  затем  q  может  навсегда  остаться  ложным.    !p  p  !q  Мы  можем  заключить  о  нарушении  свойства,  только  если  обнаружим  удовлетворяющую  условию    потенциально  бесконечную  последовательность  состояний  Пример  поведения  системы  bool p,q;A  B  active proctype A(){(!p && !q) -> p = true}s0  s0  active proctype B(){(p) -> q = false}Модель    не  циклична!  !p  p  !q  !p∧  !q  s1  s1  p  =  true  s2  p  stop  q  =  false  s2  stop  A∥B  s0  s0  !p∧!q  s1  s0  p  =  true  stop  s2  s0  p  -­‐  s0  p  s2  s1   stop   -­‐  s1  q  =  false   q  =  false  stop  -­‐  s2  асинхронно   s2  s2  stop  stop  синхронно  s2  -­‐   stop   -­‐    -­‐  Проверка  свойства    живучести    A∥B  A∥B  Модель    s0  s0   не  циклична!  !p∧!q  p0  p  s1  s0  p  =  true  stop  s2  s0  p1  !p  s0  s0  !q  синхронно  p  q  =  false  stop  q  =  false  stop  stop  s2  s0  stop  -­‐    -­‐  p  =  true  stop  p  s2  s1   stop   -­‐  s1  -­‐  s2  s1  s0  s2  s0  -­‐  s0  p  s2  s2  !p∧!q  -­‐  s0  p  stop  s  s-­‐  s1   p1  p1   2 1  Для  проверки  свойств  живучести  необходимо  рассматривать  бесконечные  вычисления  q  =  false   q  =  false  stop  pp1   s2  s2  stop  stop  p1   s2  -­‐  -­‐  s2  1  stop  -­‐    -­‐   p1  ε  Спасибо за внимание!Вопросы?.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5184
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее