Git Product home page Git Product logo

mutual-exclusion-service's Introduction

Implement a mutual exclusion service among n processes using Raymond’s tree based distributed mutual exclusion algorithm. The service provide two function calls to the application: csEnter() and csLeave(). The first function call csEnter() allows an application to request permission to start executing its critical section. The function call is blocking and returns only when the invoking application can execute its critical section. The second function call csLeave() allows an application to inform the service that it has finished executing its critical section. Also, implement the greedy variant of the algorithm in which a process uses the token to satisfy its own request, if applicable, before forwarding the token to the top most requesting process in its queue.

Implementation Details: each process or node consists of two separate modules. The top module implements the application (requests and executes critical sections). The bottom module implements the mutual exclusion service. The two modules interact using csEnter() and csExit() functions.

Application: The application is responsible for generating critical section requests and then executing critical sections on receiving permission from the mutual exclusion service. Application uses following two parameters: inter-request delay and cs-execution time. The first parameter denotes the time elapsed between when a node’s current request is satisfied and when it generates the next request. The second parameter denotes the time a node spends in its critical section. Assume that both inter-request delay and cs-execution time are random variables with exponential probability distribution.

mutual-exclusion-service's People

Contributors

fxdmcx avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.