The operating system and other system software developments have grown parallel with the hardware and architecture. Figure 2.19 shows some important developments in system software. With each development, the programmer’s role gets redefined. He concentrates more in algorithms than the machine related issues. However, some amount of overhead is added to program execution time with each new development. This time has become negligible due to the increase in CPU speed and other techniques of parallelism and overlap. In embedded system, the entire system software gets embedded in hardware permanently. This is mainly based on ‘microcontroller’ which is more than a microprocessor in view of on-chip ROM, RAM and I/O ports. Its instruction set is usually limited and less powerful. Still it is more ‘complete’ than a microprocessor and is eligible to be termed as ‘microcomputer’ chip