Skip to main content

Posts

Showing posts from 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
Welcome to the Pensieve! In here, you can find random thoughts that capture my interests. My interest, which happens to vary with time currently stands at architecting software systems, following news on open source front, Linux, UML, various modeling techniques, reading books and articles on management, software and science fiction and of course listening to music.