Parallel Assignment (due on Wednesday, 29th November during office hours)

 

In this assignment, you will be modifying the existing Linux Kernel to provide Real Time Support in its scheduler. This assignment must to be done in groups of two. You would not be provided with machines to modify the kernel. You will be using your own machines for this purpose. This assignment is an alternative to projects 3 and 4 of the storage server and is worth 50 points.

 

 

Motivation!!

Linux is a multi-process Operating System, that is, it can perform multiple tasks at the same time. Among other things, the system performance is greatly affected by the choice of the process to run at a given moment of time. The off-the-shelf Linux kernel employs a mixture of strategies to govern process scheduling and execution. It takes great care to ensure that all waiting tasks are given a chance to run, and so avoids starvation. This would be a requirement for any general-purpose kernel so that all processes, even those with a very low priority, get CPU time. This scheduling policy is an obvious performance limitation for real-time applications. 

 

What to do?

In this project you are expected to proceed in the following phases:

·        Understand the current scheduler in Linux and its limitations for real-time applications. Come up with a possible scheme to improve the performance.

·        Go through the Linux kernel code and measure statistics to see how bad the current scheduler is for real-time applications.

·        Modify the Linux scheduler to implement your scheme (preferably EDF or RM).

·        Gather statistics and analyze the performance improvement.

Each phase should take around a week. I would suggest you plan according to it, since you have precisely 4 weeks to complete this assignment.

For this assignment, it is recommended that you use Red Hat 6.1 or above. Mandrake, Debian, or previous versions of Red Hat are also acceptable.

 

How will you be graded?

Your grade will be decided as follows:

·        One informal presentation (15 points): You will give one informal presentation of 10 minutes. The “informality” is there because I do not expect you to use slides. You would use the blackboard instead. The presentation would be either on the 13th of November from 4:00 to 5:00, 15th of November from 3:45 to 5:00 or the 17th of November from 3:00 to 4:30. You will have to book a 10-minute slot with me beforehand. Points would be based on:

o       Background work

o       Delivery of presentation

o       Statistics measured

o       Proposed modification

o       Overall knowledge

·        The submitted kernel (20 points): The kernel you submit will have to be booted by you on a test machine (that I will provide) and a sample application will be run. The comparison would be made with the same application running on the original kernel. Points will be based on efficiency, correct implementation, usability, and statistics generation.

·        Project write-up (15 points):  This should be in the form of a paper. You should describe the existing scheduler, how bad it performs, how you planned to modify it, the kernel changes and performance improvement. Include graphs or charts in the statistics. Note that this will carry more weight in you could not complete the project. In other words, the paper should describe the work put in by you. Remember, not to copy stuff from any place. You will lose a lot of points if I come across statements I have read before.