CPSC 331 Operating Systems Fall 2005

Exam Review Information

Midterm

The midterm will have two parts - an in-class part on Friday 10/21 and a take-home part which you will have the weekend to complete. The take-home part will be written with the intent of taking 1-2 hours to complete, though your familiarity with the material will greatly affect how long you spend working on it.

The in-class part of the exam is closed book/closed notes.

The take-home part of the exam is open book/open notes - meaning that you may use your own copy of the course textbook, your own notes made prior to the handing out of the exam, and any materials or examples posted on the course webpage. You may not use any other resources and may not talk to anyone else about the exam (even innocent-sounding comments such as whether you think the exam is easy or hard). You may use a computer to test your solutions, unless otherwise directed on the exam. You may ask/email me clarification questions; any answers will be posted on the announcements page and emailed to everyone.

Topics

The midterm will cover processes, threads, synchronization, deadlocks, and CPU scheduling. You are responsible for the material in the assigned reading (SGG chapters 1-7, except for material designated as "additional background only"), even if it wasn't specifically covered in class. You are also responsible for the Nachos material covered in the synchronization and user processes projects. You may be asked to write programs which use Unix system calls like fork() and exec(), Pthreads thread manipulation routines for creating and joining threads, and/or POSIX/Pthreads synchronization primitives (semaphores, locks, condition variables).

Sample Questions

The end-of-chapter questions are a good starting point, and the textbook website has additional practice exercises with solutions.

Since the in-class portion is closed book/notes and has a fixed time limit, expect shorter, basic concept questions. These might be definitions, factual recall, or other short answer questions. It is extremely likely that some or most of these questions will be taken from the end-of-chapter questions and/or the practice exercises linked above. You will not be asked to write a program using specific Unix or Pthreads system calls or library routines, but you might be asked to read such a program and explain something about how it works.

Since the take-home portion is open book/notes and has a more flexible time limit, expect more synthesis or application-of-knowledge kinds of questions rather than simple recall. For example, the following sorts of questions are particularly likely (though not guaranteed):

You might be asked to write a program using specific Unix or Pthreads system calls or library routines.


Final

The final exam will be a take-home exam, which will be handed out or otherwise made available at the end of class on Friday 12/9. It will be due at the end of the scheduled final exam timeslot (4:30pm on Tuesday 12/13). You may hand in the exam early. Late submissions will not be accepted.

The exam will be written as if it were being given in the three-hour scheduled timeslot, but you may spend as much or as little time working on it as you wish. The exam will be handed out in a sealed envelope (or other format in which the contents are not immediately revealed). You may study with others, ask questions, get help on the Nachos project, etc. as much as you want before starting the exam - but once you open the envelope/view the exam for the first time, you may use only authorized materials (see below) until the exam has been handed in.

The exam is open book/open notes - meaning that you may use your own copy of the course textbook, your own notes made prior to the handing out of the exam, and any materials or examples posted on the course webpage. You may not use any other resources and may not talk to anyone else about the exam (even innocent-sounding comments such as whether you think the exam is easy or hard). You may use a computer to test your solutions, unless otherwise directed on the exam. You may ask/email me clarification questions; any answers will be posted on the announcements page and emailed to everyone.

Topics

Approximately 2/3 to 3/4 of the exam will cover new topics since the midterm (memory management, virtual memory, file systems, protection and security, Linux/Windows XP). You are responsible for the material in the assigned reading (SGG chapters 8-11, 14-15, and 21-22, except for material designated as "additional background only"), even if it wasn't specifically covered in class. You are also responsible for the Nachos material covered in the memory management, virtual memory, and file system projects.

The remainder of the exam will cover topics covered by the midterm (processes, threads, synchronization, deadlocks, and CPU scheduling, including SGG chapters 1-7 and the Nachos synchronization and user processes projects). See the midterm review information above for review information about that material.

Sample Questions

The end-of-chapter questions are a good starting point, and the textbook website has additional practice exercises with solutions.

Since the exam is open book/notes and has a flexible time limit, expect more synthesis or application-of-knowledge kinds of questions rather than pure recall of definitions or facts. Questions may include (but are not limited to):

It is not unlikely that at least some questions will be taken or derived from the book's end-of-chapter and practice questions.