Introduction to virtual machine monitors (hypervisors), virtualization techniques, CPU and memory virtualization in VMMs, privileged instruction handling, and transparent OS isolation mechanisms.
Practice problems on concurrency fundamentals including thread management, synchronization primitives, locks, condition variables, semaphores, deadlock prevention, and multi-threaded programming challenges.
Explores event-based concurrency as alternative to thread-based approaches. Covers event loops, select/poll system calls, asynchronous I/O, state management, and tradeoffs between event-driven and thread-based servers.
Covers UNIX/C memory allocation interfaces including malloc and free, stack vs heap memory, memory allocation best practices, and common memory management mistakes in systems programming.
Compares software and hardware virtualization techniques for x86 architecture. Discusses VMM design, binary translation, hardware support limitations, MMU virtualization challenges, and performance considerations of virtualization.