Sie sind auf Seite 1von 2

Cairo University OS Course

Faculty of Engineering Third Year


Computer Engineering Department Fall 2010

Operating Systems Project


Project Description:
It is required to develop a simulator that will allow you to assess the performance of different
process scheduling algorithms under different work mixes.
The simulator is divided into:
1. Process generator
2. Core

The process generator:


§ Implement a process generator that will generate processes having randomly distributed
parameters.
§ Use Poisson distribution for the arrival time or Exponential distribution for the inter-arrival
time.
§ Use Normal distribution for the rest of the process parameters i.e. runtime and priority.
§ Inputs to the process generator:
o Identifier for the file (for example, Processes0001.txt)
o Number of processes N.
o The mean of the Poisson or Exponential distribution for the Arrival time parameter.
o The µ and σ parameters of the Normal distribution for the rest of the parameters.
§ Outputs of the process generator:
o A text file, with the file identifier as its name, containing the generated values for
each process.
o The file format is as follows:
§ The first line contains the number of processes N.
§ The first line is followed by N lines. Each line contains the parameters for
one process only, separated with whitespaces, in the following order: Process
number, arrival time, expected run time, priority

The Core:
§ You are required to implement a simulator for evaluating and comparing the performance of
the following process scheduling algorithms:
1. First-Come-First-Served (FCFS).
2. Shortest Job First (SJF)
3. Highest Priority First (HPF)
4. Plain round-robin
5. A scheduling function that consists of weighted sum of process parameters.

§ Inputs to the simulator core:


o The user should be able to choose between different scheduling algorithms, and in
the case of algorithm [5], specify the weights.
o The user should provide an input for context switching constant.
o The user should provide an input for the time quantum, whenever applicable.
o For the SJF and HPF algorithms, the user can choose between the following 3 variants:
§ Non-preemptive
§ Preemptive at the arrival of a new process.
§ Preemptive at the end of a time quantum.

1
§ Outputs of the simulator core:
o The scheduling graph (time vs. process).
o The values of the performance evaluation metrics, such as: average waiting time,
average turn-around time, average weighted turn-around time, standard
deviation..etc.

Development Environment:
§ OS choice: Windows or Linux.
§ Language choice: use any visual, event-driven and object-oriented programming language.
Deliverables
1. A detailed Design Document containing:
§ The development environment and the language you chose.
§ A description of your simulator
§ Descriptions of the modules
§ A class diagram of your system.
2. A CD that contains:
§ A text file (named GroupNames.txt) that contains the names of your group
members.
§ All your source files
§ The final executable files
§ If your program requires installing additional add-ons, include it on the CD.
Group Size:
Work in groups of 3 or 4. Groups of 5 will not be allowed.

Due Date and Time:


th
3:30PM on the 15 of December, 2010.
Evaluation Criteria:
The most two important factors are:
1. The functional correctness of your scheduling algorithms.
2. The simulator Object Oriented Design.
A detailed evaluation sheet will be sent to you shortly.

General Notes:
1. Deliver the document and the CD to the mailbox of the TA responsible for your group.
2. Stick to the file format specified above for the Process Generator, as you will be given some
testing files with the same format to evaluate the efficiency of your scheduler.
3. The code should be clearly commented and the variables names should be expressive.
4. Late delivery is not acceptable.
5. Copying fragments of code across different projects will be severely penalized.
6. Don't try to make a fancy GUI.

Das könnte Ihnen auch gefallen