Preparedness Test

To gain a better understanding of the prerequisite concepts necessary for success in this course, please take this brief diagnostic preparedness test. This test is for prospective students’ personal purposes, to gauge readiness for this graduate-level Advanced Operating Systems course.

  1. Do you know the conditions under which a process/thread may join the ready queue and leave the ready queue?
  2. Can you name all the steps that happen during a context switch?
  3. Can you name at least three different types of inter-process communication?
  4. Do you know what is meant by Data Race in a parallel program?
  5. In a preemptive scheduler, do you understand what the word “preemptive” refers to?
  6. Do you understand the difference between “round robin”, “shortest-job-first”, and “priority scheduling”?
  7. Do you know the name for a section of code that accesses variables or resources that are shared between multiple threads of execution?
  8. Do you know the necessary and sufficient conditions for deadlock to occur?
  9. Do you understand why, when, and how to use mutual exclusion?
  10. Can you describe the role the translation look-aside buffer (TLB) plays in a virtual memory system?
  11. Do you understand the difference between a “segment” and a “page” in a memory hierarchy?
  12. Do you know the difference between a “page” and a “frame” in a virtual memory system?
  13. Do you know the difference between “first-in, first-out”, “least recently-used”, and “least-frequently-used” replacement policies?
  14. Do you know what it means for a process to “trap” to the kernel?
  15. Can you name the mechanism by which asynchronous hardware events may notify the CPU (and thus the kernel) of an event?