CMSC412: exam 3 info
-
Questions will be from three areas
(below, approx means ±10%):
-
Deadlocks as covered in class and in text (approx 30%)
-
Filesystems (including GeekOS filesystems) (approx 30%)
-
Multi-threaded programs (approx 40%)
-
Regarding deadlocks, here are some typical problems:
-
Given a state of processes, resources and allocation:
determine whether the system is deadlocked, safe, unsafe, etc.
-
Given an pattern of resource usage,
would you choose prevention, avoidance, or detection and recovery.
-
412-S12-Exam 2, problem 3 is an example.
-
Regarding filesystems and GeekOS filesystems:
-
Understand the filesystem note.
-
Understand the class discussions on filesystems
(e.g., semantics of entry sharing/deletion).
-
Understand FAT, UFS (as covered in the note and in class).
-
Get a "global" understanding of project 5
(including interaction with disk,
what is done in hardware,
what is done in software,
how it affects the rest of the system, etc.).
-
Understand the discussion slides and the Piazza discussions
of project 5.
-
Understand GOSFS and PFAT.
-
Example problem: Come up with filesystem
tailored for a device whose blocks fail regularly.
-
Example problem: In UFS, assuming that the root directory's inode
is in memory,
give the sequence of fs blocks that need to be read
in order to obtain data block 10 of the file /x/y/z.
-
Of course, retain your "global" understanding of the GeekOS distribution
as covered in the GeekOS overview note:
subsystems, context switching, signal handling, kernel vs user modes, etc.
-
Regarding multi-threading, understand the following:
-
All parts of the note on multi-threaded programs,
including all the problems and solutions covered there.
-
Meaning of locks, semaphores, awaits.
(In each case, know both weak and strong.)
-
Implementing (weak/strong) locks for various platforms:
-
Atomic reads/writes only
(Peterson, Bakery, N-process lock using 2-process locks).
-
Atomic reads/writes augmented with atomic test-and-set or atomic swap.
-
Disabling interrupts and access to PCBs.
-
Writing programs using awaits as the only synchronization
construct.
No busy waiting.
-
Writing programs using semaphores as the only synchronization
construct.
No busy waiting.
-
Converting a program using awaits to one using semaphores.
-
Example problems: 412-S12-Exam 1 problem 3; 412-S12-Exam 2 problem 5;
relevant problems from 412-F12 exams 1 and 2.
-
Topics covered thus far.
-
412-S12 exam 1 and solution.
-
412-S12 exam 2 and solution.