Symbian OS Internals: Real-time Kernel Programming