Operating Systems 101 |
||||
| Architecting and developing an operating system is a fascinating exercise in creating processes which will facilitate the object task in it's primary function, and concurrently preventing that object task from negatively impacting other object tasks.
Depending on which OS component you are developing, efficiency can be of utmost importance. A first level interrupt handler, for example, will be executed thousands of times per second, and the selection of the correct machine instruction to, for example, clear a register, can make a difference of a few critical femtoseconds. Other considerations are ensuring that the various component of the operating system are available when they are needed. For example, the ASM, with rare exceptions, must always be fixed in V=R storage. The reason for this is that when an object task takes a page fault (Program Check 11), if the second level interrupt handler is paged out, then the OS will go into a program check 11 loop in an attempt to page itself in. It's not pretty. |
||||