I decided to write a quick review for a book I read through while taking a Operating Systems course at Harvard Extension. I’m currently re-reading through it and found it really useful.
Modern Operating Systems goes through basic components of a computer and talks about how the operating system interacts with it. Topics covered:
- Processes, CPU and Scheduling.
- Memory and Paging.
- File System and I/O devices. I/O section is split into block and character devices with smaller sub-sections on clocks.
- Deadlocks and algorithms to resolve them.
- Virtual Machines and Security.
- Examples of Operating Systems: Android, Windows and Linux.
Currently about 50% through the book. The book covers gets pretty detailed. Topics in the book that I found really interesting:
- Scheduling algorithms and how processes are swapped out by the CPU.
- Mutex/Semaphores and the concept of locking a resource.
- Different levels of caching involved in CPU, memory and file-system.
- How memory, virtual memory and swapping works.
- I/O devices: it gets into the details of a hard disk and breaks down what determines seek time.
I plan on getting through at least 20-30% more of the book as it provides some extra context for my job. I spend a lot of time working with virtual machines (AWS) and have to look for problems like a pegged CPU or high-levels of memory consumption. Understanding what happens under the covers from a operating system perspective is useful.