Exam is Closed Book
Concurrency: synchronization primitives (e.g., atomic test&set, locks, condition variables, semaphores), thread management (e.g., private state, context switching, integration of threads and synchronization primitives), scheduling (e.g., deadlock)
Memory: virtual memory, page tables, eviction algorithms, protection (e.g., address spaces, kernel/user mode)
Storage: files, transactions
Networking: DNS, TCP/IP, ARP, sockets
Distributed systems: logical clocks, RPC Security: symmetric/asymmetric cryptography, authentication, authorization, access control, capabilities, trust
References: Principles of Computer System Design: An Introduction By Jerome H. Saltzer, M. Frans Kaashoek.
Sample Exams: