6 Matching Annotations
  1. Aug 2025
    1. The CPU hardware has a wire called the interrupt-request line that the CPU senses after executing every instruction. When the CPU detects that a controller has asserted a signal on the interrupt-request line, it reads the interrupt number and jumps to the interrupt-handler routine by using that interrupt number as an index into the interrupt vector. It then starts execution at the address associated with that index. The interrupt handler saves any state it will be changing during its operation, determines the cause of the interrupt, performs the necessary processing, performs a state restore, and executes a return_from_interrupt instruction to return the CPU to the execution state prior to the interrupt.

      The CPU constantly checks the interrupt-request line after each instruction. When a device signals, the CPU uses the interrupt number to find the correct service routine from the interrupt vector. The handler then saves state, processes the request, restores state, and returns control so the program continues as if nothing happened.

    2. The interrupt must transfer control to the appropriate interrupt service routine. The straightforward method for managing this transfer would be to invoke a generic routine to examine the interrupt information. The routine, in turn, would call the interrupt-specific handler. However, interrupts must be handled quickly, as they occur very frequently.

      Interrupts are processed quickly by indexing into a table of service routines, ensuring the CPU doesnt waste time searching. The system also saves and restores the processor state so that the interrupted program can continue smoothly afterward.

    3. Interrupts

      “Interrupt” = signal, alert, notification to the CPU.

      It reminds me of how a cellphone beeps or makes a buzzing when a message arrives. The system doesn’t keep checking nonstop it just gets interrupted when the event happens.

      Similarly, the CPU isn’t busy waiting but is alerted when the device is done.

    4. A modern general-purpose computer system consists of one or more CPUs and a number of device controllers connected through a common bus that provides access between components and shared memory (Figure 1.2). Each device controller is in charge of a specific type of device (for example, a disk drive, audio device, or graphics display). Depending on the controller, more than one device may be attached. For instance, one system USB port can connect to a USB hub, to which several devices can connect. A device controller maintains some local buffer storage and a set of special-purpose registers. The device controller is responsible for moving the data between the peripheral devices that it controls and its local buffer storage.

      Device controllers act as managers for hardware devices, ensuring smooth data transfer between devices and memory.

    5. An operating system is software that manages a computer's hardware. It also provides a basis for application programs and acts as an intermediary between the computer user and the computer hardware. An amazing aspect of operating systems is how they vary in accomplishing these tasks in a wide variety of computing environments. Operating systems are everywhere, from cars and home appliances that include “Internet of Things” devices, to smart phones, personal computers, enterprise computers, and cloud computing environments.

      I understand that an operating system (OS) is the bridge between the computer hardware and the user, while also supporting applications. What stands out is how flexible OS design can be, since they must adapt to many environments from tiny IoT devices to massive cloud systems.

    6. An operating system acts as an intermediary between the user of a computer and the computer hardware. The purpose of an operating system is to provide an environment in which a user can execute programs in a convenient and efficient manner.

      The textbook has been set up and the annotations works like a charm