Design of a few OS components by simulation. These components include CPU management and scheduling, process management, system queues, system statistics gathering and reporting.
write a simulation program in Java for testing the performance of their designs of a few CPU scheduling algorithms for a simple computer with limited HW / SW system, then report their findings, conclusions, and suggest improvements.
System Description
1. The Available Hardware
a. A single CPU.
b. One I/O Device.
c. Unlimited amount of Main and Secondary storage.
d. System Timer and all necessary support.
2. The User Processes
All processes created in this system fall under any one of the following types:
Type-1: Consists of:
10 CPU bursts of the following lengths: (1,2,1,1,1,3,1,2,2,1) Time Units,
9 I/O bursts of the following lengths: (6,4,10,3,5,3,2,10,6) Time Units.
Type-2: Consists of:
15 CPU bursts of 50 Time Units each, and
14 I/O bursts of 150 Time Units each.
Type-3: Consists of:
12 CPU bursts of 1000 Time Units each, and
11 I/O bursts of 5 Time Units each.
Type-4: Consists of:
A repeated pattern of (CPU, I/O1, Think, I/O2), where:
Each CPU burst takes 3 Time Units,
Each I/O1 burst takes 3 Time Units,
Each I/O2 burst takes 10 Time Units,
Think time takes 60 Time Units.
What to do
Write a Java program to simulate the above system. The input to the program should be through command-line parameters as follows:
1. The total number of time steps for the run, S, integer > 100; default = 100.
2. The ready queue type, integer, 1:FCFS, 2:SJF, 3:RR, 4:MLFQ, 5:lottery; default = 1.
3. The minimum quantum size, Q, to use as a basis of RR and MLFQ, integer > 0; default = 1.
4. The maximum number of Type-4 jobs, N, integer [0 .. 100]; default = 5.
5. The expected number of new jobs arriving per time unit, v, double [0 .. 1]; default = 0.5.
6. If implemented, the minimum number of tickets, t, integer > 0; default = 5.
7. If implemented, the maximum number of tickets, T, integer > t; default = 100.
8. If implemented, the speed of giving/taking tickets, c , multiple of Q, integer > 0; default = 0.
Choose an appropriate value for Q and v, Let N=20 and S=100,000 and run your program 5 times using the same values of Q, v, N, and S but each time with a different Queue type. Also, if implemented, choose suitable values for lottery parameters, t, T and c. Show the contents of all system queues, only for the first 20 time steps. After each run, your output should also show all your input values, the queue type used, and all the statistics reported by the statistics-collecting module.
Discuss the statistics coming out of the five runs as to the effect of the scheduling algorithm, quantum time, job types and their numbers, the expected value, and so on
I have more details also if you interested with my project i will send it to you