1. What is the definition of "progress" in the critical section problem? What can happen if there is no progress? How is this effect different from the result of there being no "bounded wait"?
  2. Give one example when the OS has to deal with a critical section problem.
  3. In the Bakery algorithm, what is wrong with defining taking a number as being also part of the critical section. (In the Bakery algorithm, how can two processes get the same number? Why can't we prevent this by using some form of lock?)
  4. In the Bakery algorithm what unfortunate result would occur if we used the process id to determine the order of entry into the critical section. Which CS requirement would not be met?
  5. What basic management functionality must the operating system provide specifically in a multi-process system?
  6. Statistically speaking, are most processes io bound or CPU bound? Explain why this is.
  7. What mechanisms does the OS provide to enable IPC?
  8. What is an atomic action and what is its relevance to the critical section problem?
  9. What processes are in the ready queue and which are not?
  10. What data defines a processes "context"?
  11. In a multi-threaded environment, What are the pros and cons of using a one to one user kenrel thread model as opposed to a one to many model?
  12. In a many to many user/kernel thread model, are there equal numbers of kernel and user threads, why?
  13. Is a realtime system by definition more expensive than a non-realtime system?
  14. An imbedded single process realtime system obviously need no process scheduling. In a multiprocess system, where one process is realtime and others are not, how is it possible to provide realtime support for the one (or more) processes needing it?
  15. What is the role of a device driver? Is it part of the OS?
  16. What is the difference between a software and a hardware interrupt? Why, or in what case, is a hardware interrupt needed?
  17. How does the Operating system preempt a process while that process is occupying the CPU, after all, the OS is not in the CPU?
  18. What is the advantage of Direct memory access (DMA) over other device driving systems?
  19. What is processor affinity?
  20. Does a multi-level feedback queue suffer from starvation? Why?
  21. What is a memory stall?
  22. List from fatest to slowest the types of storage medium a modern computer can use.
  23. What is the function of the bootstrap program? In what type of storage medium does it usually reside?
  24. Explain why there is a need for both a job queue and a ready queue? What advantage does have two queues have over just one? Hint: Relate it to swapping.
  25. In a time sharing OS, if process P1 is using the CPU now, how can the operating system perform a Context Switch, after all, the OS is not in the CPU now? If the OS were in the CPU, then P1 would be switched out, by definition, and the CS would have already happened. So how is the OS able to stop P1 and perform the CS?
  26. What are the pros and cons of message passing versus shared memory for IPC?
  27. In a pre-emptive OS, what happens if the Kernel is in the middle of a request from a process when the process is preempted (time slice finished)? What different approaches are there for dealing with what the kernel should do and what are the pros and cons of each?
  28. Describe how a multi-level feedback scheduling queue works?
  29. Why is it advisable to mask an interrupt when dealing with the same interrupt type?
  30. Give an example of an application requiring a soft real-time OS? Give an example of an application requiring a hard real-time OS? Explain how you came to your conclusions.
  31. How can we reduce memory stalls?
  32. Why do OSs in multi processor environments maintain processor affinity?
  33. Assume processes arrived at the following times and had CPU bursts of the following durations, assuming a multi-programming environment, compute the average wait time.
    P1 Arrive at time 0ms , CPU burst 12ms
    P2 Arrive at time 5ms , CPU burst 75ms
    P3 Arrive at time 6ms, CPU burst 12ms
    P4 Arrive at time 7ms, CPU burst 9ms
  34. How would your answer change if you introduce a time slice of 10 ms (time sharing environment)?
  35. Explain two methods for load balancing in a multi processor environment?
  36. What is the difference between virtualization and simulation of an OS?
  37. When a program running on a virtualized OS makes a system call, how must this be handled by the underlying host machine?
  38. What is the difference between swapping and context switching? What does each achieve?
  39. What types of data need to be copied during a context switch? Give 4 examples.
  40. What is the size relationship between the timeslice and the time a context switch takes?
  41. Creating a hierarchial ordering of all resources prevents deadlock, specifically by which of the following:
    1. Denying Mutual exclusion
    2. Denying hold and wait
    3. Allowing preemption
    4. Denying Cirular wait
  42. Which algorithm(s) does not suffer from starvation:
    1. fcfs
    2. sjf
    3. rr
    4. priority
  43. on a system with 14 printers:
    Process Max Needs Allocation
    P0 10 5
    P1 7 2
    P2 9 3
    is this a safe state? UNSAFE
  44. on a system with 10 printers:
    Process Max Needs Allocation
    P0 8 1
    P1 2 2
    P2 7 2
  45. if P0 requests 5 more printers, will granting it create a safe or unsafe state? SAFE
  46. on a system with 15 printers:
    Process Max Needs Allocation
    P0 10 5
    P1 5 5
    P2 9 2
    is this a safe state? SAFE
  47. Which scheduling algorithm has by definition the shortest wait time:
    1. fcfs
    2. sjf
    3 (external ) priority
    4. rr
    5. depends on actual process scenario
  48. If the TimeSLice is very large, RR will essentially turn into which other algorithm:
    1. fcfs
    2. priority
    3. sjf
    4. remains rr
  49. If the time for a context switch is zero, the timeslice should be relatively larger or smaller than if the context switch took 20ms?
  50. Which scheudling algorithm(s) can suffer from "starvation"?
    1. fcfs
    2. priority
    3. sjf
    4. rr
  51. Given Process 1 with CPU burst time of 10, arrival time 0 priority 3 and process 2 with CPU burst time of 20 and arrival time 5 and priority 1 etc. and given time slice of 5 and aging every 5 seconds of wait time which of the 4 algorithms will have the shortest average wait time?