Scout: a Path-Based Operating System
Total Page:16
File Type:pdf, Size:1020Kb
SCOUT: A PATH-BASED OPERATING SYSTEM by David Mosberger Copyright c David Mosberger 1997 A Dissertation Submitted to the Faculty of the DEPARTMENT OF COMPUTER SCIENCE In Partial Fulfillment of the Requirements For the Degree of DOCTOR OF PHILOSOPHY In the Graduate College THE UNIVERSITY OF ARIZONA 1997 This page intentially left blank. 3 STATEMENT BY AUTHOR This dissertation has been submitted in partial fulfillment of requirements for an ad- vanced degree at The University of Arizona and is deposited in the University Library to be made available to borrowers under rules of the Library. Brief quotations from this dissertation are allowable without special permission, pro- vided that accurate acknowledgment of source is made. Requests for permission for ex- tended quotation from or reproduction of this manuscript in whole or in part may be granted by the copyright holder. SIGNED: 4 ACKNOWLEDGMENTS I would like to express my gratitude to my advisor, Larry Peterson, for his support, patience, and encouragement throughout my graduate studies. It is not often that one finds an advisor and colleague that always finds the time for listening to the little problems and roadblocks that unavoidably crop up in the course of performing research. His technical and editorial advice was essential to the completion of this dissertation and has taught me innumerable lessons and insights on the workings of academic research in general. My thanks also go to the members of my major committee, John Hartman and Todd Proebsting for reading previous drafts of this dissertation and providing many valuable comments that improved the presentation and contents of this dissertation. I would like to thank the members of my minor committee, Robert Schowengerdt and Jeffrey Gonzalez for their help during my minor studies in the field of Remote Sensing. The friendship of Peter Druschel and Larry Brakmo is much appreciated and has led to many interesting and good-spirited discussions relating to this research. I am also grateful to my colleagues Patrick Bridges and Brady Montz for helping considerably with realiz- ing the path-related code optimizations. In particular, Brady implemented the last call optimization and Patrick, with great diligence and ingenuity, convinced gcc to perform path-inlining the way we wanted it. My thanks go to Abhiram Kunesh who adapted the MGR window management system to Scout, to Andy Beavier for turning MGR into the path-cognizant WiMP, and to Dave Larson and Rob Piltz for helping with various aspects of the Scout implementation. Last, but not least, I would like to thank my wife Ning for her understanding and love during the past few years. Her support and encouragement was in the end what made this dissertation possible. My parents, Marta and Erwin, receive my deepest gratitude and love for their dedication and the many years of support during my undergraduate studies that provided the foundation for this work. This work is supported in part by DARPA contracts DABT63-91-C-0030, DABT63- 95-C0075, and N66001-96-C-8518. 5 To my parents, for making it possible to embark on this journey. To my wife, for making it possible to conclude it. 6 TABLE OF CONTENTS LISTOFILLUSTRATIONS............................. 10 LISTOFTABLES.................................. 12 ABSTRACT...................................... 13 CHAPTER 1: INTRODUCTION ........................... 14 1.1FromMainframesToPersonalComputers................. 15 1.2TheAdventoftheInformationAppliance................. 16 1.3 The Need for Configurable and Modular Operating Systems . 19 1.4 Performance Implications of Modular Systems . ......... 21 1.4.1 Potential For Performance Improvements . ......... 23 1.4.2 Implications on Quality-of-Service and Predictability . 25 1.5 Beyond Modularity: The Path Abstraction . ................ 26 1.6ThesisStatementandContributions.................... 28 CHAPTER2:PATHABSTRACTION........................ 32 2.1CommunicationNetworkAnalogy..................... 33 2.2PathModel................................. 35 2.2.1 Basic Path . ........................... 36 2.2.2 Path Processing . .................... 37 2.2.3 Path Creation ........................... 39 2.2.4 Generalized Paths . .................... 48 2.3SummaryandDiscussion.......................... 50 2.3.1 Policy Issues ........................... 51 2.3.2 Intuitive Models . .................... 52 2.3.3 Limitations . ........................... 52 2.4Applications................................. 53 7 TABLE OF CONTENTS — Continued 2.4.1 Code Optimizations . .................... 54 2.4.2 Resource Management . .................... 55 2.5RelatedWork................................ 57 CHAPTER3:SCOUTARCHITECTURE...................... 59 3.1Overview.................................. 59 3.1.1 Scout Epochs ........................... 60 3.2 Modularity . ........................... 61 3.2.1 Module Granularity . .................... 62 3.2.2 Module Structure . .................... 63 3.2.3 Module Graph ........................... 65 3.2.4 Discussion . ........................... 70 3.3Paths..................................... 71 3.3.1 Attributes . ........................... 72 3.3.2 Visual Overview of a Scout Path . ................ 73 3.3.3 Path Object . ........................... 75 3.3.4 Stage . ........................... 77 3.3.5 Interface . ........................... 78 3.3.6 Creation . ........................... 80 3.3.7 Extension . ........................... 82 3.3.8 Optimization ........................... 83 3.3.9 Destruction . ........................... 83 3.3.10 Evaluation and Discussion .................... 84 3.4 Demultiplexing . ........................... 85 3.4.1 Scout Packet Classifier . .................... 85 3.4.2 The Role of Classifiers . .................... 86 8 TABLE OF CONTENTS — Continued 3.4.3 Realizing the Scout Classifier . ................ 88 3.4.4 Evaluation . ........................... 96 3.5ExecutionModel..............................100 3.5.1 Thread Scheduling . ....................101 3.5.2 Thread Creation . ....................103 3.6RelatedWork................................104 CHAPTER4:USINGPATHSTOOPTIMIZECODE................110 4.1 Preliminaries . ...........................111 4.1.1 Experimental Testbed . ....................111 4.1.2 Test Cases . ...........................112 4.1.3 Base Case . ...........................113 4.2LatencyReducingTechniques.......................115 4.2.1 Outlining . ...........................115 4.2.2 Cloning . ...........................118 4.2.3 Path-Inlining ...........................122 4.2.4 Last Call Optimization . ....................123 4.3Evaluation..................................124 4.3.1 Test Cases . ...........................124 4.3.2 End-to-End Results . ....................125 4.3.3 Detailed Analysis . ....................129 4.4ConcludingRemarks............................136 CHAPTER 5: USING PATHS FOR RESOURCE MANAGEMENT . 138 5.1BuildingNetTV...............................138 5.1.1 Module Graph ...........................139 5.1.2 Paths . ...........................140 9 TABLE OF CONTENTS — Continued 5.1.3 Base Performance . ....................145 5.2ResourceManagement...........................147 5.2.1 Queues . ...........................147 5.2.2 Scheduling . ...........................149 5.2.3 Admission Control . ....................154 CHAPTER6:CONCLUSIONS...........................157 6.1Summary..................................157 6.2Contributions................................159 6.3FutureDirections..............................160 6.3.1 CPU Scheduling . ....................162 6.3.2 Distributed Paths . ....................163 6.3.3 Secure Paths . ...........................163 REFERENCES....................................164 10 LIST OF ILLUSTRATIONS FIGURE1.1SystemDesignSpectrum..................... 28 FIGURE2.1ExampleCommunicationNetwork................ 33 FIGURE 2.2 Example Modular System .................... 35 FIGURE2.3SimplePath............................ 37 FIGURE 2.4 Example Path in Modular System ................ 38 FIGURE2.5DynamicRoutingDecision.................... 42 FIGURE 2.6 Path Creation Using pathExtend ............... 43 FIGURE2.7ExamplePath........................... 50 FIGURE 2.8 Approximating Fan-In/Fan-Out With Multiple Paths . 53 FIGURE3.1ScoutDevelopmentTimeline................... 61 FIGURE 3.2 Module With Two Services .................... 64 FIGURE 3.3 Modular Graph for Network-Attached Camera ......... 66 FIGURE 3.4 Graph Description File for Network-Attached Camera . 66 FIGURE3.5PathStructure........................... 74 FIGURE3.6PathsVersusClassifiers...................... 87 FIGURE 3.7 Classification Pseudo-Code .................... 89 FIGURE3.8UpdateofDemuxTree...................... 91 FIGURE3.9TypicalPartialClassifier..................... 93 FIGURE 3.10 Example Requiring Global Hierarchical Classification . 93 FIGURE 3.11 Generalized Partial Classifier . ................ 94 FIGURE 3.12 Classification Performance as a Function of Number of Filters . 99 FIGURE4.1TestProtocolStacks.......................113 FIGURE 4.2 Effects of Outlining and Cloning . ................119 FIGURE 5.1 Module Graph For MPEG Example . .........140 11 LIST OF ILLUSTRATIONS — Continued FIGURE5.2PathsCreatedatBootTime....................142 FIGURE5.3ExampleVideoPaths.......................146 FIGURE 5.4 Correlation Between MPEG Frame Size and Decoding Time . 155 12 LIST OF TABLES TABLE1.1SPECnfsResultsandSystemConfigurations........... 23 TABLE 2.1 Module Descriptions . ...................