Skip to main content

Posts

Showing posts from May, 2004
Architectural Patterns and kernels Monolithic architecture - Exposes a high level interface where with core services closely coupled with each other. Linux and other monolithic kernels provide a high level system call API and internally, services like memory management, I/O etc are tightly coupled. Pro: Performance Con: Defect on one service may affect other services Microkernel architecture - Services decoupled and run on own process. Use message passing mechanism to communicate with each other to reduce coupling. Pro: Easy to extend or add new features. Malfunctioning service can be restarted without affecting others Con: Slower Hybrid kernels - Micro kernels that have non-essential code in kernel space for efficiency. Microsoft Windows NT and strains are an example Exokernels - Provides a library for core OS features (in terms of the developer requesting particular pages of memory or blocks of diskspace). Application developer builds on top. Multiple li
Some Behavioral Patterns Visitor: Abstracts operations on a data structure and to avoid making changes to existing data structures. Allows new operations to be added without changing data structures Strategy: Abstracts similar algorithms so that it can be interchanged without affecting the data structure. Used to eliminate switch-case statements Iterator: Provides a unified mechanism to traverse data structures without encapsulating the traversal logic