The program consists of 6 Java files. The main file Workload.java (deterministically) creates a number of tasks, commands and resources and executes the tasks. The tasks run each of their commands in turn, which request resources from the Manager. Each resource can only be granted to one command at any time, so some commands must wait until the required resource are free. Commands have a duration.
+
An AspectJ file is provided that prints the events and can be used for monitoring.
+
+
To compile the program with instrumentation run
+
java -cp "lib/*" org.aspectj.tools.ajc.Main -source 1.7 -d bin -sourceroots bench3
+
and to execute the program run
+
java -cp "lib/*:bin" bench3.Workload
+
The program will produce 90,737,740 events. With 45,347,515 request events, 42,710 grant events, 45,304,805 deny events and 42,710 release events. The program satisfies the property.