Operating Systems 1

Tutorial 1

  1. Why (historically) were operating systems introduced? Do(es) the same reason(s) apply today?
  2. "PCs, unlike mainframe computers, do not need a multi-user operating system." Agree or disagree? Why?
  3. Would you consider the 'filesystem' to be part of the operating system? In what sense is the file system an integral part of the OS? Under what circumstances would a file system definitely not be part of the OS?
  4. What might be an example of a 'process' on a Windows PC?
  5. Why must the processor registers be stored when a task-switch occurs?
  6. What is meant by the term 'virtual machine'? Why is it a useful model?
  7. What are the advantages of a 'layered' operating system? What are the disadvantages?
  8. The number functions and facilities on modern operating systems is large and growing. Why might a 'microkernel' architecture be appropriate in this context.
  9. Give an example of a 'server' process in a microkernel operating system.
  10. Many (most) modern CPUs have a 'user' mode and a 'supervisor' ('kernel') mode. Early versions of the Macintosh OS did not make use of 'user' mode (and ran all applications code in supervisor mode). What would have been the reasons for changing the design (to make use of user mode)?
  11. If a system has only one CPU, what does it mean to say that two tasks are 'concurrent'?
  12. What does the 'dispatcher' do in a multitasking system. How is it different from the 'scheduler'?
  13. What circumstances trigger a call to the scheduler and dispatcher?
  14. Neither 'blocked' processes and 'runnable' processes are currently running on a CPU. What is the difference between them? What might cause a 'blocked' process to become 'runnable'?
  15. What is a 'critical section'? Can 'race conditions' occur in a single-tasking system?