This preview shows page 1. Sign up to view the full content.
Unformatted text preview: raints: one at a time everyone in order of request Liveness: (in absence of failures: if every lock holder eventually releases lock) eventually every requester will get the lock Implementation: Every message timestamped with value of logical clock. 1) multicast request Tm to everyone 2) if get request, put Tm on local queue, ack (so now request is on everyone’s queue, and everyone’s clock is > request) 3) to release, remove request from local queue, send release to everyone 4) if get release, remove that request from local queue 5) Process i gets lock if its request is before (=>) everyone else’s, and none earlier can arrive (have a later timestamp from everyone) Example of state machine; everyone operates on the same information, so everyone stays in synch. Illustrate algorithm with set of processes, each with a request queue. P0 starts with lock, at T0. In everyone’s request queue. P1 asks for lock, at T1. P2 asks for lock, at T2. P0 releases lock, at T2. Of course, doesn’t work with fai...
View Full Document
- Spring '14