Image for Ousterhout's Dichotomy

Ousterhout's Dichotomy

Ousterhout's Dichotomy is a principle in computer science that distinguishes between two types of functions in software systems: critical and non-critical. Critical functions, like kernel code or system calls, handle core tasks and need to be fast and reliable, often running in privileged mode. Non-critical functions, such as user interfaces or background processes, can be slower since they don't directly impact system stability. The dichotomy helps developers optimize systems by carefully designing critical parts for performance and flexibility in non-critical parts, balancing efficiency with maintainability.