Back to the basics! I want to plug holes in my knowledge so I am currently studying Tanenbaum's 'Operating Systems: Design and Implementation' also known as The Minix Book.
The topic is 'hardware interrupts'. This concept is a little difficult to understand for an application programmer who takes many things about the hardware and software for granted. Tanenbaum explains it well but I had to read it multiple times to grasp it. One reason is that the author does not provide a diagram to illustrate what happens when a hardware interrupt occurs. Maybe I will create one and post it here!