Contents
Contents
1
INTRODUCTION
1.1
From Mainframes To Personal Computers
1.2
The Advent of the Information Appliance
1.3
The Need for Configurable and Modular Operating Systems
1.4
Performance Implications of Modular Systems
1.4.1
Potential For Performance Improvements
1.4.1.1
Code Synthesis
1.4.1.2
Integrated Layer Processing
1.4.1.3
PathIDs
1.4.1.4
Single-Copy TCP/IP
1.4.2
Implications on Quality-of-Service and Predictability
1.5
Beyond Modularity: The Path Abstraction
1.6
Thesis Statement and Contributions
2
PATH ABSTRACTION
2.1
Communication Network Analogy
2.2
Path Model
2.2.1
Basic Path
2.2.2
Path Processing
2.2.3
Path Creation
2.2.3.1
Short Paths
2.2.3.2
Extending Paths
2.2.3.3
Optimization Phase
2.2.3.4
Invariants
2.2.3.5
Who Creates Paths?
2.2.4
Generalized Paths
2.2.4.1
Directionality
2.2.4.2
Complex Processing
2.3
Summary and Discussion
2.3.1
Policy Issues
2.3.2
Intuitive Models
2.3.3
Limitations
2.4
Applications
2.4.1
Code Optimizations
2.4.1.1
Code Synthesis
2.4.1.2
Integrated Layer Processing
2.4.1.3
PathIDs
2.4.1.4
Single-Copy TCP/IP
2.4.1.5
Summary
2.4.2
Resource Management
2.4.2.1
Fbufs
2.4.2.2
Migrating/Distributed Threads
2.4.2.3
Segregation of Work
2.5
Related Work
3
SCOUT ARCHITECTURE
3.1
Overview
3.1.1
Scout Epochs
3.2
Modularity
3.2.1
Module Granularity
3.2.2
Module Structure
3.2.3
Module Graph
3.2.3.1
Compatibility
3.2.3.2
Runtime Representation and Module Initialization
3.2.4
Discussion
3.3
Paths
3.3.1
Attributes
3.3.2
Visual Overview of a Scout Path
3.3.3
Path Object
3.3.4
Stage
3.3.5
Interface
3.3.6
Creation
3.3.7
Extension
3.3.8
Optimization
3.3.9
Destruction
3.3.10
Evaluation and Discussion
3.4
Demultiplexing
3.4.1
Scout Packet Classifier
3.4.2
The Role of Classifiers
3.4.3
Realizing the Scout Classifier
3.4.3.1
Globally Hierarchical Classification
3.4.3.2
Classification in Non-Demultiplexing Modules
3.4.4
Evaluation
3.5
Execution Model
3.5.1
Thread Scheduling
3.5.2
Thread Creation
3.6
Related Work
4
USING PATHS TO OPTIMIZE CODE
4.1
Preliminaries
4.1.1
Experimental Testbed
4.1.2
Test Cases
4.1.3
Base Case
4.2
Latency Reducing Techniques
4.2.1
Outlining
4.2.2
Cloning
4.2.3
Path-Inlining
4.2.4
Last Call Optimization
4.3
Evaluation
4.3.1
Test Cases
4.3.2
End-to-End Results
4.3.3
Detailed Analysis
4.3.3.1
Cache Statistics
4.3.3.2
Processing Time Measurements
4.3.3.3
Performance Improvement Comparison
4.3.3.4
Outlining Effectiveness
4.4
Concluding Remarks
5
USING PATHS FOR RESOURCE MANAGEMENT
5.1
Building NetTV
5.1.1
Module Graph
5.1.2
Paths
5.1.2.1
Shell Commands
5.1.2.2
Video Paths
5.1.3
Base Performance
5.2
Resource Management
5.2.1
Queues
5.2.2
Scheduling
5.2.2.1
Avoiding Priority Inversion
5.2.2.2
Scheduling According to Bottleneck Queue
5.2.3
Admission Control
6
CONCLUSIONS
6.1
Summary
6.2
Contributions
6.3
Future Directions
6.3.1
CPU Scheduling
6.3.2
Distributed Paths
6.3.3
Secure Paths
List of Figures
1
System Design Spectrum
2
Example Communication Network
3
Example Modular System
4
Simple Path
5
Example Path in Modular System
6
Dynamic Routing Decision
7
Path Creation Using
pathExtend
8
Example Path
9
Approximating Fan-In/Fan-Out With Multiple Paths
10
Scout Development Timeline
11
Module With Two Services
12
Modular Graph for Network-Attached Camera
13
Graph Description File for Network-Attached Camera
14
Path Structure
15
Paths Versus Classifiers
16
Classification Pseudo-Code
17
Update of Demux Tree
18
Typical Partial Classifier
19
Example Requiring Global Hierarchical Classification
20
Generalized Partial Classifier
21
Classification Performance as a Function of Number of Filters
22
Test Protocol Stacks
23
Effects of Outlining and Cloning
24
Module Graph For MPEG Example
25
Paths Created at Boot Time
26
Example Video Paths
27
Correlation Between MPEG Frame Size and Decoding Time
List of Tables
1
SPECnfs Results and System Configurations
2
Module Descriptions
3
Example Mappings
4
Summary of Scout Classifier and DPF Comparison
5
Comparison of TCP/IP Implementations
6
Roundtrip Latency
7
Roundtrip Latency Adjusted for Network and Controller
8
Cache Performance
9
Protocol Processing Costs
10
Comparison of Latency Improvement
11
Outlining Effectiveness
12
Description of NetTV Modules
13
Description of NetTV Interfaces
14
Description of a Commonly-used Path Attributes
15
Coarse Grain Comparison of Scout and Linux
16
Frame Rate Under Load