Concurrent Programming

about this Project...

Introduction –

During my studies in the “Concurrent Programming” module at the University of Westminster, I undertook a comprehensive coursework that involved designing a shared printer system. This project allowed me to delve deep into concurrency concepts, using both abstract modelling with FSP and practical implementation with Java.

Project Specification –
Skills Developed –
  • FSP Modelling: Developed FSP processes to model a shared printer system, encompassing various entities like students, technicians, and the printer itself.
  • Java Concurrency: Translated the abstract FSP model into a multi-threaded Java program, ensuring the accurate representation of concurrency features.
  • LTSA Tool Proficiency: Utilised the LTSA tool to animate and analyse the FSP model, ensuring the system’s correctness and efficiency.
  • System Design: Created a comprehensive printing system that combined multiple processes in parallel, ensuring mutual exclusive access and efficient operation.
  • Thread Management: Demonstrated expertise in Java thread management by creating and coordinating thread groups for students and technicians.
Examples from Coursework –
  • FSP Design & Model: Delve into the three types of FSP processes I designed to model the Printer, Student, and Technician, along with a parallel composite process for the complete system.
  • Java Implementation of Shared Printer: Explore the multi-threaded Java program I developed based on the FSP model. This involved:
    • Creating Java classes to model the FSP processes.
    • Designing and implementing a comprehensive printing system that combined instances of the Printer, multiple Student processes, and Technician processes in parallel, ensuring mutual exclusive access.
    • Ensuring the system adhered to the guidelines provided, particularly the use of Java’s monitor feature and avoiding other synchronization mechanisms.
  • LTSA Tool Usage: View the printer.lts code using the button below and explore the screenshots and animations on the image carousel, showcasing my use of the LTSA tool to animate and analyse the FSP model.