Operating Systems: Design and Implementation
An operating system is a system software that allows a user to interact with the system hardware. It acts as a bridge between the two and is responsible for hardware functions such as input, output, memory allocation and system security. Operating systems are categorized into batch systems, real-time systems, multi-user systems, time-sharing systems and single-user systems. This classification is based upon the accessibility of the system by the user and sequence of job execution. Every successful operating system design fulfils the user goal of being reliable, safe, and fast. It should also be easy to implement and maintain. Designing an operating system is a rigorous task which requires intricate knowledge of various fields such as networking, hardware, machine language, etc. Most of the operating systems today are designed using high level languages such as C++ and Java. They offer certain benefits since the code can be written faster and is easier to understand, making it easier to debug. Also, the code can be moved easily from one hardware to another. This book provides comprehensive insights into the field of operating systems. It is compiled in such a manner, that it will provide in-depth knowledge about the theories related to operating system design. This textbook will provide comprehensive knowledge to the readers.