Research Experience
Modeling Scheduling Algorithms
October 2024 - Current
Currently, I am working on my bachelor’s thesis under the supervision of Prof. Prof. Fatemeh Ghassemi focusing on modeling and verifying various scheduling algorithms using networks of timed automata. In this project, I consider a finite number of tasks, with the ultimate goal of determining whether the tasks are unschedulable and measuring the time required for each task to be executed. I am using UPPAAL, an integrated tool environment for modeling, validation, and verification of real-time systems, to explore the drawbacks and advantages of different existing strategies for modeling scheduling algorithms. Additionally, my goal is to develop a modeling strategy that is applicable to a wide range of scheduling algorithms, enabling more efficient analysis and verification across various system designs.
TruSt Implementation in Lincheck
Jul 2023 - Sep 2023
I worked as an intern at Max Planck Institute for Software Systems during the summer 2023 under the supervision of Prof. Rupak Majumdar. I collaborated with Pasha Barahimi in implementing the TruSt algorithm in Lincheck, a tool for testing concurrent algorithms on the JVM. The implementation was based on the paper "Truly Stateless, Optimal Dynamic Partial Order Reduction". The TruSt algorithm is a stateless dynamic partial order reduction (DPOR) technique aimed at reducing the number of interleavings explored in concurrent programs in order to decrease memory usage and execution time. The repository for the implementation can be found here.
During the implementation, we encountered many challenges related to distinguishing between the different shared variables as the default strategy in Lincheck was check all possible interleavings on the shared variables. The challenges were mainly due to some high-level features of java such as garbage-collector. We listed some of the possible solutions and their issues here.