Marquette University logo      

COSC 125 / COEN 183 Operating Systems
Final Examination, May 2009

 

Directions:

Read and follow the directions.

  • Write on five of the six questions. Each question is worth 20 points. If you write more than five questions, only the first five will be graded. You do not get extra credit for doing extra problems.
  • Read the entire exam. If there is anything you do not understand about a question, please ask at once.
  • If you find a question ambiguous, begin your answer by stating clearly what interpretation of the question you intend to answer.
  • Begin your answer to each question at the top of a fresh sheet of paper. [Or -5]
  • Be sure I can read what you write.
  • Write only on one side of a sheet.
  • Be sure your name is on each sheet of paper you hand in. [Or -5]

Problem 1 Acronyms and Definitions

For each acronym,

  1. Give the phrase for which the acronym stands (in the context of computer operating systems)
  2. Give a careful definition

If there is more than one correct answer (in the context of computer operating systems), I will accept any one correct answer.

Warning: A definition that starts "Z is when ...," or "Z is where ..." earns -5 points.

  1. FCB
  2. RPC
  3. SMP
  4. TLB
  5. INODE
  6. SSTF
  7. RAID
  8. HTTPS
  9. MAC (NOT an Apple computer)
  10. DNS

Problem 2 Disk Scheduling

  1. What are the criteria for selecting a good disk scheduling algorithm? What does each mean?
  2. List and describe four disk scheduling algorithms
  3. Which is best? Why?

Problem 3 TCI/IP

Aaron explained that the TCP/IP "stack" consists of four layers:

  1. Application (or Process) Layer
  2. Transport (or Host-to-Host) Layer
  3. Network (or Internet) Layer
  4. Physical (or Network Access) Layer

Assume that you are the programmer of an application that expects receive a message from some application on another machine. Some message arrives at your machine as signals in the Ethernet cable.

Describe what the TCP/IP stack does with the message from that point until it hands your program your message. How does it decide the message is for its machine? How does it decide the message is for your application? What else must it decide? What instructions must you have provided to the stack before it knows what to do with your message?

Problem 4 File Allocation

Figure 11.7 from our textbook illustrates the file allocation table.

[Insert Figure 11.7 here]

Explain disk file management using a file allocation table.

Your answer might discuss the overall strategy, what constitutes a file, what constitutes a directory, where file and directory is stored, how files and directories are accessed, how free disk space is managed, and advantages and disadvantages.

If you don't know, make intelligent guesses based on the figure and your understanding of file management.

Problem 5 Tricky C Program

Here is a tricky C function that might appear in the context of XINU memory management:

     struct memblock
     {
             struct memblock *next;  // pointer to next memory block
             ulong           length; // size of memory block (incl. struct)
     };                     

     // Allocates space using getmem(), and automatically hides accounting
     //  info in the two words below the memory region.  This allows a
     //  corresponding call to free() not to require a request size parameter.
     void *malloc(ulong nbytes)
     {
             struct memblock *block;

             // Round request size to multiple of struct memblock.
             nbytes = (nbytes + 7) % sizeof(struct memblock);
             block  = getmem(nbytes);
             if (block = SYSERR ) return SYSERR;
             // Back point up one slot.
             block  = block - sizeof(struct memblock);
             // Store accounting info.
             block.next   = block;
             block.length = nbytes;
             // Return pointer to useful part of memory block.
             return (block + sizeof(struct memblock));
     }

What is wrong with this code?

Problem 6 Real-Time Networking

You are designing a real-time control system that must monitor readings from multiple sensors (input), perform certain processing, and possibly trigger several activators (output). Examples include some medical systems, robotic control, air traffic control, building environment control, warehouse control, etc.

To communicate with the sensors and activators, you need a wired network. You have three choices:

  1. Standard Ethernet
  2. An industry standard network - widely used in your industry, but your team knows little about it
  3. Develop your own proprietary network
Your boss asks
  1. List advantages and disadvantages of each of the three choices
  2. Which would you recommend?
  3. Why?

Hint: I insist on an unambiguous recommendation. "It depends" gets you fired (and a zero on this question). Wish you had more information? Welcome to the world. You may wish that 10 times a day for the next 40 years. Do the best you can with the information you have.

 

 

 
  Marquette University. Be The Difference. Marquette | Corliss |