Tutorial Week 2


Q1: What are the two main responsibilities or identifying features of an Operating System?

Q2: What is multiprogramming?

Q3: Why was timesharing not widespread on second generation computers (also so-called batched systems)?

Q4: Which of the following instructions (or instruction sequences) should only be allowed in kernel mode?

  1. Disable all interrupts.
  2. Read the time of day clock.
  3. Set the time of day clock.
  4. Change the memory map.
  5. Write to the hard disk controller register.
  6. Write all buffered blocks associated with a file back to disk (fsync).

Q5: On UNIX, which of the following are considered system calls? Why?

  1. read()
  2. printf()
  3. malloc()
  4. open()

Q6: What are the characteristics of a good operating system?

Q7: Why must kernel programmers be especially careful when implementing system calls?

Q8: Why is recursion or large arrays of local variables avoided by kernel programmers?