kompro

Embed Size (px)

Citation preview

  • 8/16/2019 kompro

    1/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 1

     

    ELEKTROTEHNIČKI FAKULTET OSIJEK Zavod za komunikacije

    KOMUNIKACIJSKI PROTOKOLI Laboratorijske vje ž be

    - Prva laboratorijska vjež ba -

    UVOD U SPIN I PROMELU

    UVOD

    Danas se u primjeni nalazi veliki broj programskih alata čija je namjena provjera logičke

    konzistentnosti modela određenih sustava. Jedan od kvalitetnijih besplatnih alata namijenjenih verifikacijii provjeri logičke konzistentnosti modela s konačnim brojem stanja je SPIN  (eng. Simple Promela

     INterpreter ).

    SPIN je programski alat za simulaciju ponašanja modela složenih komunikacijskih sustava, kao što

    su komunikacijski protokoli, te provjeru njihove valjanosti. On simulira izvr šavanje modela

    interpretiranjem izraza napisanih Promela jezikom (eng.  Process Meta Language). Promela se koristi za

     parcijalan ili kompletan opis sustava na bilo kojoj razini apstrakcije. Iako su SPIN i Promela prvobitno

     bili osmišljeni i namijenjeni verificiranju modela komunikacijskih protokola, danas se primjenjuju pri

    verificiranju širokog spektra softverski i harderski dizajniranih rješenja.

    Za model sustava opisanog Promelom, SPIN omogućuje izvođenje simulacije te generiranje

    određenog C  programa, čija je namjena verificiranje ispravnosti modeliranog sustava. Osnovni zahtjevi

    vezani uz postupak verifikacije su učinkovitost te korištenje što manje količine memorijskog prostora.

    Tijekom simulacije i verifikacije, SPIN provjerava da li u sustavu postoje zastoji, nedefinirani prijemi ili

    dio koda koji se nikada ne izvr šava.

    Iscrpne provjere koje SPIN provodi mogu precizno odrediti da li postoje propusti u određenom

    modeliranom sustavu. Kompletna provjera modela sustava provodi se izvedbom niza koraka. Modeli se

    mogu provjeravati uz različite pretpostavke, a svaki provedeni korak provjere omogućuje izgradnju sve

    detaljnijeg modela sustava. Nakon provjere ispravnosti modela nekog sustava u SPIN-u, rezultati provjeremogu se koristiti pri izgradnji i provjeri svih naknadno izmijenjenih modela. SPIN ima svoje grafičko

    sučelje - XSPIN, prikazano na slici 1.

    Slika 1.  Xspin  –  grafič ko suč elje SPIN-a

  • 8/16/2019 kompro

    2/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 2

     

    XSPIN sučelje je samostalno, tj. neovisno o samom SPIN-u. Dok se SPIN naredbe sintetiziraju i

    izvr šavaju u pozadini, ovisno o naredbama koje zadaje korisnik, XSPIN sučelje omogućuje grafički

     prikaz slijeda poruka te prikaz vremenskih dijagrama. Također, pruža detaljan pregled velikog broja

    opcija dostupnih prilikom izvođenja simulacija i verifikacija u SPIN-u. 

    XSPIN sučelje pruža mogućnost izbora između: 

    a)  simulatorskog , odnosno 

    b) 

    verifikatorskog načina rada. 

    a) Postavljanje parametara simulacije

    Simulatorski način rada omogućuje vizualnu predod ž bu rada modela. Dijaloški okvir s izborom

    Opcija simulacije  (eng. Simulation Options) u XSPIN-u omogućuje korisniku izbor odgovarajućeg

    načina prikaza rezultata simulacije.

     Na lijevoj strani navedenog dijaloškog okvira moguće je odabrati neke od ukupno četiri vrste ispisaizlaznih vrijednosti. Predodabirom su označene samo dvije od njih ( MSC   i  Data Values), kako je

     prikazano na slici 2..

     MSC okvir (eng. Message Sequence Chart ) omogućuje grafički prikaz slijeda poruka. Izvr šeni koraci

    u ovom načinu prikaza označeni su identifikacijskim brojevima. Nakon pomicanja kursora miša preko

    svakog od koraka, prikazuje se izvorni tekst te se glavni tekstualni prozor pomiče do odgovarajuće izjave.

    Za svaki pojedini prikazani korak korisnik može odabrati i prikaz izvornog teksta na zaslonu. Za jakoduge simulacije moguće je zbiti prikaz poruka na grafikonu odabirom opcije kondenziranog razmaka.

    Uobičajeno, grafikon prikazuje samo slijed poruka koje se šalju i primaju, međusobno povezaneodgovarajućim strjelicama.

    Slika 2. Osnovni dijalo š ki okvir za izbor parametara simulacije 

    U gornjem desnom kutu okvira moguće je odabrati između slučajne, vođene ili interaktivne

    simulacije. U XSPIN-u je predefinirana slučajna simulacija, s početnom vrijednošću (eng. Seed Value)

     postavljenom na jedinicu. Ovu početnu vrijednost moguće je promijeniti kako bi se dobile različite

    vrijednosti rezultata simulacija, budući da fiksna početna vrijednost vodi do identičnih rezultata. Ako se

    okvir za unos početne vrijednosti ostavi prazan, trenutno vrijeme sustava koristi se kao po

    četnavrijednost, a ono, naravno, ne jamči reproducibilnost rezultata. Vođena simulacija zahtijeva postojanje

    datoteke imena pan.trail  koja nastaje nakon provedbe verifikacije. Pri takvom načinu simulacije moguće

     je odrediti broj koraka koji se može preskočiti prije ispisa slijeda rezultata.

  • 8/16/2019 kompro

    3/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 3

     

    Ukoliko se tijekom postupka simulacije popuni podatkovni kanal, korisnik može odabrati želi li

     blokirati slanje novih poruka ili ne. U slučaju da je odabrana opcija bez blokiranja poruke poslane na

    kanal koji je popunjen bit će izgubljene.

    U donjem desnom kutu dijaloškog okvira nalaze se prostori za označavanje kanala. Ako je kanal

    označen, operacije slanja i primanja poruka neće biti prikazane na grafičkom MSC  prikazu.

    b) Postavljanje parametara verifikacije

    Dijaloški okvir sa izborom Osnovnih opcija verifikacije  (eng.  Basic Verification Options)omogućuje vizualnu kontrolu automatski izvođenih verifikacija u SPIN-u. Početne postavke svih

     parametara su odabrane tako da čine prihvatljivu polaznu točku za verifikaciju većine aplikacija.

    Slika 3. Osnovni dijalo š ki okvir za izbor parametara verifikacije 

     Nakon dovr šenja postupka verifikacije, na temelju dobivenih rezultata, XSPIN naznačuje moguće

    načine za nastavak rada. U slučaju da u postupku verifikacije nisu otkrivene pogreške, naznake se neispisuju. Predodabrane postavke prikazane slikom 3. odnose se samo na provjeru svojstva sigurnosti, dok

    se za provjeru aktivnosti zahtijeva posebna provjera pokrenuta nakon odabira odgovarajućih opcija.

    Promela

    Model određenog sustava koji se verificira pomoću SPIN-a potrebno je napisati Promela jezikom.Promela je jezik koji koristi sintaksu sličnu C -u. To je nedeterministički jezik za specificiranje mogućih

     ponašanja u distribuiranim sustavima. Omogućuje dinamičko modeliranje složenih komunikacijskih procesa.

    Općenito Promela programi (modeli) sastoje se od:

    §   procesa,

    §  kanala poruka i

    §  varijabli.

    Procesi su globalni objekti, a kanali poruka i varijable mogu biti deklarirani globalno ili lokalno -

    unutar procesa. Procesi određuju ponašanje, a kanali poruka i varijable okruženje u kojem su procesi

     pokrenuti.

  • 8/16/2019 kompro

    4/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 4

     

    Svaki Promela program sastoji se od deklaracija i početnog (inicijalnog) procesa. Deklarirati se mogu:

    Ø  tipovi podataka (eng. type declaration)

    Ø  globalne varijable (eng. global variable declaration)

    Ø  kanali poruka (eng. channel declaration)

    Ø   početni proces (eng. init process declaration)

    Ø 

    ostali procesi (eng. process declaration).Početni proces (init  proces) inicijalizira varijable i pokreće ostale procese.

    Stanje modeliranog sustava čine vrijednosti globalnih i lokalnih varijabli, vrijednosti lokalnih brojila

    te sadr žaji kanalskih spremnika. Njihove vrijednosti su inicijalno postavljene na nulu. Stanje svakog

    sustava jednoznačno određuju naredbe koje su omogućene u aktivnim instancama procesa. U svakom

    koraku izvr šava se po jedna od omogućenih naredbi. Time sustav dolazi u novo stanje. Maksimalan broj

    izvr šnih koraka čini izvr šni slijed sustava. Prvi izvr šni korak kreće od inicijalnog stanja, a svaki sljedeći

    korak kreće od stanja izazvanog prethodnim koracima.

    Preporučena literatura:

    - prezentacije i bilje š ke s auditornih vje ž bi i predavanja

    - www.spinroot.com

    - G. J. Holzmann: ˝ The Spin Model Checker: Primer and Reference Manual ̋   , Addison Wesley, 2003.

    - G. J. Holzmann: ˝  Design and Validation of Computer Protocols˝  , Prentice Hall, 1990.

    Priprema za vježbu:

    Prije vjež bi potrebno je proučiti predložak za vjež bu te preporučenu literaturu.

    Cilj vježbe:

    Cilj ove vjež be je upoznavanje s radom u SPIN okruž ju koje se koristi za simulaciju i verifikacijusustava modeliranih primjenom Promela jezika. Potrebno je razumjeti i znati konstruirati jednostavne

     programe napisane u Promeli.

  • 8/16/2019 kompro

    5/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 5

     

    PRIMJERI I ZADACI

    I.)  SLIJED IZVO ĐENJA PROGRAMA S VIŠE PROCESA

    Zadatak 1:

    Izvedite sljedeći Promela program u XSPIN-u:

    a) Ispišite rezultate simulacije (Simulation Output ) i komentirajte svaku liniju u dobivenom ispisu.

     b) Grafički prikažite rezultate (Sequence Chart ) i objasnite dobiveni prikaz.

    c) Koliko je procesa ukupno kreirano? Navedite koji su to procesi i koje su razlike među njima.

    U predviđene prostore upišite rješenja zadataka.

    Rješenje:

    a) Ispis:

     b) Grafički prikaz:

    c) Odgovori:

     Komentar:

    Obja š njenje:

  • 8/16/2019 kompro

    6/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 6

     

    Zadatak 2:

    Zadan je sljedeći Promela program:

    a) Objasnite što se postiže navođenjem naredbe atomic unutar zadanog init  procesa.

     b) Koliko je procesa ukupno kreirano? Navedite koji su to procesi te napišite njihovu id  vrijednost.

    c) Grafički prikažite rezultate (Sequence Chart ) i prokomentirajte (objasnite) dobiveni prikaz.

    d) Simulaciju izvedite prvo uz postavljanje početne vrijednosti (Seed Value) na jedinicu, a zatim na

    dvojku. Kakav utjecaj na ispis ima postavljena početna vrijednost (što se ispisuje u prvom, a što u drugom

    slučaju)?

    U predviđene prostore upišite rješenja zadataka.

    Rješenje:

    a) Odgovor:

    d) Odgovor:

    c) Grafički prikaz:  Komentar:

     b) Odgovor:

  • 8/16/2019 kompro

    7/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 7

     

    Zadatak 3:

    Zadana su sljedeća dva Promela programa:

    i

    a) Izvedite simulaciju prvog programa uz postavljanje početne vrijednosti (Seed Value) na sljedeće

    vrijednosti: 1, 10 i 20. Navedite što se ispisuje u prvom, što u drugom, a što u trećem slučaju kao

    vrijednost varijable state?

     b) Ponovite gornji postupak pri izvođenju simulacije drugog programa te navedite dobivene

    vrijednosti.

    c) Objasnite kako naredba atomic  utječe na redoslijed izvr šenja procesa. Ispišite kojim se sve

    redosljedima mogu izvr šiti procesi u prvom, a kojim redosljedima u drugom programu.

    U predviđene prostore upišite rješenja zadataka.

    Rješenje:

    a) Odgovor:

    c) Odgovor:

     b) Odgovor:

  • 8/16/2019 kompro

    8/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 8

     

    II.)  PROMELA PROGRAMI S KONTROLOM TOKA

    A) Ponavljanje (eng. repetition)

    Zadatak 4:

    Zadan je Promela program:

    a) Za čega se primjenjuje naredba active?

     b) Objasnite što radi ovaj program. Što je rezultat simulacije? Da li početne vrijednosti utječu na

    rezultat?

    c) Proširite zadani kod tako da se program prekine u slučaju kada counter  postane jednak nuli.

    U predviđene prostore upišite rješenja zadataka.

    Rješenje:

    a) Odgovor:

    c) Odgovor:

     b) Odgovor:

  • 8/16/2019 kompro

    9/9

     KOMUNIKACIJSKI   PROTOKOLI  _ 2013 _  LV1 9

     

    B) Odabir (eng. selection)

    Zadatak 5:

    Zadan je sljedeći Promela program:

    a)  Objasnite što radi ovaj program.

     b)  Što je rezultat izvođenja programa?

    c)  Prepravite ovaj program tako da rezlutat njegovog izvođenja bude jednak 100.

     Napomena: početnu vrijednost (Seed Value) u primjerima pod b) i pod c) postavite na jedan.

    U predviđene prostore upišite rješenja zadataka.

    Rješenje:

    Ime i prezime studenta: Broj indeksa: Datum: Pregledano:

    a) Odgovor:

    c) Odgovor:

     b) Odgovor: