Choosing an operating system (OS) for an embedded system is one of the most complex and critical tasks, with significant long-term ramifications that directly affect both the development effort and the market success of a product.