Assignment 5: Study Scheduler's External Observable Behaviour Through Test Cases


What you will learn:

1. How the kernel schedules different processes through multiprogramming.
2. Whether the kernel favors specific processes
3. How much time a process spends in different queues of the OS.
4. How other processes running in the system affects performance of a given process.
5. The CPU utilization of the system

Assignment

Write a collection of  sufficient no. of processes which carry out the following different types of tasks independently:

  1. Only computation
  2. Only printfs
  3. Low computation, heavy console output (printfs)
  4. Heavy File I/O
Tune each of the above process to run for 30 seconds when it runs standalone.
 Then run them simultaneously with different combinations.
 Gather per process and system statistics
e.g. required cpu time, system call time, turnaround time, wait time, penalty ratio, system cpu utilization in each test combination.

What to submit

 Report your numbers in a file with an explanation about your conclusions/observations.
 Submit your programs and the observation report.

Be imaginative in choosing/tuning your processes so that you can gather interesting facts related to what we have
 listed in 'what you will learn' section of this document.

Some Pointers

You can use procinfo, getrusage, getrlimit etc for gathering process statistics.

Submission

Assignment no=5.
Submit your file using ~oslab/submit script as in: ~oslab/submit 5 myfile
submit script accepts assignment no. in its first argument. Any number of files may be submitted through subsequent arguments.
You may submit any number of times before 6:00pm. Old files are overwritten in resubmission.

Deadline: 6:00pm
Enjoy.