Upload
mariokundit
View
215
Download
0
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: