CSCI 315 Exam 1 Review

The questions for exam 1 will be taken from/similar to/based on the following, and on the homework and lab exercises you've been assigned. They cover the topics from chapters 1 to 8.
  1. Identify the following concepts.
  2. Explain each of the following scheduling algorithms. Which can be preemptive?
  3. In lecture we discussed three algorithms for solving the two-process critical section problem. Explain what each is. For the first two, specify an execution order that shows they don't work.
  4. How does multiprogramming improve the performance of an operating system?
  5. What are the two ways to define Java classes that can execute as threads? Give the code showing how to declare and start a thread for each of these ways.
  6. What are the three conditions that solutions to the critical section problem have to meet? You should be able to explain in simple terms what the detailed definitions are trying to accomplish.
  7. Give an example (in code or pseudo-code) showing a problem that can result when two processes share a common memory location.
  8. What is the main purpose of an operating system?
  9. What is the difference between user mode and kernel mode? How does the system keep track of which mode it's operating in?
  10. What information about processes is needed to allow multiprogramming? Where is this information stored?
  11. What are the steps an operating system takes to handle an interrupt (or exception in general)?
  12. List the states that a process may be in. Draw a diagram showing the possible transitions between theses states.
  13. How does UNIX create a new process?
  14. How do pipes work in UNIX?
  15. Define short-term and long-term process scheduling. Are there differences in the types of algorithms we can use for these? Why?
  16. What are the various criteria we use to study the performance of a CPU scheduling algorithm?
  17. What happens during a context switch? Why can frequent context switches be a problem?
  18. Distinguish threads from processes. What benefits does using threads provide?
  19. What places can thread scheduling be done? List an advantage and a disadvantage for managing threads in each of these places.
  20. How do we estimate the length of next CPU burst?
  21. What are the three classic process synchronization problems we discussed in the lectures? Describe briefly the differences among those three problems.
  22. What are the four necessary conditions for a deadlock to occur?
  23. Given a set of processes, resources, and resource requests, draw the resource allocation graph after each request and state whether or not a deadlock is possible.
  24. In general, a cycle in a resource allocation graph indicates only the possibility of a deadlock. Under what special condition does it indicate the existence of a deadlock?
  25. What are the different ways of dealing with deadlock?
  26. How does the Banker's algorithm work? You should be able to carry out a hand execution of the algorithm.