Process Management Fundamentals

Process Management Fundamentals

Introduces process abstraction and management. Covers process definition, states (running, ready, blocked), process control block (PCB), CPU scheduler, context switching, state transitions, and system booting from BIOS through bootloader to kernel.

xv6 Operating System Introduction

xv6 Operating System Introduction

Introduction to xv6 teaching operating system for x86. Covers x86 assembly language basics including registers (eax, ebx, eip, esp, ebp), instructions (mov, push, pop, jmp, call, ret), function call mechanics, and caller/callee save register conventions.

Introduction to Virtualization

Introduction to Virtualization

Introduction to virtualization and cloud computing. Covers hypervisor/VMM basics, trap-and-emulate technique, x86 privilege rings, Popek-Goldberg theorem, paravirtualization (Xen), full virtualization (VMware), and hardware-assisted virtualization (KVM/QEMU) for x86 architecture.

Locks and Mutual Exclusion

Locks and Mutual Exclusion

Covers locks for achieving mutual exclusion in concurrent programs. Discusses lock implementation using hardware primitives like test-and-set, compare-and-swap, fetch-and-add. Explains spin locks, ticket locks, and techniques to avoid spinning using yield and blocking.

Thread Synchronization with Semaphores

Thread Synchronization with Semaphores

Explains semaphores combining locks and condition variables for thread synchronization. Covers binary semaphores for mutual exclusion, semaphores for ordering events, producer-consumer bounded buffer problem, throttling threads, and implementing semaphores using locks and CVs.