assignments:a1
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
assignments:a1 [2007/08/01 13:58] – external edit 127.0.0.1 | assignments:a1 [2009/03/20 04:06] (current) – jonathan | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Assignment 1 ====== | ====== Assignment 1 ====== | ||
+ | Assignment 1 due date:before class on Wednesday March 18th. | ||
+ | The following is a Spin description of a mutual exclusion algorithm using a semaphore variable '' | ||
+ | |||
+ | < | ||
+ | |||
+ | /* Mutex via semaphores | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | |||
+ | int r = 1; /* semaphore */ | ||
+ | bit p1, p2 = 0; | ||
+ | |||
+ | |||
+ | active proctype P1() { | ||
+ | do | ||
+ | :: atomic{r > 0 -> r = 0}; /* request(r)*/ | ||
+ | p1 = 1; /* critical section */ | ||
+ | p1 = 0; | ||
+ | atomic { r = 1}; / | ||
+ | od | ||
+ | } | ||
+ | |||
+ | active proctype P2() { | ||
+ | do | ||
+ | :: atomic{r > 0 -> r = 0}; /* request(r)*/ | ||
+ | p2 = 1; /* critical section */ | ||
+ | p2 = 0; | ||
+ | atomic { r = 1}; / | ||
+ | od | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | You must come up with an Event-B model for the above program. Prove that your model is safe and deadlock free. | ||
+ | |||
+ | Hint: In Event-B you have to think **events** rather than statements in a coding language. | ||
+ | |||
+ | Submit a Latex hardcopy of your work and a mutex.zip file via electonic submit: | ||
+ | | ||
+ | |||
+ | The zip file can be created from the Rodin export facility (see Rodin Tutorial). |
assignments/a1.1185976689.txt.gz · Last modified: 2009/03/09 03:04 (external edit)