{"title":"The performance of the Container Shipping I/O system","authors":"E. Anderson, J. Pasquale","doi":"10.1145/224056.225831","DOIUrl":null,"url":null,"abstract":"I/O subsystems, and the APIs used to access them, have long been designed with two basic assumptions. First, I/O is performed to relatively slow disks or terminals, so processor time for I/O operations is available while waiting for devices. Second, optimization is done by guessing the user’s needs, such as a filesystem cache does by assuming locality. This traditional design causes I/O performance problems for modern devices such as video displays and high-speed networks, where the above assumptions are no longer valid. We have designed a high-performance I/O subsystem, and a uniform API through which it is accessed, that gives a user-level programmer greater control, which allows operations to be performed more efficiently, and often optimally. Speedups from 30 to over 700 percent can be demonstrated with our technique. Our API is fully uniform, and yields gains for any form of device, including disks, networks, frame buffers, and even IPC performed through the I/O system. This paper describes our implementation of this mechanism, called Container Shipping, and its measured performance for different kinds of I/O.","PeriodicalId":168455,"journal":{"name":"Proceedings of the fifteenth ACM symposium on Operating systems principles","volume":"184 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1995-12-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the fifteenth ACM symposium on Operating systems principles","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/224056.225831","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
Abstract
I/O subsystems, and the APIs used to access them, have long been designed with two basic assumptions. First, I/O is performed to relatively slow disks or terminals, so processor time for I/O operations is available while waiting for devices. Second, optimization is done by guessing the user’s needs, such as a filesystem cache does by assuming locality. This traditional design causes I/O performance problems for modern devices such as video displays and high-speed networks, where the above assumptions are no longer valid. We have designed a high-performance I/O subsystem, and a uniform API through which it is accessed, that gives a user-level programmer greater control, which allows operations to be performed more efficiently, and often optimally. Speedups from 30 to over 700 percent can be demonstrated with our technique. Our API is fully uniform, and yields gains for any form of device, including disks, networks, frame buffers, and even IPC performed through the I/O system. This paper describes our implementation of this mechanism, called Container Shipping, and its measured performance for different kinds of I/O.