Abstract:
This dissertation shows that operating systems can provide fundamental services an order of magnitude more efficiently than traditional implementations. It describes the implementation of a new operating system kernel, Synthesis, that achieves this level of performance. The Synthesis kernel combines several new techniques to provide high performance without sacrificing the expressive power or security of the system. The new ideas include: ffl Run-time code synthesis --- a systematic way of creating executable machine code at runtime to optimize frequently-used kernel routines --- queues, buffers, context switchers, interrupt handlers, and system call dispatchers --- for specific situations, greatly reducing their execution time. ffl Fine-grain scheduling --- a new process-scheduling technique based on the idea of feedback that performs frequent scheduling actions and policy adjustments (at submillisecond intervals) resulting in an adaptive, self-tuning system that can support real-ti...
Citations
|
529
|
Wait-free synchronization
– Herlihy
- 1991
|
|
390
|
Scheduler activations: Effective kernel support for the user-level management of parallelism
– Anderson, Bershad, et al.
- 1991
|
|
390
|
The UNIX Time-Sharing System
– Ritchie, Thompson
|
|
286
|
Why aren't operating systems getting faster as fast as hardware
– Ousterhout
- 1990
|
|
238
|
A new kernel foundation for UNIX development
– Mach
- 1986
|
|
209
|
A stream input-output system
– Ritchie
- 1984
|
|
200
|
Dimensions of object-based language design
– Wegner
- 1987
|
|
196
|
Operating system support for database management
– Stonebraker
- 1981
|
|
141
|
Object Structure in the Emerald System
– Black, Hutchinson, et al.
- 1986
|
|
112
|
Plan 9 from Bell Labs
– Pike, Presotto, et al.
- 1990
|
|
111
|
First-class user-level threads
– Marsh, Scott, et al.
- 1991
|
|
108
|
MIX: A self-applicable partial evaluator for experiments in compiler generation
– Jones, Sestoft, et al.
- 1989
|
|
103
|
Using continuations to implement thread management and communication in operating systems
– Draves, Bershad, et al.
- 1991
|
|
101
|
Threads and input/output in the synthesis kernel
– Massalin, Pu
- 1989
|
|
90
|
Misconceptions about real-time computing: A serious problem for next generation systems
– Stankovic
- 1988
|
|
84
|
Scheduling support for concurrency and parallelism in the Mach operating system
– Black
- 1990
|
|
62
|
An Introduction to Operating Systems
– Deitel
- 1990
|
|
61
|
The portable common runtime approach to interoperability
– Weiser, Demers, et al.
- 1989
|
|
58
|
A case for runtime code generation
– Keppel, Eggers, et al.
- 1991
|
|
36
|
Comparison of Hardware and Software Cache Coherence Schemes
– Adve, Adve, et al.
- 1991
|
|
33
|
An open environment for building parallel programming systems
– Bershad, Lazowska, et al.
- 1988
|
|
26
|
Evaluating the Performance of Software Cache Coherence
– Owicki, Agarwal
- 1989
|
|
15
|
A Priority Ceiling Protocol for Multiple-Instance Resources
– Chen, Lin
- 1991
|
|
12
|
Probabilistic Clock Synchronization
– Christian
- 1989
|
|
11
|
An experiment using registers for fast message-based interprocess communication
– Cheriton
- 1984
|
|
9
|
HYDRA: The kernel of a multiprocessing operating system
– Wulf, Cohen, et al.
- 1974
|
|
8
|
4.2BSD and 4.3BSD as examples of the UNIX system
– Quarterman, Silberschatz, et al.
- 1985
|
|
6
|
The Evolution of Unix System Performance
– Feder
- 1984
|
|
2
|
A 68010 multiuser development system. Master's thesis, The Cooper Union for the Advancement of Science and Art
– Arleth
- 1984
|
|
2
|
A 68010 Multitasking Development System. Master's thesis, The Cooper Union for the Advancement of Science and Art
– Massalin
- 1984
|
|
2
|
MC68882 Floating-Point Coprocessor User's Manual
– MC68881
- 1987
|