Design a Multi-Producer Multi-Consumer Circular Buffer
Company: NVIDIA
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: hard
Interview Round: Technical Screen
Overview: Design a fixed-capacity circular buffer for multiple concurrent producers and consumers, with blocking operations and close-and-drain behavior. Explain wraparound invariants, publication safety, spurious wakeups, deadlines, linearization points, and high-contention trade-offs.