The table below lists the topics that have been covered by the UNM computer
science Ph.D. comprehensive exam over the last ten years or so.
To the right of each sub-category are the question numbers for that
particular category, the year they were asked, and how many points
they were worth. Clicking on the question number will lead you to the
question in a list sorted by topic. Clicking on the year will lead to
the chronologically ordered list.
Each topic receives a weight and rank based on how recent questions have been
asked about it, how many questions there were about that topic in all of the
available exams, and how many points they were worth. Note that some questions
appear more than once, if they fit into multiple categories.
The Gnumeric spreadsheet used to generate this table is available
here.
|
Topic |
Weight |
Topic Weight |
Rank |
Topic Rank |
Year |
Question |
Points |
Year |
Q? |
Points |
Year |
Q? |
Points |
Year |
Q? |
Points |
|
Distributed systems |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Consistency and coherence |
|
16.6 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(Sequential, weak, causal, entry, release, PRAM) consistency and coherence |
4.6 |
|
2 |
|
2003.0 |
1.3 |
15.0 |
2003.5 |
3.2 |
10.0 |
2005.5 |
3.3 |
20.0 |
2007.5 |
2.4 |
10.0 |
|
Memory model comparisons |
0.9 |
|
85 |
|
2005.0 |
2.4 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Causal consistency: vector timestamps vs. sequencer process |
1.8 |
|
40 |
|
2005.5 |
3.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Two-phase commit protocol for distributed transactions |
1.6 |
|
50 |
|
2004.5 |
3.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
ACID properties of transactions |
2.1 |
|
28 |
|
2007.0 |
3.1 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Ubiquitous computing; data exchange |
2.4 |
|
22 |
|
2004.5 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Consistency vs. performance |
3.1 |
|
5 |
|
2007.0 |
4.1 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Synchronization |
|
14.6 |
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Optimistic synchronization and concurrency control |
1.9 |
|
35 |
|
2006.0 |
3.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Distributed clocks (Lamport, ordering) |
3.1 |
|
7 |
|
2006.5 |
3.2 |
20.0 |
2007.5 |
2.2 |
10.0 |
|
|
|
|
|
|
|
Disconnection in sensor systems |
2.9 |
|
11 |
|
2006.0 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Election algorithms |
0.2 |
|
121 |
|
1997.0 |
1.1 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Memory write barrier |
1.1 |
|
58 |
|
2007.5 |
2.1 |
10.0 |
|
|
|
|
|
|
|
|
|
| |
Collective communication (e.g. ring) |
2.2 |
|
25 |
|
2007.5 |
3.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Degradation (fault tolerance, sensor/node blackouts) |
3.3 |
|
3 |
|
2007.5 |
4.1 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Networking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Design |
|
9.5 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Network (distributed) file system |
1.4 |
|
56 |
|
1999.5 |
1.3 |
20.0 |
2003.5 |
3.1 |
10.0 |
|
|
|
|
|
|
|
Memory bus vs. network speed |
0.0 |
|
128 |
|
1998.5 |
1.8 |
|
|
|
|
|
|
|
|
|
|
|
OS bypass |
1.5 |
|
54 |
|
1998.5 |
1.8 |
20.0 |
2001.5 |
1.7 |
20.0 |
|
|
|
|
|
|
|
OSI/ISO 7-layer model |
0.9 |
|
85 |
|
2000.5 |
1.5 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Ubiquitous computing; data exchange |
2.4 |
|
22 |
|
2004.5 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Header (packet) processing in a layered system |
0.8 |
|
95 |
|
2004.0 |
3.1 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Intelligent networks and apps.; e.g. a file system |
2.6 |
|
19 |
|
2005.0 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
RPC |
|
2.7 |
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
RPC marshaling |
0.7 |
|
103 |
|
2003.5 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
RPC and scheduling (migrating threads) |
2.0 |
|
32 |
|
2006.5 |
3.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Physical layer characteristics |
|
1.7 |
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
(Media) access guarantee in token ring and Ethernet |
0.8 |
|
95 |
|
2004.0 |
2.4 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Media access: CSMA/CD |
1.0 |
|
73 |
|
2006.0 |
2.2 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Routing |
|
3.9 |
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Distance vector routing vs. link state routing |
2.9 |
|
10 |
|
2005.5 |
2.4 |
10.0 |
2006.5 |
3.1 |
20.0 |
|
|
|
|
|
|
|
Routers (network layer) vs. switches (MAC layer) |
1.0 |
|
69 |
|
2006.5 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Protocols |
|
4.5 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
IP fragmentation and reassembly |
1.1 |
|
58 |
|
2007.5 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Time wait in TCP/IP |
0.9 |
|
85 |
|
2005.0 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Congestion control vs. flow control (in trasport protocol) |
1.7 |
|
45 |
|
2003.0 |
1.8 |
15.0 |
2003.5 |
2.4 |
10.0 |
|
|
|
|
|
|
|
TCP slow start for congestion control |
0.8 |
|
92 |
|
2004.5 |
2.2 |
10.0 |
|
|
|
|
|
|
|
|
|
|
System design |
|
11.6 |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Interrupt latencies vs. processor speed |
1.0 |
|
73 |
|
2001.0 |
1.4 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Memory latency vs. processor speed |
0.2 |
|
121 |
|
1997.0 |
1.7 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Bandwidth (easy) vs. latency (hard) |
1.0 |
|
73 |
|
2001.0 |
1.5 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Non-volatile memory with different performance characteristics |
1.8 |
|
43 |
|
2003.5 |
4.1 |
25.0 |
|
|
|
|
|
|
|
|
|
|
Power management; e.g. disk control from OS or app |
1.9 |
|
35 |
|
2004.0 |
4.1 |
25.0 |
|
|
|
|
|
|
|
|
|
|
Checkpoint-restart (e.g. with local non-volatile memory) |
1.9 |
|
35 |
|
2004.0 |
4.2 |
25.0 |
|
|
|
|
|
|
|
|
|
|
TLB faults handled by hardware or software |
0.8 |
|
92 |
|
2004.5 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Component diagnostics |
3.1 |
|
5 |
|
2007.0 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Operating systems |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Basics |
|
11.4 |
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Context switching |
0.9 |
|
85 |
|
2000.5 |
1.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Resource allocation |
0.4 |
|
111 |
|
1998.5 |
1.4 |
15.0 |
|
|
|
|
|
|
|
|
|
|
Memory allocation (fragmentation) |
1.0 |
|
61 |
|
2007.0 |
2.2 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Addressing: virtual vs. physical, TLB, etc. |
1.9 |
|
38 |
|
2000.5 |
1.3 |
20.0 |
2003.0 |
1.4 |
15.0 |
|
|
|
|
|
|
|
Polling vs. interrupts |
1.0 |
|
61 |
|
2007.0 |
2.4 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Priority inversion |
0.7 |
|
103 |
|
2003.5 |
3.1 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Double buffering |
2.1 |
|
28 |
|
2007.0 |
3.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Deadlock (avoidance vs. prevention) |
1.7 |
|
45 |
|
2005.5 |
2.1 |
10.0 |
2004.5 |
2.4 |
10.0 |
|
|
|
|
|
|
|
Locking: spin locks vs. blocking locks |
1.7 |
|
47 |
|
2005.0 |
3.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Design |
|
11.5 |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
OS for a PDA |
1.0 |
|
61 |
|
2001.5 |
1.1 |
20.0 |
|
|
|
|
|
|
|
|
|
|
OS for an SMP |
1.0 |
|
61 |
|
2001.5 |
1.6 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Design: Java OS |
0.7 |
|
106 |
|
1999.5 |
1.1 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Microkernels, monolithic, monolithic w/ loadable module, exo/library kernels, hypervisors |
2.7 |
|
18 |
|
2001.0 |
1.3 |
20.0 |
2005.0 |
3.3 |
20.0 |
|
|
|
|
|
|
|
Hardware Abstraction Layer (HAL) |
0.7 |
|
106 |
|
1999.5 |
1.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Single address space OSes |
0.8 |
|
91 |
|
1999.5 |
1.4 |
25.0 |
|
|
|
|
|
|
|
|
|
|
Policy and mechanism (in hypervisors and microkernels) |
1.8 |
|
40 |
|
2005.5 |
3.4 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Future operating systems |
2.7 |
|
15 |
|
2005.5 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Process/thread scheduling |
|
8.4 |
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Algorithms; e.g. shortest job first |
0.8 |
|
95 |
|
2004.0 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Scheduling in an SMP |
2.6 |
|
19 |
|
2005.0 |
4.1 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Multi-level queques |
0.4 |
|
111 |
|
1998.5 |
1.2 |
15.0 |
|
|
|
|
|
|
|
|
|
|
Scheduling and load management |
2.7 |
|
15 |
|
2005.5 |
4.1 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Cache affinity |
1.0 |
|
73 |
|
2006.0 |
2.4 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Throughput vs. response time |
1.0 |
|
61 |
|
2007.0 |
2.3 |
10.0 |
|
|
|
|
|
|
|
|
|
|
IPC |
|
0.2 |
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Shared memory, messages, RPC |
0.2 |
|
116 |
|
1997.5 |
1.2 |
15.0 |
|
|
|
|
|
|
|
|
|
|
Advanced |
|
5.7 |
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
User code inside the kernel |
1.0 |
|
73 |
|
2001.0 |
1.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
OS bypass |
1.5 |
|
54 |
|
1998.5 |
1.8 |
20.0 |
2001.5 |
1.7 |
20.0 |
|
|
|
|
|
|
|
Process migration |
1.6 |
|
50 |
|
2004.5 |
3.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Up-calls and scheduler activations |
1.6 |
|
50 |
|
2004.5 |
3.4 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Paging |
|
21.2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Trade-offs of page size |
0.8 |
|
95 |
|
2004.0 |
2.2 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Working set model (paging) |
1.0 |
|
69 |
|
2003.0 |
1.2 |
15.0 |
|
|
|
|
|
|
|
|
|
|
Virtual memory (paging, addressing) |
3.3 |
|
3 |
|
2007.5 |
4.2 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Load control (trashing) |
0.2 |
|
121 |
|
1997.0 |
1.3 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Page sharing in an SMP (algorithm for page table) |
0.8 |
|
95 |
|
2004.0 |
3.2 |
10.0 |
|
|
|
|
|
|
|
|
|
|
Page prefetching |
2.4 |
|
22 |
|
2004.5 |
4.1 |
30.0 |
|
|
|
|
|
|
|
|
|
|
Page replacement algorithms (e.g. clock algorithm) |
1.9 |
|
38 |
|
2005.5 |
2.2 |
10.0 |
2006.0 |
2.1 |
10.0 |
|
|
|
|
|
|
|
Demand page hit rate |
1.0 |
|
73 |
|
2001.0 |
1.6 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Swap cache |
2.2 |
|
25 |
|
2007.5 |
3.1 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Handling of copy on write (COW) |
2.8 |
|
13 |
|
2003.5 |
4.2 |
25.0 |
2006.5 |
2.4 |
10.0 |
|
|
|
|
|
|
|
Page miss details |
2.1 |
|
28 |
|
2007.0 |
3.2 |
20.0 |
|
|
|
|
|
|
|
|
|
|
Levels of page tables, inverted page tables |
2.9 |
|
11 |
|
2001.5 |
1.2 |
20.0 |
2005.5 |
3.2 |
20.0 |
|
|
|
|
|
|
|
Synchronization |
|
2.2 |
|