1
Files
interrupt-handling-using-th…/chap/introduction.tex
2023-03-03 15:40:25 +01:00

18 lines
2.1 KiB
TeX

\chapter{Introduction}
\label{ch:introduction}
\clearpage
Computer systems need to interact with their surroundings, for instance by reading values from sensors, controlling external appliances or interacting with a user through human interface devices.
In each of these scenarios, the system's CPU has to react to \textquote{external changes}, like a key press or sensor reading.
An efficient hardware solution to this problem are \textquote{interrupts}.
Through the past, interrupt hardware went through different iterations: Intel introduced the \textquote{Programmable Interrupt Controller} for the \textquote{8085} processor in 1976, with a revised version for the \textquote{8086} processor.
With modern standards like multicore processors, peripheral extendability, greater flexibility or higher performance, the Programmable Interrupt Controller could no longer meet its requirements.
In this thesis, support for the \textquote{Advanced Programmable Interrupt Controller}, a modern, multiprocessing capable and widely used interrupt controller architecture, introduced by Intel for the x86 \textquote{i486} processor, will be implemented into hhuOS, \textquote{A small operating system for learning purposes}~\autocite{hhuos}.
This support will cover a complete replacement of the older Programmable Interrupt Controller, introduction of an alternative timer -- a part of the APIC architecture -- for scheduling, and utilizing the APIC to boot multiprocessor systems.
The following chapter explains important background concepts, \autoref{ch:interrupthandling} describes how to use the APIC to handle local and external interrupts in singlecore and multicore systems based on the \textquote{IA-32 Architecture Software Developers Manual}~\autocite{ia32}, in \autoref{ch:implementation} the implementation and integration into hhuOS are explained, \autoref{ch:verification} deals with the testing process of the developed software on emulated and real hardware, and \autoref{ch:conclusion} draws conclusions regarding the previous implementation and future improvements.
\cleardoublepage