In this assignment, you are to implement the Threads module of OSP2. The project files are available from http://www.cs.sunysb.edu/~cse306/Threads/ and extensive documentation on the Threads module can be found in the OSP manual.
Besides what is stated in the manual, the only additional requirement is that the dispatcher should schedule threads using the Highest Response Ratio Next (HRRN) strategy. Since we do not know the real next CPU burst of a thread, your scheduler should use the previous CPU burst of the thread. Newly created threads (which do not have a previous CPU burst) should receive the highest priority. Note that all this means that you must arrange to save the previous CPU burst of each thread when the thread gives up control of the CPU. Your objective in this project is to get your implementation to run under OSP2 without errors and warnings with the parameter file given in the Threads directory.
You should also strive to obtain good performance statistics during simulation, particularly those statistics related to CPU scheduling (average service time, average normalized service time, etc). How do you know if your statistic are good? One way is to compare your statistics with those obtained by runnning the OSP demo on the same OSP parameter file (the one distributed with the Threads assignment). Since the demo merely uses first-come-first-serve scheduling, your statistic should be at least as good as those of the demo.
Your code is expected to be commented in a professional-looking manner and you are also expected to follow good programming practices. For example, you should use the try and catch exception-handling constructs of Java wherever appropriate.
To enable us to check your CVS logs, you must allow us to log into your account using Secure Shell, or ssh. We do not need to know your password, but you must place certain files in your account and add some other files as explained in the general information web page. This will allow us to access your account, check logs, and run your project in a secure way. This does not expose your account to anybody else.
GOOD LUCK!