Operating Systems
1nd semester 1434-1435/2013-2014, Project
Instructions
• There should not be more than 4 students in a group.
• The due date for the project is: 11/12/2013
• To get the grade, you must demonstrate the project.
• All members of the group should be present during the project demo.
• Late submission of project is not allowed.
You are to design and implement a program to simulate shortest job first process scheduling with and without preemption. The program must maintain a ready queue and a list of waiting processes. The simulation will run in one unit time steps.
You need to have some program to generate at least 1000 processes each with a mix of CPU burst and IO burst. CPU bursts should be on average 5 to 100 time units. IO bursts should be on average 50 to 1000 time units. The process should have at least 5 to 20 pairs of CPU and IO bursts (chosen randomly). The process should end in CPU burst. Assume
2 time units to do context switch. Use time quanta of 5, 10, 50, 100, 500, 1000, time units. The data is to be generated using a random number generator and saved in a file in following format:
process id,arrival time,cpu burst, io burst, …,cpu burst -1(end of process)
Example:
1,0,20,55,5,600,15,110,30,200,10,199,19,163,10,-1,
2,0,5,45,13,49,50,50,15,55,80,60,45,50,7,56,67,51,100,56,34,50,45,53,5,-1,
3,20,50,200,55,200,60,200,65,-1
…
Pn
You should have multiple data files to run the simulation multiple times.
Assume ready-queue capacity of 20, 100, and unbounded (e.g. if capacity is 20, and you have a process arriving, you cannot put it on the ready queue; it has to wait).
Your project report should have the tables presenting following parameters for various quantum values.
• Average turnaround time
• Maximum turnaround time
• Average wait time
• Maximum wait time
• CPU utilization
• Throughput (number of jobs processed per hour).
• Terminate the simulation.
Rules
1. This Project is to be conduct by groups of three students. Groups Of more than three students are not accepted. Groups Of two students are strongly discouraged and can only be accepted with a special permission from the course instructor.
2. All The members of a group must have the same tutorial instructor.
3. All Students must submit the list of their group members within one week of the announcement of this project. Once The groups are chosen, no student can change the group without a valid reason and the permission of the course instructor.
4. Every Member of the group must participate in all parts of the project: designing the software, programming and writing the report. Members Of the same group may receive different marks according to their participation in the project.
5. The Submitted software will be evaluated in a demonstration to which all the group members must attend.
6. Any Member of the group who fails to attend the demonstration without a proper
excuse (consult the university and college regulations) shall receive the mark 0 In the project.