Logistics

The exam will take the place, time, and duration of the usual lecture (see the course syllabus).

The exam is CLOSED note and CLOSED computer.

You are allowed to bring ONE 8.5" x 11" (double sided) cheat sheet with any information you'd like with you for consultation into the exam.

The exam may feel long, but that's OK! Take your time, a deep breath or two, and don't worry if you don't finish everything -- it will be likely that your classmates do not either, which will likely be by design.



Topics

Exam II will cover the conceptual topics (with a wee bit of programming and code analysis) since the last exam. These include:

  • System Calls: system call interface, purposes, privileged instructions, use in C code, interaction with buffers.

  • Processes: definitions, comparisons to programs, process hierarchy, process memory image, process control blocks, process states, fork(), exec(), wait() system calls, and roles in basic synchronization.

  • Interprocess Communication: message passing vs. shared memory.

  • Threads: heavyweight vs. lightweight, differences between subprocesses and sibling threads, memory footprint of threads, benefits of multi-threading, thread libraries.

  • Scheduling: basics, context switches, scheduling algorithms, metrics of scheduling success and which algorithms excel at which, Gantt Charts, average waiting time computations.


What will NOT be on the exam:

  • Thread library applications in C



Question Types

The examination format may include:

  • Definitions and short answer questions

  • Multiple choice

  • Drawing Process Trees / Job Queues / Process Memory Images

  • Structured-response code writing (I give you a skeleton, you fill in the requested parts)

  • Code triage (identifying something wrong with code some noob has written)


Be prepared to answer some questions similar to those on the assignments and in-class exercises.

Furthermore, although I won't ask you anything about mechanics we haven't covered in class, you might be expected to apply the mechanics we've learned about in a way that we didn't see in class. If you thoroughly understand the material, there should be no surprises, but still challenges.



Preparation

Here is my suggestion for preparation order:

  1. Re-read my course notes, re-doing the exercises if you aren't clear on any of them. Importantly: try to answer each "question" box yourself before revealing its answer.

  2. Read the relevant textbook chapters outlined in the Syllabus.

  3. Study any available classwork and homework solutions.



  PDF / Print