Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SWN-Token-Ring

An implementation of algorithm of token transport in unreliable token-ring topology.
Implementation in C# & F# in .NET 6 using async Tasks.
Works on Windows & Linux (tested on Windows 10 & Fedora 35).

How to run

C#

  1. Go to folder where file .csproj exists.
  2. Open cmd/terminal.
  3. Type: dotnet run

F#

  1. Go to folder where file .fsproj exists.
  2. Open cmd/terminal.
  3. Type: dotnet run

How algorithm works?

  1. Initial conditions:
    • synchronous workflow
    • NO FIFO in communication (token value increase infinitely)
    • all messages are sent in one direction
    • communication channels can be unreliable but in finite time.
  2. Only one process/thread which have token can do things (critical section).
  3. Process (1) send token to next process. (e.g. 1 -> 2)
  4. Process (2) get token, sends ack with token number.
  5. Process (2) do things in its critical section and then sends token again (with bigger sequencial value e.g. +1).
    1. If process (1) didn't received ack for sent token in specified time (timeout), resend it.
    2. Process (1) will resending token until:
      • get ack OR
      • get newer token than it has.

Addition

Project was created for High Reliability Systems Lab course held by Institute of Computing Science, Poznań University of Technology.

About

Algorithm of token transport in unreliable token-ring topology

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages