Title: Evolving System Services to Meet Application Requirements
1 Evolving System Services to Meet Application
Requirements
- Henry Detmold, Katrina Falkner, David S. Munro,
Travis Olds Alicia Zakarevicius - School of Computer Science
- The University of Adelaide
- Australia
2Motivating a New Approach to System Software
Systems
Properties
3Customisable System Software
- Goal is to better accommodate application
requirements - Enable application-specific abstractions system
services - Meet the specific performance requirements of
each application - Existing techniques utilised in customisable
system software - Policy and mechanism separation (microkernels)
- Feedback based adaptation (Jikes Adaptive
Optimisation System) - Downloading application code (exokernels)
- Limitations of existing customisable system
software - Specific to one layer of the software
architecture - Limited customisable functionality
- No general architecture
- No development process for application or system
developers
4Our Research
- Aim of research
- To guide system and application developers
through the development and use of customisable
system software - Answer three questions
- 1. What architecture is appropriate for
customisable system software? - 2. What process should be undertaken to
instantiate the chosen architecture? - 3. How can applications exploit customisation
techniques? - Approach
- Used existing architecture and methodology1 to
construct customisable system software - Used customisable system software to explore
customisation tactics - Contribution
- Defined a number of customisation tactics that
can be exploited by application developers - Experience using an existing architecture and
methodology - 1. Morrison et al. A Compliant Persistent
Architecture. Software Practice and Experience,
30(4), - pp. 363 - 386, 2000.
5 Compliant Systems Architecture (CSA)
- An architecture for customisable system software
that applies to - Every layer
- All system services
- Properties of the architecture
- Layered architecture
- Policy and mechanism separation at each layer
- Downcall and upcall facilities
APPLICATION
SPECIFY POLICIES MAKE
DOWNCALLS
MAKE
UPCALLS PROVIDE
MECHANISMS
...
HARDWARE
6 Compliant Systems Architecture (CSA)
- An architecture for customisable system software
that applies to - Every layer
- All system services
- Properties of the architecture
- Layered architecture
- Policy and mechanism separation at each layer
- Downcall and upcall facilities
APPLICATION
SPECIFY POLICIES MAKE
DOWNCALLS
MAKE
UPCALLS PROVIDE
MECHANISMS
...
HARDWARE
7 Compliant Systems Architecture (CSA)
- An architecture for customisable system software
that applies to - Every layer
- All system services
- Properties of the architecture
- Layered architecture
- Policy and mechanism separation at each layer
- Downcall and upcall facilities
APPLICATION
SPECIFY POLICIES MAKE
DOWNCALLS
MAKE
UPCALLS PROVIDE
MECHANISMS
...
HARDWARE
8 Compliant Systems Architecture (CSA)
- An architecture for customisable system software
that applies to - Every layer
- All system services
- Properties of the architecture
- Layered architecture
- Policy and mechanism separation at each layer
- Downcall and upcall facilities
APPLICATION
SPECIFY POLICIES MAKE
DOWNCALLS
MAKE
UPCALLS PROVIDE
MECHANISMS
...
HARDWARE
9 Compliant Systems Architecture (CSA)
- An architecture for customisable system software
that applies to - Every layer
- All system services
- Properties of the architecture
- Layered architecture
- Policy and mechanism separation at each layer
- Downcall and upcall facilities
APPLICATION
SPECIFY POLICIES MAKE
DOWNCALLS
MAKE
UPCALLS PROVIDE
MECHANISMS
...
HARDWARE
What architecture is appropriate for customisable
system software?
10Compliant Systems Methodology (CSM)
- 1. Define number of layers, and the role that
each layer - plays.
- Determine customisable system services.
- Establish methods for specifying policies.
- 4. Specify methods used for communication
between layers.
11Compliant Systems Methodology (CSM)
- 1. Define number of layers, and the role that
each layer - plays.
- Determine customisable system services.
- Establish methods for specifying policies.
- Specify methods used for communication between
layers.
What process should be undertaken to instantiate
the chosen architecture?
12 Tactics for Evolving System Services
- Application specific policies
- Integrated policies
- Application specific abstractions
13 Tactics for Evolving System Services
- Application specific policies
- Integrated policies
- Application specific abstractions
How can applications exploit customisation
techniques?
14Instantiation of the CSA
- Abstract machine instantiation
- 3 layers
- Customisable functionality in standard library
- Policy specification through downcalls and
upcalls - Communication through downcalls and upcalls
- Web server application
Downcalls operating on abstractions
Application
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
15Instantiation of the CSA
- Abstract machine instantiation
- 3 layers
- Customisable functionality in standard library
- Policy specification through downcalls and
upcalls - Communication through downcalls and upcalls
- Web server application
Downcalls operating on abstractions
Application
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
16Instantiation of the CSA
- Abstract machine instantiation
- 3 layers
- Customisable functionality in standard library
- Policy specification through downcalls and
upcalls - Communication through downcalls and upcalls
- Web server application
Downcalls operating on abstractions
Application
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
17Instantiation of the CSA
- Abstract machine instantiation
- 3 layers
- Customisable functionality in standard library
- Policy specification through downcalls and
upcalls - Communication through downcalls and upcalls
- Web server application
Downcalls operating on abstractions
Application
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
18Instantiation of the CSA
- Abstract machine instantiation
- 3 layers
- Customisable functionality in standard library
- Policy specification through downcalls and
upcalls - Communication through downcalls and upcalls
- Web server application
Downcalls operating on abstractions
Web Server
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
19Application-Specific Policies
- Replace default policy with an application-specifi
c policy - Web server example - thread scheduling policy
- Enhance interactivity
- Soft real-time deadlines
- 100ms - visual disruption
- 1s - attention diminishing
- 10s - attention lost
Thread scheduling upcall
Web Server
Soft Real-Time Deadline Scheduling Policy
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
Persistent Store File
Single Threaded Interpreter Process
Network Connections
20Application-Specific Policies
21Integrated Policies
- Supervising two or more previously independent
system services - Useful when services are in conflict
- Priority inversion
- Locks and scheduling
- Priority inheritance
Thread scheduling lock
management upcalls
Web Server
Real Time Library
Thread Scheduling Lock Management Policy with
Priority Inheritance
Standard Library
Upcall Dispatch Table
Default Abstractions (threads, locks, etc)
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
22Application-Specific Abstractions
- Redefine interfaces in terms of
application-specific abstractions - Web server example - web request abstraction
- Network stream
- Thread
- HTTP method
- Object referenced by URL
Upcalls to web Downcall to
web request handlers request
abstraction
Application
Web Applications
Web Application Server
Web Request Abstraction
Interpreter
Instruction Execution
Thread Dispatcher
Object Cache
Operating System
23Evaluation and Ongoing Research
- Does the CSA provide an appropriate architecture
for customisable system software? - CSA provides a very simple template for
customisable system software - Possibly lacks important properties
- Need to refine the CSA to maximise efficiency and
flexibility - Decide what is a necessary property and what is
an implementation detail - Incorporate the essential properties of
customisable system software - Does the CSM provide us with a helpful process
for instantiating the CSA? - The CSM attempts to define a development process
- Lacks detail
- Does not produce reusable components
- Need a new CSM that details each fundamental
design decision and the available strategies at
each decision point
24Evaluation and Ongoing Research
- Do the customisation tactics help application
developers exploit customisation techniques? - What other tactics are available to developers?
- What kind of advice can we attach to each tactic?
25Thank You QuestionsEmail
zak_at_cs.adelaide.edu.auWebsite
www.cs.adelaide.edu.au