Explain core operating system concepts: processes vs threads, context switching, and scheduling (preemptive vs cooperative and common algorithms). Describe synchronization primitives (mutexes, semaphores, condition variables), the four conditions for deadlock and avoidance/handling strategies. Explain memory management (virtual memory, paging vs segmentation, page faults, TLB) and how system calls transfer control between user and kernel mode.