Improving IPC by kernel design

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 exhibi...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Operating systems review 1993-12, Vol.27 (5), p.175-188
1. Verfasser: Liedtke, Jochen
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 188
container_issue 5
container_start_page 175
container_title Operating systems review
container_volume 27
creator Liedtke, Jochen
description 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.
doi_str_mv 10.1145/173668.168633
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_173668_168633</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_173668_168633</sourcerecordid><originalsourceid>FETCH-LOGICAL-c2553-a704a62ed927c4ec2160a86b9301bd8d5fb9ac5ddb4807d2ffe84bf1a418a3b73</originalsourceid><addsrcrecordid>eNotz7tKA0EUgOEpFIzR0lb2BSaeM2duW8riZSGghdbDXMNqsgkzIOTtRdbq7374GLtD2CBK9YCGtLYb1FYTXbAVoCauegtX7Lq1LwC0qHHF7sfDqR5_pnnXje9DF87dd65z3ncpt2k337DL4vct3_53zT6fnz6GV759exmHxy2PQini3oD0WuTUCxNljgI1eKtDT4Ah2aRK6H1UKQVpwSRRSrYyFPQSradgaM348o312FrNxZ3qdPD17BDcH8gtILeA6Be7Cj4L</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Improving IPC by kernel design</title><source>ACM Digital Library Complete</source><creator>Liedtke, Jochen</creator><creatorcontrib>Liedtke, Jochen</creatorcontrib><description>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.</description><identifier>ISSN: 0163-5980</identifier><identifier>DOI: 10.1145/173668.168633</identifier><language>eng</language><ispartof>Operating systems review, 1993-12, Vol.27 (5), p.175-188</ispartof><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c2553-a704a62ed927c4ec2160a86b9301bd8d5fb9ac5ddb4807d2ffe84bf1a418a3b73</citedby><cites>FETCH-LOGICAL-c2553-a704a62ed927c4ec2160a86b9301bd8d5fb9ac5ddb4807d2ffe84bf1a418a3b73</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Liedtke, Jochen</creatorcontrib><title>Improving IPC by kernel design</title><title>Operating systems review</title><description>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.</description><issn>0163-5980</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>1993</creationdate><recordtype>article</recordtype><recordid>eNotz7tKA0EUgOEpFIzR0lb2BSaeM2duW8riZSGghdbDXMNqsgkzIOTtRdbq7374GLtD2CBK9YCGtLYb1FYTXbAVoCauegtX7Lq1LwC0qHHF7sfDqR5_pnnXje9DF87dd65z3ncpt2k337DL4vct3_53zT6fnz6GV759exmHxy2PQini3oD0WuTUCxNljgI1eKtDT4Ah2aRK6H1UKQVpwSRRSrYyFPQSradgaM348o312FrNxZ3qdPD17BDcH8gtILeA6Be7Cj4L</recordid><startdate>199312</startdate><enddate>199312</enddate><creator>Liedtke, Jochen</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>199312</creationdate><title>Improving IPC by kernel design</title><author>Liedtke, Jochen</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c2553-a704a62ed927c4ec2160a86b9301bd8d5fb9ac5ddb4807d2ffe84bf1a418a3b73</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>1993</creationdate><toplevel>online_resources</toplevel><creatorcontrib>Liedtke, Jochen</creatorcontrib><collection>CrossRef</collection><jtitle>Operating systems review</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Liedtke, Jochen</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Improving IPC by kernel design</atitle><jtitle>Operating systems review</jtitle><date>1993-12</date><risdate>1993</risdate><volume>27</volume><issue>5</issue><spage>175</spage><epage>188</epage><pages>175-188</pages><issn>0163-5980</issn><abstract>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.</abstract><doi>10.1145/173668.168633</doi><tpages>14</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0163-5980
ispartof Operating systems review, 1993-12, Vol.27 (5), p.175-188
issn 0163-5980
language eng
recordid cdi_crossref_primary_10_1145_173668_168633
source ACM Digital Library Complete
title Improving IPC by kernel design
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-06T20%3A54%3A43IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Improving%20IPC%20by%20kernel%20design&rft.jtitle=Operating%20systems%20review&rft.au=Liedtke,%20Jochen&rft.date=1993-12&rft.volume=27&rft.issue=5&rft.spage=175&rft.epage=188&rft.pages=175-188&rft.issn=0163-5980&rft_id=info:doi/10.1145/173668.168633&rft_dat=%3Ccrossref%3E10_1145_173668_168633%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true