The project will consist of creating a simulation of an operating system scheduler handling multiple threads or processes. The student will create a program that launches 6 - 10 worker threads simulating a processor bound, I/O bound and an intermediate of the two types. The program will schedule the tasks using the First-Come, First-Served (FCFS), Shortest Job First, and Round Robin scheduling algorithms. The Program should be written in Java and the Round Robin algorithm should employ the suspend() and resume() thread methods (yes I know the methods are depreciated. Included as an attachment is a sample). The student will take statistics and will write a paper describing what they found.

The paper should be approximately 7 - 10 double-spaced typed pages excluding source code listings, figures, charts, graphs, and tables. References are to be included, but not counted as part of the 7 - 10 pages. The paper should be a complete description of your project, including: the goals of your project, the approach you used, what you did, the statistics you gathered, what lessons you learned (what did not work as originally expected), and a conclusion. On the other hand, excessively long projects will not be favorably received.

Solution PreviewSolution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

* Custom Thread object
*    -attributes for timing, operations, and duration
public class MyThread extends Thread {

public String name;
protected long operations;
private long start;
private long end;
protected float duration;

MyThread(String name, long operations) { = name;
    this.operations = operations;

public void begin() {
    start = System.currentTimeMillis() - ThreadOS.START;
    ThreadOS.PRINT.out("Start time for " + name + " is " + start + " milliseconds.");

public void end() {
    end = System.currentTimeMillis() - ThreadOS.START;
    ThreadOS.PRINT.out("End time for " + name + " is " + end + " milliseconds.");
    ThreadOS.PRINT.out("Total time for " + name + " is " + (end - start) + " milliseconds.");

public void run() {

By purchasing this solution you'll be able to access the following files:
Solution.docx and

50% discount

$75.00 $37.50
for this solution

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available Java Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Upload a file
Continue without uploading

We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats