This thesis presents Lighthouse, an experimental branch of the Haskell-based House operating system which integrates Li et al.’s Lightweight Concurrency framework. First and foremost, it improves House’s viability as a “real operating system” by providing a new extensible scheduler framework which makes it easy to experiment with different scheduling policies. In particular, Lighthouse extends Concurrent Haskell with thread priority and implements a priority-based scheduler which significantly improves system responsiveness when compared with GHC’s normal round-robin scheduler. Even while doing this, it improves on House’s claim of being “written in Haskell” by moving a whole subsystem out of the complex C-based runtime system and into Haskell itself.
In addition, Lighthouse also includes an alternate, simpler implementation of Lightweight Concurrency which takes advantage of House’s unique setting (running directly on uniprocessor x86 hardware). This experience sheds light on areas that need further attention before the system can truly be viable—primarily interactions between blackholing and interrupt handling. In particular, this thesis uncovers a potential case of self-deadlock and suggests potential solutions.
Finally, this work offers further insight into the viability of using high-level languages such as Haskell for systems programming. Although laziness and blackholing present unique problems, many parts of the system are still much easier to express in Haskell than traditional languages such as C.
|Commitee:||Hook, James, Massey, Barton|
|School:||Portland State University|
|School Location:||United States -- Oregon|
|Source:||MAI 48/06M, Masters Abstracts International|
|Keywords:||Concurrency, Functional programming, Haskell operating system, Operating system|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be