-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathClient.java
More file actions
36 lines (28 loc) · 1.34 KB
/
Client.java
File metadata and controls
36 lines (28 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import Builder.JobBuilder;
import Entities.Job;
import Entities.User;
import SchedulingStrategy.FcfsStrategy;
import SchedulingStrategy.SjfStrategy;
import Threads.ThreadManager;
import java.lang.*;
import java.util.List;
public class Client {
public static void main(String[] args) {
System.out.println("Job scheduler client in action .... !");
// Ensuring we have a singleton class
ThreadManager threadManager = ThreadManager.getInstance();
threadManager.init(2);
// Create sample jobs
JobBuilder jobBuilder = new JobBuilder();
Job job1 = jobBuilder.name("J1").duration(10).priority(0).deadline(10).user(User.ROOT).build();
Job job2 = jobBuilder.name("J2").duration(20).priority(0).deadline(40).user(User.ADMIN).build();
Job job3 = jobBuilder.name("J3").duration(15).priority(2).deadline(40).user(User.ROOT).build();
Job job4 = jobBuilder.name("J4").duration(30).priority(1).deadline(40).user(User.USER).build();
Job job5 = jobBuilder.name("J5").duration(10).priority(2).deadline(30).user(User.USER).build();
List<Job> tasks = List.of(job1, job2, job3, job4, job5);
System.out.println("SJF");
threadManager.schedule(new SjfStrategy(), tasks);
System.out.println("FCFS");
threadManager.schedule(new FcfsStrategy(), tasks);
}
}