CS380L: Advanced Operating Systems

Emmett Witchel

Assignment #1

Scheduling

The goal of this assignment is to modify the Kernel scheduler.

Modify the kernel scheduler to recognize a process with a special name (such as pluto_not_planet). What if the name is longer than 16 characters (discuss in writeup)? Every time a process with that name is run, the kernel should give it the greatest possible non-realtime priority. What kinds of priority are there, and what is the best way to boost a process' priority? Discuss the issues in your writeup.

Devise an experiment to compare the throughput of processes at different priority levels, and your specially named process.  How does your technique interact with scheduling of realtime processes?  Include them in your experiments. What about I/O-bound vs. CPU-bound workloads?  Your write up should include at least two graphs and some comparison. You might want to use getrusage to measure resource usage. Look at vmstat and iostat for other relevant statistics. sysctl can give you information about the configuraiton of your OS. How can you get all of your test processes to start at the same time?

Describe a possible use for this scheduling hack.

Please report how much time you spent on the lab.