The packer filter: an efficient mechanism for user-level network code
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Scheduler activations: effective kernel support for the user-level management of parallelism
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Fast mutual exclusion for uniprocessors
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
The Deferrable Server Algorithm for Enhanced Aperiodic Responsiveness in Hard Real-Time Environments
IEEE Transactions on Computers
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
A hierarchial CPU scheduler for multimedia operating systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Lazy receiver processing (LRP): a network subsystem architecture for server systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Real-time computing with lock-free shared objects
ACM Transactions on Computer Systems (TOCS)
Eliminating receive livelock in an interrupt-driven kernel
ACM Transactions on Computer Systems (TOCS)
Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Readings in Multimedia Computing and Networking
Readings in Multimedia Computing and Networking
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Pragmatic Nonblocking Synchronization for Real-Time Systems
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
Cost and Benefit of Separate Address Spaces in Real-Time Operating Systems
RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium
A New Kernel Approach for Modular Real-Time Systems Development
ECRTS '01 Proceedings of the 13th Euromicro Conference on Real-Time Systems
HLS: A Framework for Composing Soft Real-Time Schedulers
RTSS '01 Proceedings of the 22nd IEEE Real-Time Systems Symposium
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Periodic Resource Model for Compositional Real-Time Guarantees
RTSS '03 Proceedings of the 24th IEEE International Real-Time Systems Symposium
Rate monotonic vs. EDF: judgment day
Real-Time Systems
Design and Performance of Configurable Endsystem Scheduling Mechanisms
RTAS '05 Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium
Implementing Application Specific RTOS Policies using Reflection
RTAS '05 Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium
Fast Component Interaction for Real-Time Systems
ECRTS '05 Proceedings of the 17th Euromicro Conference on Real-Time Systems
Predictable Interrupt Management for Real Time Kernels over conventional PC Hardware
RTAS '06 Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium
Process-Aware Interrupt Scheduling and Accounting
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
User-Level Fine-Grained Adaptive Real-Time Scheduling via Temporal Reflection
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
Hijack: Taking Control of COTS Systems for Real-Time User-Level Services
RTAS '07 Proceedings of the 13th IEEE Real Time and Embedded Technology and Applications Symposium
Evolving mach 3.0 to a migrating thread model
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Pebble: a component-based operating system for embedded applications
WOES'99 Proceedings of the Workshop on Embedded Systems on Workshop on Embedded Systems
Towards effective user-controlled scheduling for microkernel-based systems
ACM SIGOPS Operating Systems Review
RTSS '07 Proceedings of the 28th IEEE International Real-Time Systems Symposium
A real-time programmer's tour of general-purpose L4 microkernels
EURASIP Journal on Embedded Systems - Operating System Support for Embedded Real-Time Applications
Predictable Interrupt Management and Scheduling in the Composite Component-Based System
RTSS '08 Proceedings of the 2008 Real-Time Systems Symposium
Composite: a component-based operating system for predictable and dependable computing
Composite: a component-based operating system for predictable and dependable computing
Hi-index | 0.00 |
This article presents the design of user-level scheduling hierarchies in the Composite component-based system. The motivation for this is centered around the design of a system that is both dependable and predictable, and which is configurable to the needs of specific applications. Untrusted application developers can safely develop services and policies, that are isolated in protection domains outside the kernel. To ensure predictability, Composite enforces timing control over user-space services. Moreover, it must provide a means by which asynchronous events, such as interrupts, are handled in a timely manner without jeopardizing the system. Towards this end, we describe the features of Composite that allow user-defined scheduling policies to be composed for the purposes of combined interrupt and task management. A significant challenge arises from the need to synchronize access to shared data structures (e.g., scheduling queues), without allowing untrusted code to disable interrupts. Additionally, efficient upcall mechanisms are needed to deliver asynchronous event notifications in accordance with policy-specific priorities, without undue recourse to schedulers. We show how these issues are addressed in Composite, by comparing several hierarchies of scheduling polices, to manage both tasks and the interrupts on which they depend. Studies show how it is possible to implement guaranteed differentiated services as part of the handling of I/O requests from a network device while diminishing livelock. Microbenchmarks indicate that the costs of implementing and invoking user-level schedulers in Composite are on par with, or less than, those in other systems, with thread switches more than twice as fast as in Linux.