Performance of the world's fastest distributed operating system
ACM SIGOPS Operating Systems Review
Using registers to optimize cross-domain call performance
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Lightweight remote procedure call
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The performance of message-passing using restricted virtual memory remapping
Software—Practice & Experience
Using continuations to implement thread management and communication in operating systems
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Two years of experience with a &mgr;-Kernel based OS
ACM SIGOPS Operating Systems Review
Intel386 SX microprocessor programmer's reference manual
Intel386 SX microprocessor programmer's reference manual
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
JEWEL: Design and Implementation of a Distributed Measurement System
IEEE Transactions on Parallel and Distributed Systems
Fast Thread Management and Communication Without Continuations
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
The increasing irrelevance of IPC Performance for Micro-kernel-Based Operating Systems
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
Architektur von Rechensystemen, 12. GI/ITG-Fachtagung
An Architectural Overview of QNX
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
An experiment using registers for fast message-based interprocess communication
ACM SIGOPS Operating Systems Review
Page allocation to reduce access time of physical caches
Page allocation to reduce access time of physical caches
ACM SIGOPS Operating Systems Review
A short note on implementing thread exclusiveness and address space locking
ACM SIGOPS Operating Systems Review
Reducing cross domain call overhead using batched futures
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Separating data and control transfer in distributed operating systems
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
A short note a small virtually-addressed control blocks
ACM SIGOPS Operating Systems Review
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
HFS: a performance-oriented flexible file system based on building-block compositions
Proceedings of the fourth workshop on I/O in parallel and distributed systems: part of the federated computing research conference
HFS: a performance-oriented flexible file system based on building-block compositions
ACM Transactions on Computer Systems (TOCS)
The performance of μ-kernel-based systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
EROS: a fast capability system
Proceedings of the seventeenth ACM symposium on Operating systems principles
EMERALDS: a small-memory real-time microkernel
Proceedings of the seventeenth ACM symposium on Operating systems principles
Security architecture for component-based operating systems
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
ACM Computing Surveys (CSUR)
Lightweight kernel/user communication for real-time and multimedia applications
NOSSDAV '01 Proceedings of the 11th international workshop on Network and operating systems support for digital audio and video
Access control in configurable systems
Secure Internet programming
Meeting the application in user space
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
EMERALDS: A Small-Memory Real-Time Microkernel
IEEE Transactions on Software Engineering
The sawmill framework for virtual memory diversity
ACSAC '01 Proceedings of the 6th Australasian conference on Computer systems architecture
A survey of customizability in operating systems research
ACM Computing Surveys (CSUR)
Frigate: A User-Extensible OO File System
IEEE Concurrency
Improving Web Server Performance by Network Aware Data Buffering and Caching
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
Lightweight Thread Tunnelling in Network Applications
IWAN '02 Proceedings of the IFIP-TC6 4th International Working Conference on Active Networks
Design Evolution of the EROS Single-Level Store
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Flexible and Optimized IDL Compilation for Distributed Applications
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Vulnerabilities in Synchronous IPC Designs
SP '03 Proceedings of the 2003 IEEE Symposium on Security and Privacy
The measured performance of a fast local IPC
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
User-level checkpointing through exportable kernel state
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
Stream engine: a new kernel interface for high-performance internet streaming servers
Web content caching and distribution
Property-based attestation for computing platforms: caring about properties, not mechanisms
NSPW '04 Proceedings of the 2004 workshop on New security paradigms
National ICT Australia (NICTA)
ACM SIGCOMM Computer Communication Review
Design and implementation of the Lambda μ-kernel based operating system for embedded systems
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Extensible distributed operating system for reliable control systems
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Lightweight thread tunnelling in network applications
Computer Networks: The International Journal of Computer and Telecommunications Networking - Active networks
Flexible IDL compilation for complex communication patterns[1]
Scientific Programming
Network subsystems reloaded: a high-performance, defensible network subsystem
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Are virtual machine monitors microkernels done right?
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
Optimizing IPC Performance for Shared-Memory Multiprocessors
ICPP '94 Proceedings of the 1994 International Conference on Parallel Processing - Volume 01
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
An efficient kernel-based implementation of POSIX threads
USTC'94 Proceedings of the USENIX Summer 1994 Technical Conference on USENIX Summer 1994 Technical Conference - Volume 1
Operating system protection for fine-grained programs
SSYM'98 Proceedings of the 7th conference on USENIX Security Symposium - Volume 7
Software prefetching and caching for translation lookaside buffers
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
Frigate: an object-oriented file system for ordinary users
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Towards trustworthy computing systems: taking microkernels to the next level
ACM SIGOPS Operating Systems Review
A critique of the GNU hurd multi-server operating system
ACM SIGOPS Operating Systems Review
A real-time programmer's tour of general-purpose L4 microkernels
EURASIP Journal on Embedded Systems - Operating System Support for Embedded Real-Time Applications
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
A real-time programmer's tour of general-purpose L4 microkernels
EURASIP Journal on Embedded Systems - Operating System Support for Embedded Real-Time Applications
A communication mechanism for resource isolation
Proceedings of the Second Workshop on Isolation and Integration in Embedded Systems
Proving Fairness and Implementation Correctness of a Microkernel Scheduler
Journal of Automated Reasoning
seL4: formal verification of an OS kernel
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Hypervisors for consumer electronics
CCNC'09 Proceedings of the 6th IEEE Conference on Consumer Communications and Networking Conference
A microkernel API for fine-grained decomposition
Proceedings of the Fifth Workshop on Programming Languages and Operating Systems
NOVA: a microhypervisor-based secure virtualization architecture
Proceedings of the 5th European conference on Computer systems
Sentry: light-weight auxiliary memory access control
Proceedings of the 37th annual international symposium on Computer architecture
The OKL4 microvisor: convergence point of microkernels and hypervisors
Proceedings of the first ACM asia-pacific workshop on Workshop on systems
A domain specific language for execution profiling & regulation
ACSC '09 Proceedings of the Thirty-Second Australasian Conference on Computer Science - Volume 91
Simple but Effective Heterogeneous Main Memory with On-Chip Memory Controller Support
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Protected hard real-time: the next frontier
Proceedings of the Second Asia-Pacific Workshop on Systems
Improving interrupt response time in a verifiable protected microkernel
Proceedings of the 7th ACM european conference on Computer Systems
An empirical comparison of Java remote communication primitives for intra-node data transmission
ACM SIGMETRICS Performance Evaluation Review
To preempt or not to preempt, that is the question
Proceedings of the Asia-Pacific Workshop on Systems
Correct, fast, maintainable: choose any three!
Proceedings of the Asia-Pacific Workshop on Systems
To preempt or not to preempt, that is the question
APSys'12 Proceedings of the Third ACM SIGOPS Asia-Pacific conference on Systems
Correct, fast, maintainable - choose any three!
APSys'12 Proceedings of the Third ACM SIGOPS Asia-Pacific conference on Systems
Virtualization for safety-critical, deeply-embedded devices
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
VirtuOS: an operating system with kernel virtualization
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
From L3 to seL4 what have we learnt in 20 years of L4 microkernels?
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Secure RPC in embedded systems: evaluation of some GlobalPlatform implementation alternatives
Proceedings of the Workshop on Embedded Systems Security
Comprehensive formal verification of an OS microkernel
ACM Transactions on Computer Systems (TOCS)
Hi-index | 0.00 |
Inter-process communication (ipc) has to be fast and effective, otherwise programmers will not use remote procedure calls (RPC), multithreading and multitasking adequately. Thus ipc performance is vital for modern operating systems, especially μ-kernel based ones. Surprisingly, most μ-kernels exhibit poor ipc performance, typically requiring 100 μs for a short message transfer on a modern processor, running with 50 MHz clock rate.In contrast, we achieve 5 μs; a twentyfold improvement.This paper describes the methods and principles used, starting from the architectural design and going down to the coding level. There is no single trick to obtaining this high performance; rather, a synergetic approach in design and implementation on all levels is needed. The methods and their synergy are illustrated by applying them to a concrete example, the L3 μ-kernel (an industrial-quality operating system in daily use at several hundred sites). The main ideas are to guide the complete kernel design by the ipc requirements, and to make heavy use of the concept of virtual address space inside the μ-kernel itself.As the L3 experiment shows, significant performance gains are possible: compared with Mach, they range from a factor of 22 (8-byte messages) to 3 (4-Kbyte messages). Although hardware specific details influence both the design and implementation, these techniques are applicable to the whole class of conventional general purpose von Neumann processors supporting virtual addresses. Furthermore, the effort required is reasonably small, for example the dedicated parts of the μ-kernel can be concentrated in a single medium sized module.