|
|
Name: __________________________________ |
|
|
|
gtID: _______________________ (e.g. gtg123a) |
|
|
|
|
|
|
1. |
Do you know the conditions under which a process/thread may join the ready queue and leave the ready queue? |
Y / N |
|
2. |
Can you name all the steps that happen during a context switch? |
Y / N |
|
3. |
Can you name at least three different types of interprocess communication? |
Y / N |
|
4. |
Do you know what is meant by Data Race in a parallel program? |
Y / N |
|
5. |
In a preemptive scheduler, do you understand what the word “preemptive” refers to? |
Y / N |
|
6. |
Do you understand the difference between “round robin”, “shortest-job-first”, and “priority scheduling”? |
Y / N |
|
7. |
Do you know the name for a section of code that accesses variables or resources that are shared between multiple threads of execution? |
Y / N |
|
8. |
Do you know the necessary and sufficient conditions for deadlock to occur? |
Y / N |
|
9. |
Do you understand why, when, and how to use mutual exclusion? |
Y / N |
|
10. |
Can you describe the role the translation look-aside buffer (TLB) plays in a virtual memory system? |
Y / N |
|
11. |
Do you understand the difference between a “segment” and a “page” in a memory hierarchy? |
Y / N |
|
12. |
Do you know the difference between a “page” and a “frame” in a virtual memory system? |
Y / N |
|
13. |
Do you know the difference between “first-in, first-out”, “least-recently-used”, and “least-frequently-used” replacement policies? |
Y / N |
|
14. |
Do you know what it means for a process to “trap” to the kernel? |
Y / N |
|
15. |
Can you name the mechanism by which asynchronous hardware events may notify the CPU (and thus the kernel) of an event? |
Y / N |
|
16. |
Can you explain why “ports” are necessary in network communication? |
Y / N |
|
17. |
Do you know what processor cache (e.g. L1, L2) has to do with context switches? |
Y / N |
|
18. |
Have you written a substantial (i.e. not “Hello World”) program in C or C++? |
Y / N |
|
19. |
Have you written a multi-threaded program? |
Y / N |
|
20. |
Have you written a networked program using a sockets API (e.g. Linux/POSIX sockets or winsock)? |
Y / N |
|
21. |
Have you written a program that handles one or more signals in Linux/POSIX? |
Y / N |
|
22. |
Do you know how to take timing measurements of a program? |
Y / N |