Authors: R. Garg and G. Verm
Operating systems is such a core topic of any computer science course that there are lots of books on the subject. Perhaps the best known is Modern Operating Systems by Tanenbaum & Bos, but the hardback edition sells for nearly $180 and it's big (1136 pages) and detailed. If you really want to master operating systems then it's a must-have, but what if you just want a rough outline of the subject?
This might be where this introductory book comes in handy. It is reasonably priced and short enough to be readable. However, writing a book on operating systems in general is still a tall order. You first have to decide if you want to cover a particular OS in detail or try and be as general and theoretical as possible. This book attempts to cover the ideas, but somehow you can feel that Linux or Unix are lurking behind the pages. For a long time now the way these two operating systems do things has been the standard by which to compare others.
Chapter 1 gives us the inevitable overview and it goes into the history and classification of operating systems, including batch operating systems. Chapter 2 is about architecture - monolithic, layered and micro kernel. Chapter 3 introduces the idea of processes and Chapter 4 extends this to threads and Chapter 5 explains scheduling. Chapter 6 deals with synchronization and locking which is expanded on in Chapter 7 on deadlock. Chapters 8 and 9 are on memory management including virtual memory. Chapters 10, 11 and 12 deal with file systems, I/O and disk management. Chapter 13 brings the theory part of the book to a close with a look at distributed systems. From this point on we have chapters on particular operating systems - Linux, Android, iOS and Windows 10. These are so short as to be fairly useless, unless you really don't know anything about them at all.
Overall the book written in an "introductory academic" tone that would make is suitable to base a simple course on. There are small quizzes after each section, lots of bullet point summaries and even "did you know" boxes. The style is short and to the point, but if you read it and think about the ideas you should understand the principles involved.
What is missing from the book is any sort of real world interaction with operating systems. The final chapters attempt to put this right, but they are merely end-user descriptions of operating systems. You won't discover any of the messiness of real world operating systems from this book - it is about theory. There are no programs, no descriptions of real world operating system commands and no mention of system calls. Of course, if the book did have any practical examples or exercises it would be 1000 or more pages and essentially be Modern Operating Systems by Tanenbaum & Bos mentioned at the start of this review.
So if you want a short, relatively cheap and incomplete overview of operating systems you might want to consider this book.
|Last Updated ( Tuesday, 30 April 2019 )