CSCE 351 Operating System Kernels

Fall 2001
Steve Goddard

Team Programming Assignment 2 (PA2), November 1

 

Due: 6:00pm November 12

_________

Macros vs. Function Calls

In this assignment each team will modify the hwint_master and hwint_slave macros in mpx386.s so the operations now performed by the save function are performed inline.

Measure the change in code size due to making the change.

Measure the change in performance, if any due to the code change.

Are macros or functions better in this case?  Explain.

Alternate Kernel Boot Option

Making the changes described above will require rebuilding the MINIX kernel.  This is a very risky thing.   If you make a mistake in the code change or in the build process, the system may simply not boot!  A common technique to avoid losing everything is to always keep a “known, good” kernel from which you can boot.  This can be done by making a boot diskette or by changing the boot/loader program to provide the option of loading the stable kernel or you new evaluation kernel.

For this assignment, modify the MINIX bootstrap/loader code achieve this goal. You should be prompted with choice of loading the original kernel or one of the evaluation kernels you have built.

Grading Policy for Programs

The programs you hand in should work correctly and be documented. When you hand in your programming assignment, you should include:

1.      A program listing containing in-line documentation clearly identifying what changes you made.   Only turn in files that you changed (or created).

2.      A separate (typed) document of approximately two pages describing the overall program design, a verbal description of "how it work,s" and design tradeoffs considered and made (if any).  Also include answers to the questions asked above.

3.      A separate description of the tests you ran on your program to convince yourself that it is indeed correct and how you timed the changes in performance. Also describe any cases for which your program is known not to work correctly.

4.      A make file that compiles your program(s).

Please hand in your source file(s), the Makefile, and your documentation using the Web handin program. If your program is handed in after 6:00 pm on November 12 it will considered late. 

The program should be neatly formatted (i.e., easy to read) and structured and documented.  Use the handin program to submit your program(s) for grading.  This is assignment 2.  Your grade will be determined as follows:

Program Listing

works correctly 40%

in-line documentation 15%

quality of design/readability 25%

Design Document 15%

Thoroughness of test cases 05%