Multitasking Design and Implementation
If you fast-forward to the present the situation is quite different. The software and firmware for current embedded systems is now typically a sophisticated set of control systems that is handling multiple functions simultaneously. Most of the programmers working in this environment rarely even see the actual instruction op codes, much less program in them. This kind of programming requires more advanced capability for control of this software, and a major tool in achieving that control is a good multitasking Real-time Operating System (RTOS).