Operating Systems Interview Practice
Concurrency, memory, scheduling and I/O questions for software engineering interviews
Operating Systems Interview Practice is a Bertopia flashcard pack of 55 cards: concurrency, memory, scheduling and I/O questions for software engineering interviews. It covers concurrent web crawler; producer consumer and blocking queues; thread safe data structures; concurrent rate limiting; threads, processes and async; spotting races and deadlocks; thread pools and backpressure; files and durability; OS for backend debugging.
Worked answers by topic
- Concurrent web crawler interview questions (7 questions)
- Blocking queue and thread pool interview questions (11 questions)
- Thread safety and rate limiter interview questions (13 questions)
- Threads vs processes vs async interview questions (7 questions)
- Race condition and deadlock interview questions (8 questions)
- OS debugging and file durability interview questions (9 questions)
Sources
35 sources
- Blind: Confusing experience of Databricks interview, Blind
- OSTEP: Common Concurrency Problems, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- The C10K problem, Dan Kegel
- pthread_cond_wait, The Open Group Base Specifications, The Open Group
- OSTEP: Condition Variables, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- What Every Programmer Should Know About Memory, Ulrich Drepper
- OSTEP: Event-based Concurrency, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- fork(2), Linux manual page, Michael Kerrisk, Linux man-pages project
- fsync(2), Linux manual page, Michael Kerrisk, Linux man-pages project
- getrlimit(2), Linux manual page, Michael Kerrisk, Linux man-pages project
- Operating system interview questions, GoLinuxCloud
- Hello Interview: Multithreaded web crawler, Hello Interview
- IGotAnOffer: Anthropic software engineer interview, IGotAnOffer
- IGotAnOffer: OpenAI coding interview, IGotAnOffer
- interviewing.io: Anthropic interview questions, interviewing.io
- Java Concurrency in Practice, Brian Goetz et al., Addison-Wesley
- OSTEP: Crash Consistency: FSCK and Journaling, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- LeetCode 1188: Design Bounded Blocking Queue, LeetCode
- LeetCode 1242: Web Crawler Multithreaded, LeetCode
- Anthropic concurrency interview questions, linkjob.ai
- Linux Load Averages: Solving the Mystery, Brendan Gregg
- OSTEP: Locks, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- Ensuring data reaches disk, LWN.net
- Linux kernel docs: Overcommit Accounting, The Linux Kernel Organization
- What really happened on Mars? (Glenn Reeves account), Cornell University CS 614
- Fsync Errors, PostgreSQL wiki, PostgreSQL Global Development Group
- PracHub: Design a crash resilient LRU cache, PracHub
- proc(5), Linux manual page, Michael Kerrisk, Linux man-pages project
- rename(2), Linux manual page, Michael Kerrisk, Linux man-pages project
- SpaceComplexity: Databricks onsite interview, SpaceComplexity
- OSTEP: Semaphores, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- OSTEP: Beyond Physical Memory: Mechanisms, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- OSTEP: Concurrency: An Introduction, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- OSTEP: Paging: Faster Translations (TLBs), Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- The USE Method, Brendan Gregg