Simulating a Distributed System
Design and implement a Netlogo model called “Distributed Resource Sharing”. In distributed systems, multiple processes may need to access shared resources (e.g., databases, files, or network connections). Your model should simulate a scenario where each process (turtles) needs to pick up two resources (a 2-phase lock or 2PL) to perform a task. The system should be modelled such that if there are N processes then there is at most N resources. The model should be an abstraction used to illustrate the challenges of resource sharing among processes or threads (turtles) in a distributed system that are competing for limited resources, which can lead to situations like deadlock if not properly managed. The model also relates to concurrency control mechanisms, particularly in distributed databases or systems where multiple transactions or operations must be executed concurrently without conflict.
Use BehaviorSpace to perform systematic investigations of the behaviour of the distributed system as parameters are varied. This will require (a) choosing some aspect or aspects of the model behaviour to measure (e.g. resource_requests, task_completion) and potentially adding new reporters to the code (to-report … end) to calculate these metrics; and (b) choosing which parameters to alter and which values of those parameters to consider scalability, and cooperation.
Present the results of your investigation in the form of a short report of not more than 1800 words, with appropriate graphs and tables, and interpret these results to explain what has been learnt about the models’ behaviour.
Structure
• Aim – Explain what aspects of the model behaviour you intend to investigate.
• Methods – Clearly and completely detail the experiments that you performed.
• Results – Communicate the results of the experiments through graphs and tables.
• Discussion – Interpret your results and compare the different parameters.
• Conclusion – Summarise your main findings, relating back to your aims.