CPS 196
Systems and Networks
home calendar topics labs resources

Machines and Kernels

Of course, we spent more time getting into machines and kernels than I had hoped. It will not be the last time. I want to point out that there is some material in other parts of the SK text pertaining to some of the questions and discussion that came up in class.

In particular, Chapter 5 discusses virtualization and related topics at the hardware/software interface. Most of it pertains to threads, which we will discuss later, but there are a few pieces that are relevant:

Booting.
Page 5-53 has a sidebar 5-3 that explains booting. At some point we will come back and talk about secure booting and how applications can know that the OS can be trusted to protect them, and why some people view that as a threat.

Address translation: hardware vs. software.
5.C talks about virtualizing memory, and the role of the TLB and page tables. It mentions the issue of TLB invalidation (shootdown): if the kernel breaks a virtual-physical mapping, e.g., to free up a physical page frame to hold some other virtual page, then it must be sure to invalidate the translation in the TLB. Questions: does it have to invalidate the TLB when it establishes a new translation without destroying an old one? What if it reduces the access modes permitted for a translation, e.g., disables write permission on a page? What if it enables write permission?

Don't worry about the material on segmentation in 5.C.

Device interrupts.
Section 5.E.4 talks about device interrupts. Most modern devices interrupt the processor when they complete an operation, rather than requiring the processor to poll device registers to discover when an operation is complete.