Improving IPC by kernel design

作者: Jochen Liedtke

DOI: 10.1145/168619.168633

关键词:

摘要: Inter-process communication (ipc) has to be fast and effective, otherwise programmers will not use remote procedure calls (RPC), multithreading multitasking adequately. Thus ipc performance is vital for modern operating systems, especially μ-kernel based ones. Surprisingly, most μ-kernels exhibit poor performance, typically requiring 100 μs a short message transfer on processor, running with 50 MHz clock rate.In contrast, we achieve 5 μs; twentyfold improvement.This paper describes the methods principles used, starting from architectural design going down coding level. There no single trick obtaining this high performance; rather, synergetic approach in implementation all levels needed. The their synergy are illustrated by applying them concrete example, L3 (an industrial-quality system daily at several hundred sites). main ideas guide complete kernel requirements, make heavy of concept virtual address space inside itself.As experiment shows, significant gains possible: compared Mach, they range factor 22 (8-byte messages) 3 (4-Kbyte messages). Although hardware specific details influence both implementation, these techniques applicable whole class conventional general purpose von Neumann processors supporting addresses. Furthermore, effort required reasonably small, example dedicated parts can concentrated medium sized module.

参考文章(25)
David B. Golub, Avadis Tevanian, Michael J. Accetta, William J. Bolosky, Richard F. Rashid, Robert V. Baron, Michael Young, Mach: A New Kernel Foundation for UNIX Development. USENIX Summer. pp. 93- 113 ,(1986)
William L. Lunch, Michael J. Flynn, Brian K. Bray, Page allocation to reduce access time of physical caches Stanford University. ,(1990)
Dan Hildebrand, An Architectural Overview of QNX Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures. pp. 113- 126 ,(1992)
Sape J. Mullender, The Amoeba distributed operating system : selected papers 1984-1987 CWI Tracts. ,vol. 41, pp. 1- 309 ,(1987)
Brian N. Bershad, The increasing irrelevance of IPC Performance for Micro-kernel-Based Operating Systems Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures. pp. 205- 212 ,(1992)
Jochen Liedtke, Fast Thread Management and Communication Without Continuations Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures. pp. 213- 222 ,(1992)
John K. Ousterhout, Why Aren't Operating Systems Getting Faster As Fast as Hardware? USENIX Summer. pp. 247- 256 ,(1990)
J. Liedtke, A persistent system in real use-experiences of the first 13 years international workshop on object orientation in operating systems. pp. 2- 11 ,(1993) , 10.1109/IWOOOS.1993.324932
M. Schroeder, M. Burrows, Performance of Firefly RPC symposium on operating systems principles. ,vol. 23, pp. 83- 90 ,(1989) , 10.1145/74850.74859
Jochen Liedtke, Ulrich Bartling, Uwe Beyer, Dietmar Heinrichs, Rudolf Ruland, Gyula Szalay, Two years of experience with a m-Kernel based OS Operating Systems Review. ,vol. 25, pp. 51- 62 ,(1991) , 10.1145/122120.122124