Sample questions for the Final

The sample questions are indicative of the level of difficulty - not coverage.

Approximately 10% of the questions in the final will be from midterm topics.

You can bring one letter-sized sheet having notes in your own handwriting to the final. Sharing of notes is not permitted.

  1. A file system checker has uses two counters for each disk block: inUse and free. After a pass, the counters have the following values:
        inUse: 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0
        free:  0 0 0 1 1 1 0 0 0 1 0 1 1 0 1
    
    What are the errors?
  2. What are the activities of the kernel when a file is opened?
  3. A distributed system using mailboxes has two IPC primitives: SEND and RECEIVE. The latter primitive specifies a process to receive from, and blocks if no message from that process is available, even though messages may be waiting from other processes. There are no shared resources, but processes need to communicate about other matters. Is deadlock possible? Discuss.
  4. A computer system has six tape drives, with n processes competing for them. Each process may need two drives. For which values of n is the system deadlock free?
  5. Consider a system that supports 5000 users. Suppose you want to allow 4990 of those users to access one file.
    1. How would you specify this protection scheme in Unix?
    2. Could you suggest a better protection scheme?
  6. Instead of copying an executable to the swap area and paging from it, some system page it directly from the file system. What are the disadvantages of this approach?
  7. Consider the following sequence of memory references from a 460-byte program: 10, 11, 104, 170, 73, 309, 185, 245, 246, 434, 458, 364 Assume a page size of 100 bytes. What are the reference string and distance strings for LRU algorithm?
  8. Explain why it is easier to share a reentrant module using segmentation than it is to do do when pure paging is used.
  9. Semaphore waiting lists are often implemented as queues served in FIFO order. Could they be implemeted as stacks? What problems might this implementation cause?