Return to search

Chameleon, a dynamically extensible and configurable object-oriented operating system

Currently, new algorithms are being incorporated into operating systems to deal with a host of
new requirements from multimedia applications. These new algorithms deal with soft real-time
scheduling, different memory models, and changes to buffer caching and network protocols.
However, old design techniques such as structured programming, global variables and implied
dependencies are impeding this development and proof of correctness. Many current operating
system research groups are developing extensible systems, where new code can be placed into the
system and even kernel layers. A primary difficulty in these efforts is how to avoid adversely
affecting reliability and traditional measures of performance.
Techniques from the object orientation paradigm are being incorporated to better manage
these issues because they have shown promise in improving modularity, information hiding, and
reusability. In some cases, these techniques are even being used to build fresh operating systems
from the ground up with the goal of easier extensibility and adaptability in the future. The
Apertos operating system introduced and implemented many concepts originally alien to
operating system research but exhibited unacceptable performance for multimedia applications.
This dissertation introduces Chameleon, a new object-oriented operating system that
shares the same philosophical approach as Apertos, leveraging meta designs and concepts to deal
with the diverse requirements of today’s and future multimedia applications. However,
Chameleon takes a new and original approach to design and implementation to achieve a high
degree of adaptability and retain the performance of a micro-kemel.
In Chameleon, the object-oriented paradigm serves as the basis for newly introduced
concepts such as AbstractCPU, brokers, and the broker interface hierarchy. Together,
AbstractCPU, brokers, and related software engineering techniques such as dynamic class
binding serve as a basis for all system management, communication, and for an event-driven
model where new events can be defined and dynamically introduced to a running system.
The meta design clearly defines a hierarchy of “operating environments” that can be
optimized for a particular type of application. As such, hierarchical resource management plays
an important role in Chameleon. A minimal set of primitives that is appropriate for hierarchical
memory management is defined atop a single address space memory model. Similarly,
hierarchical CPU scheduling is employed, as different applications will exhibit different
scheduling requirements. Different schedulers may then co-exist on the same CPU.
Communication in a hierarchically structured operating system is also detailed.
The implementation of the Chameleon structuring concept is presented and analyzed.
Standard performance measures are used to compare Chameleon to related research and
commercial operating systems. Costs of individual operations are also presented to outline the
overheads and gains associated with the Chameleon model. / Graduate

Identiferoai:union.ndltd.org:uvic.ca/oai:dspace.library.uvic.ca:1828/8058
Date03 May 2017
CreatorsBryce, Robert William
ContributorsShoja, Gholamali C.
Source SetsUniversity of Victoria
LanguageEnglish, English
Detected LanguageEnglish
TypeThesis
RightsAvailable to the World Wide Web

Page generated in 0.0021 seconds