Site hosted by Angelfire.com: Build your free website today!

Possible Final Exam Questions


The following are exams questions you can expect to see. Please add more as they become available.


Question 1 (4 Marks)

You are a software engineer for SmithNet Inc, a company specializing in network servers.

There is a bug in the latest release of the server software that causes network messages to be corrupted. Fellow engineers have been trying to fix the bug but they have only been able to discover the following.

  1. Messages sent are sometimes stopped in the middle of the transfer.
  2. If an entire message is sent, the front of the message is at the end, the end of the message is at the front, and the middle of the message is a core dump of the server's registers.
  3. Outgoing messages for two completely different processes are commonly XOR'd together and the result is sent to both processes.
  4. Any incoming message is ignored until the SIGALRM is received approximately every 20 minutes and even then the alarm is frequently ignored.
  5. Any incoming messages that query the integrity of the server cause the server to send back a large VOLUME of messages, virtually silencing the original server.
  6. Any incoming message that passes the integrity query will simply get a reply message containing directions on how the server established its own PSP.

(Is it coincidence that all of these sound very much like Smith giving a lecture??!?)

Rather than fix any of these problems, the company has decided that you should re-write the messaging sub-system. (You do expect, however, that the problem exists within the kernel but when you mention this to Mike, your project manager, you are asked to write a complete analysis of your findings, in triplicate, and then design, develop, test, and document a series of tests that will prove your assumption is correct. You find this unreasonable and decide it is easier to keep your mouth shut.)

You are given the following code segment that is used as a basis for the entire communications sub-system.

        #include 

        #define Reg0 scratchR0
        #define Reg1 scratchR1
        #define BIG_DADDY scratchR0

        Reg0 = COMP(Reg1), Reg1 = 3.1415926;
        Reg1 = BIG_DADDY - Reg0;
        SetIOP(HRDATA, Reg1);

Your first task is to correct the mistakes in the above code segment so that it works as expected. You remember from your 515 class that it is best to write self-documenting code and you will use this style when writing the messaging sub-system.

Once you have completed correcting the above code segment, you are responsible for implementing the messaging protocol (based on TCP/IP). The server is expected to be used in military environments so it is necessary to write the messaging sub-system in a way that will allow the server to continue to send and receive messages in the event the computer is destroyed by enemy fire.

The majority of the marks for this question will be awarded for successfully implementing the messaging sub-system. Bonus marks will be awarded if you implement the kernel as well, fixing the bug that you suspect causes the messaging problems.

Question 2 (20 Marks)

Describe how your PSP helps the economic situation in Bosnia. Bonus marks will be awarded if you use the correct names and titles of people involved.

Question 3 (2 Marks)

How much wood would a woodchuck chuck if you could chuck Smith out of a moving car?

Question 4

...