VU Research Portal

On the design of reliable and scalable networked systems Hruby, T.

2016

document version Publisher's PDF, also known as Version of record

Link to publication in VU Research Portal

citation for published version (APA) Hruby, T. (2016). On the design of reliable and scalable networked systems.

General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal ?

Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim.

E-mail address: [email protected]

Download date: 29. Sep. 2021 References

[1] ASLR: Leopard versus Vista. http://blog.laconicsecurity.com/ 2008/01/aslr-leopard-versus-vista.html. [2] ARM - big.LITTLE Processing. http://www.arm.com/products/ processors/technologies/biglittleprocessing.php. [3] Killing the Big Kernel Lock. http://lwn.net/Articles/380174/. [4] Network transmit queue limits. http://lwn.net/Articles/454390/. [5] D-Bus. http://dbus.freedesktop.org. [6] The Heartbleed Bug. http://heartbleed.com/. [7] httperf. http://www.hpl.hp.com/research/linux/httperf/. [8] The unveiling of kdbus. http://lwn.net/Articles/580194/. [9] Intel’s "Knights Landing" Xeon Phi Coprocessor Detailed. http: //www.anandtech.com/show/8217/intels-knights-landing- coprocessor-detailed. [10] libevent. http://libevent.org. [11] . http://www.lighttpd.net/. [12] 3. http://www.minix3.org. [13] OpenOnload. http://www.openonload.org. [14] RCU Usage. http://www.rdrop.com/users/paulmck/RCU/ linuxusage.html. [15] RFC: remove __read_mostly. http://lwn.net/Articles/262557.

133 134 CHAPTER 7. SUMMARY AND CONCLUSIONS

[16] Intel Turbo Boost Technology in Intel Core Microarchitecture (Ne- halem) Based Processors. http://files.shareholder.com/ downloads/INTC/0x0x348508/C9259E98-BE06-42C8-A433- E28F64CB8EF2/TurboBoostWhitePaper.pdf. [17] Average Web Page Size Triples Since 2008, 2012. http://www. websiteoptimization.com/speed/tweak/average-web-page/. [18] What’s New for Windows Sockets. http://msdn.microsoft.com/en- us/library/windows/desktop/ms740642(=vs.85).aspx. [19] The Intel Xeon Phi Coprocessor. http://www.intel.com/content/www/ us/en/processors/xeon/xeon-phi-detail.html. [20] QNX Neutrino RTOS System Architecture. http://support7.qnx.com/ download/download/14695/sys_arch.pdf. [21] Vulnerability in TCP/IP Could Allow Remote Code Execution. http:// technet.microsoft.com/en-us/security/bulletin/ms11-083. [22] Variable SMP - A Multi-Core CPU Architecture for Low Power and High Performance. http://www.nvidia.com/content/PDF/tegra_white_ papers/tegra-whitepaper-0911b.pdf. [23] Samsung to outline 8-core big.LITTLE ARM processor in Febru- ary. http://www.engadget.com/2012/11/20/samsung-to-outline- 8-core-big-little-arm-processor-in-february/. [24] Distributed Caching with . http://www.linuxjournal.com/ article/7451. [25] Nginx: the High-Performance Web Server and Reverse Proxy. http: //www.linuxjournal.com/magazine/nginx-high-performance- web-server-and-reverse-proxy. [26] Jonathan Appavoo, Dilma Da Silva, Orran Krieger, Marc Auslander, Michal Ostrowski, Bryan Rosenburg, Amos Waterland, Robert W. Wisniewski, Jimi Xenidis, Michael Stumm, and Livio Soares. Experience Distributing Objects in an SMMP OS. ACM Trans. Comput. Syst., 2007. [27] Raja Appuswamy, David . van Moolenbroek, and Andrew S. Tanenbaum. Loris - A Dependable, Modular File-Based Storage Stack. Proceedings of the Pacific Rim International Symposium on Dependable Computing, 2010. [28] Jeff Arnold and M. Frans Kaashoek. : Automatic Rebootless Kernel Updates. In Proceedings of the 4th ACM European Conference on Computer Systems, EuroSys ’09, 2009. [29] Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. and the Art of 135

Virtualization. In Proceedings of the Nineteenth ACM Symposium on Operat- ing Systems Principles, SOSP ’03, 2003. [30] Andrew Baumann, Gernot Heiser, Dilma Da Silva, Orran Krieger, Robert W. Wisniewski, and Jeremy Kerr. Providing Dynamic Update in an . In Proceedings of the USENIX Annual Technical Conference, 2005. [31] Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Re- becca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. The Multikernel: A New OS Architecture for Scalable Multicore Systems. In Proceedings of the Symposium on Operating Systems Principles, 2009. [32] Michela Becchi and Patrick Crowley. Dynamic Assignment on Me- terogeneous Multiprocessor Architectures. In Proceedings of the 3rd Confer- ence on Computing Frontiers, CF ’06, 2006. [33] Adam Belay, George Prekas, Ana Klimovic, Samuel Grossman, Christos Kozyrakis, and Edouard Bugnion. IX: A Protected Dataplane Operating Sys- tem for High Throughput and Low Latency. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI 14), 2014. [34] Andrea Bittau, Adam Belay, Ali Mashtizadeh, David Mazieres, and Dan Boneh. Hacking Blind. In Proceedings of the IEEE Security and Privacy conference, Oakland, 2014. [35] Herbert Bos, Willem de Bruijn, Mihai Cristea, Trung Nguyen, and Georgios Portokalidis. FFPF: Fairly Fast Packet Filters. In Proceedings of the USENIX Conference on Operating Systems Design and Implementation, 2004. [36] Silas Boyd-Wickizer and Nickolai Zeldovich. Tolerating Malicious Device Drivers in Linux. In Proceedings of the USENIX Annual Technical Confer- ence, 2010. [37] Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, Frans Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu, Yuehua Dai, Yang Zhang, and Zheng Zhang. Corey: An Operating System for Many Cores. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, OSDI’08, Berkeley, CA, USA, 2008. USENIX Association. URL http://dl.acm.org/citation.cfm?id= 1855741.1855745. [38] Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. An Analysis of Linux Scalability to Many Cores. In Proceedings of the 9th USENIX Confer- ence on Operating Systems Design and Implementation, OSDI’10, Berkeley, 136 CHAPTER 7. SUMMARY AND CONCLUSIONS

CA, USA, 2010. USENIX Association. [39] Silas Boyd-Wickizer, M. Frans Kaashoek, Robert Morris, and Nickolai Zel- dovich. Non-scalable locks are dangerous. In Proceedings of the Ottawa Linux Symposium, Ottawa, Canada, July 2012. [40] Miguel Castro, Manuel Costa, Jean-Philippe Martin, Marcus Peinado, Perik- lis Akritidis, Austin Donnelly, Paul Barham, and Richard Black. Fast Byte- granularity Software Fault Isolation. In Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles, 2009. [41] Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson En- gler. An Empirical Study of Operating Systems Errors. In Proceedings of the Eighteenth ACM Symposium on Operating Systems Principles, SOSP ’01, 2001. [42] Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Mor- ris, and Eddie Kohler. The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP ’13, 2013. [43] Patrick Colp, Mihir Nanavati, Jun Zhu, William Aiello, George Coker, Tim Deegan, Peter Loscocco, and Andrew Warfield. Breaking up is Hard to Do: Security and Functionality in a Commodity . In Proceedings of the Symposium on Operating Systems Principles, 2011. [44] Gilberto Contreras and Margaret Martonosi. Power Prediction for Intel XS- cale Processors Using Performance Monitoring Unit Events. In Proceedings of the 2005 International Symposium on Low Power Electronics and Design, 2005. [45] Benjamin Cox, David Evans, Adrian Filipi, Jonathan Rowanhill, Wei Hu, Jack Davidson, John Knight, Anh Nguyen-Tuong, and Jason Hiser. N-variant systems: A secretless framework for security through diversity. In Proceed- ings of the 15th USENIX Security Symposium, 2006. [46] Lorenzo Cavallaro Cristiano Giuffrida and Andrew S. Tanenbaum. We Crashed, Now What? In Proceedings of the 6th International Workshop on Hot Topics in System Dependability, 2010. [47] Francis M. David, Ellick M. Chan, Jeffrey C. Carlyle, and Roy H. Campbell. CuriOS: Improving Reliability Through Operating System Structure. In Pro- ceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, 2008. [48] Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. Everything you always wanted to know about synchronization but were afraid to ask. In Pro- ceedings of the Twenty-Fourth ACM Symposium on Operating Systems Prin- 137

ciples, 2013. [49] Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask. In Proceedings of the Symposium on Operating Systems Principles, 2013. [50] Willem de Bruijn, Herbert Bos, and Henri Bal. Application-Tailored I/O with Streamline. ACM Transactions on Computer Systems, 29(2), May 2011. [51] Alex Depoutovitch and Michael Stumm. Otherworld: Giving Applications a Chance to Survive OS Kernel Crashes. In Proceedings of the 5th European Conference on Computer Systems, EuroSys ’10, 2010. [52] Luca Deri. Improving Passive Packet Capture: Beyond Device Polling. In Proceedings of the International System Administration and Network Engi- neering Conference, 2004. [53] Mathieu Desnoyers, Paul E McKenney, and Michel R Dagenais. Multi- core Systems Modeling for Formal Verification of Parallel Algorithms. ACM SIGOPS Operating Systems Review, 47(2), 2013. [54] Peter Druschel and Larry L. Peterson. Fbufs: A High-bandwidth Cross- domain Transfer Facility. In Proceedings of the Symposium on Operating Systems Principles, 1993. [55] Adam Dunkels. Full TCP/IP for 8-bit architectures. In International Confer- ence on Mobile Systems, Applications, and Services, 2003. [56] Kevin Elphinstone and Gernot Heiser. From L3 to seL4 What Have We Learnt in 20 Years of L4 ? In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP ’13, 2013. [57] Jon Erickson. Hacking: The Art of Exploitation. No Starch Press, 2003. ISBN 1-59327-007-0. [58] Mario Flajslik and Mendel Rosenblum. Network Interface Design for Low Latency Request-Response Protocols. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC 13), 2013. [59] Ben Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm. - nado: Maximizing Locality and Concurrency in a Shared Memory Multipro- cessor Operating System. In Proceedings of the Third Symposium on Operat- ing Systems Design and Implementation, OSDI ’99, 1999. [60] Vinod Ganapathy, Matthew J. Renzelmann, Arini Balakrishnan, Michael M. Swift, and Somesh Jha. The Design and Implementation of Microdrivers. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, 2008. [61] Alain Gefflaut, Trent Jaeger, Yoonho Park, , Kevin J. Elphin- 138 CHAPTER 7. SUMMARY AND CONCLUSIONS

stone, Volkmar Uhlig, Jonathon E. Tidswell, Luke Deller, and Lars Reuther. The SawMill Multiserver Approach. In Proceedings of the 9th Workshop on ACM SIGOPS European Workshop: Beyond the PC: New Challenges for the Operating System, 2000. [62] Jim Gettys and Kathleen Nichols. Bufferbloat: Dark Buffers in the Internet. Queue, 9(11), November 2011. ISSN 1542-7730. [63] John Giacomoni, Tipp Moseley, and Manish Vachharajani. FastForward for Efficient Pipeline Parallelism: A Cache-optimized Concurrent Lock-free Queue. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’08, 2008. [64] John Giacomoni, Tipp Moseley, and Manish Vachharajani. FastForward for Efficient Pipeline Parallelism: A Cache-optimized Concurrent Lock-free Queue. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2008. [65] Cristiano Giuffrida and Andrew S. Tanenbaum. Safe and Automated State Transfer for Secure and Reliable Live Update. In Proceedings of the Fourth International Workshop on Hot Topics in Software Upgrades, 2012. [66] Cristiano Giuffrida, Anton Kuijsten, and Andrew S. Tanenbaum. Safe and Automatic Live Update for Operating Systems. In Proceedings of the Inter- national Conference on Architectural Support for Programming Languages and Operating Systems, 2013. [67] R Guerraoui and A Schiper. Software-based Replication for fault Tolerance. Computer, 30(4), 1997. [68] Sangjin Han, Scott Marshall, Byung-Gon Chun, and Sylvia Ratnasamy. MegaPipe: A New Programming Interface for Scalable Network I/O. In Proceedings of the USENIX Conference on Operating Systems Design and Implementation, 2012. [69] Les Hatton. Reexamining the Fault Density-Component Size Connection. IEEE Software, 14, March 1997. [70] Gernot Heiser. Do Microkernels Suck? Talk at Linux.conf.au 2008, Melbourne http://www.ssrg.nicta.com.au/publications/papers/ Heiser_08lca.slides.pdf. [71] Tom Herbert. rfs: receive flow steering. http://lwn.net/Articles/ 381955/. [72] Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum. Failure Resilience for Device Drivers. In Proceedings of the International Conference on Dependable Systems and Networks, 2007. 139

[73] Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum. Countering IPC Threats in Multiserver Operating Systems (A Fundamental Requirement for Dependability). In Proceedings of the Pacific Rim International Symposium on Dependable Computing, 2008. [74] Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum. Fault Isolation for Device Drivers. In Proceedings of the Inter- national Conference on Dependable Systems and Networks, 2009. [75] Tomas Hruby, Dirk Vogt, Herbert Bos, and Andrew S. Tanenbaum. Keep Net Working - On a Dependable and Fast Networking Stack. In Proceedings of the Dependable Systems and Networks (DSN 2012), Boston, MA, June 2012. [76] Tomas Hruby, Herbert Bos, and Andrew S. Tanenbaum. When Slower is Faster: On Heterogeneous Multicores for Reliable Systems. In Proceedings of the USENIX ATC, San Jose, CA, 2013. [77] Galen C. Hunt, James R. Larus, David Tarditi, and Ted Wobber. Broad New OS Research: Challenges and Opportunities. In Proceedings of Tenth Workshop on Hot Topics in Operating Systems (HotOs). USENIX, June 2005. URL http://research.microsoft.com/apps/pubs/default. aspx?id=54666. [78] Intel. Single-Chip Cloud Computer. http://techresearch.intel.com/ ProjectDetails.aspx?Id=1. [79] Engin Ipek, Meyrem Kirman, Nevin Kirman, and Jose F. Martinez. Core Fu- sion: Accommodating Software Diversity in Chip Multiprocessors. In Pro- ceedings of the 34th annual international symposium on Computer architec- ture, 2007. [80] Nicholas Jalbert, Cristiano Pereira, Gilles Pokam, and Koushik Sen. RAD- Bench: A Concurrency Bug Benchmark Suite. In Proceedings of the USENIX Workshop on Hot Topics in Parallelism, May 2011. [81] EunYoung Jeong, Shinae Wood, Muhammad Jamshed, Haewon Jeong, Sunghwan Ihm, Dongsu Han, and KyoungSoo Park. mTCP: a Highly Scal- able User-level TCP Stack for Multicore Systems. In Proceedings of USENIX Symposium on Networked Systems Design and Implementation (NSDI 14), 2014. [82] Asim Kadav, Matthew J. Renzelmann, and Michael M. Swift. Fine-grained Fault Tolerance Using Device Checkpoints. In Proceedings of the Eigh- teenth International Conference on Architectural Support for Programming Languages and Operating Systems, 2013. [83] Khubaib, M. Aater Suleman, Milad Hashemi, Chris Wilkerson, and Yale N. Patt. MorphCore: An Energy-Efficient Microarchitecture for High Perfor- 140 CHAPTER 7. SUMMARY AND CONCLUSIONS

mance ILP and High Throughput TLP. In Proceedings of the 2012 45th An- nual IEEE/ACM International Symposium on Microarchitecture. [84] Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and Simon Winwood. seL4: Formal Verification of an OS Kernel. In Proceedings of the Symposium on Operating Systems Principles, SOSP ’09, 2009. [85] Oded Koren. A Study of the Linux Kernel Evolution. SIGOPS Operating Systems Review, 2006. [86] David Koufaty, Dheeraj Reddy, and Scott Hahn. Bias in Het- erogeneous Multi-Core Architectures. In Proceedings of the 5th European Conference on Computer systems, EuroSys ’10, 2010. [87] Rakesh Kumar, Keith I. Farkas, Norman P. Jouppi, Parthasarathy Ran- ganathan, and Dean M. Tullsen. Single-ISA Heterogeneous Multi-Core Ar- chitectures: The Potential for Processor Power Reduction. In Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture, 2003. [88] Rakesh Kumar, Dean M. Tullsen, Parthasarathy Ranganathan, Norman P. Jouppi, and Keith I. Farkas. Single-ISA Heterogeneous Multi-Core Archi- tectures for Multithreaded Workload Performance. In Proceedings of the 31st annual international symposium on Computer architecture, ISCA ’04, 2004. [89] Christoph Lameter. Extreme High Performance Computing or Why Micro- kernels Suck. In Proceedings of the Otawa Linux Symposium, 2007. [90] Lawrence Latif. IDF: Intel is looking at ARM’s Big Little architec- ture. http://www.theinquirer.net/inquirer/news/2205764/idf- intel-is-looking-at-arms-big-little-architecture. [91] Jonathan Lemon. - A Generic and Scalable Event Notification Facil- ity. In Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference, 2001. [92] Andrew Lenharth, Vikram S. Adve, and Samuel T. King. Recovery Domains: An Organizing Principle for Recoverable Operating Systems. In Proceedings of the 14th International Conference on Architectural Support for Program- ming Languages and Operating Systems, ASPLOS XIV, 2009. [93] Ben Leslie, Peter Chubb, Nicholas Fitzroy-dale, Stefan Götz, Charles Gray, Luke Macpherson, Daniel Potts, Yueting Shen, Kevin Elphinstone, and Ger- not Heiser. User-level Device Drivers: Achieved Performance. Computer Science and Technology, 20, 2005. 141

[94] Chuck Lever, Marius Eriksen, Chuck Lever, Sun netscape Alliance, Sun netscape Alliance, Marius Aamodt Eriksen, Marius Aamodt Eriksen, Linux. Com, Linux. Com, Stephen Molloy, and Stephen P. Molloy. An analysis of the web server. Technical report, 2000. [95] Tao Li and Lizy Kurian John. Operating System Power Minimization Through Run-time Processor Resource Adaptation. Microprocessors and Mi- crosystems, 30(4), 2006. [96] Jochen Liedtke, Kevin Elphinstone, Sebastian Schönberg, Hermann Härtig, Gernot Heiser, Nayeem Islam, and Trent Jaeger. Achieved IPC Performance (Still The Foundation For Extensibility). [97] Felix Xiaozhu Lin, Zhen Wang, and Lin Zhong. K2: A Mobile Operating System for Heterogeneous Coherence Domains. In Proceedings of the Inter- national Conference on Architectural Support for Programming Languages and Operating Systems, 2014. [98] Tongping Liu and Emery D. Berger. SHERIFF: Precise Detection and Auto- matic Mitigation of False Sharing. In Proceedings of the 2011 ACM Interna- tional Conference on Object Oriented Programming Systems Languages and Applications, 2011. [99] Jork Löser, Hermann Härtig, and Lars Reuther. A Streaming Interface for Real-Time Interprocess Communication. In Proceedings of the Workshop on Hot Topics in Operating Systems, 2001. [100] Shan Lu, Soyeon Park, Chongfeng Hu, Xiao Ma, Weihang Jiang, Zhenmin Li, Raluca A. Popa, and Yuanyuan Zhou. MUVI: automatically inferring multi- variable access correlations and detecting related semantic and concurrency bugs. SIGOPS Operating Systems Review, 41, October 2007. [101] Ilias Marinos, Robert N. M. Watson, and Mark Handley. Network Stack Spe- cialization for Performance. In Proceedings of the Workshop on Hot Topics in Networks, 2013. [102] Deborah T. Marr, Frank Binns, David L. Hill, Glenn Hinton, David A. Ko- ufaty, Alan J. Miller, and Michael Upton. Hyper-Threading Technology Ar- chitecture and Microarchitecture. Intel Technology Journal, February 2002. [103] Timothy Mattson. Intel: 1,000-core Processor Possible. http: //www.pcworld.com/article/211238/intel_1000core_processor_ possible.html. [104] Paul E. Mckenney and John D. Slingwine. -Copy Update: Using Exe- cution History to Solve Concurrency Problems. In Parallel and Distributed Computing and Systems, 1998. 142 CHAPTER 7. SUMMARY AND CONCLUSIONS

[105] Lukas Mejdrech. Networking and TCP/IP stack for HelenOS system. http: //www.helenos.org. [106] John M. Mellor-Crummey and Michael L. Scott. Algorithms for Scalable Synchronization on Shared-memory Multiprocessors. ACM Transactions on Computer Systems, 9(1), February 1991. ISSN 0734-2071. [107] Jeffrey C. Mogul, Jayaram Mudigonda, Nathan Binkert, Parthasarathy Ran- ganathan, and Vanish Talwar. Using Asymmetric Single-ISA CMPs to Save Energy on Operating Systems. IEEE Micro, 28(3), May 2008. ISSN 0272- 1732. [108] Derek Gordon Murray, Grzegorz Milos, and Steven Hand. Improving Xen Security Through Disaggregation. In Proceedings of the Fourth ACM SIG- PLAN/SIGOPS International Conference on Virtual Execution Environments, VEE ’08, 2008. [109] David Nellans, Rajeev Balasubramonian, and Erik Brunv. A Case for In- creased Operating System Support in Chip Multiprocessors. In Proceedings of the 2nd IBM Watson P=ac 2, 2005. [110] Wee Teck Ng and Peter M. Chen. The Systematic Improvement of Fault Tolerance in the Rio File Cache. In Proceedings of the Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing, 1999. [111] Edmund B. Nightingale, Orion Hodson, Ross McIlroy, Chris Hawblitzel, and Galen Hunt. Helios: Heterogeneous Multiprocessing with Satellite Kernels. In Proceedings of the Symposium on Operating Systems Principles, 2009. [112] Ruslan Nikolaev and Godmar Back. VirtuOS: An Operating System with Kernel . In Proceedings of the Symposium on Operating Systems Principles, 2013. [113] Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, and Venkateshwaran Venkataramani. Scaling Memcache at Facebook. In Proceedings of USENIX Symposium on Net- worked Systems Design and Implementation (NSDI 13), 2013. [114] Kunle Olukotun, Lance Hammond, and James Laudon. Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency. 2007. ISBN 9781598291223. [115] Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel. Flash: An Efficient and Portable Web Server. In Proceedings of the USENIX Annual Technical Conference, 1999. [116] Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel. IO-Lite: A Unified I/O 143

Buffering and Caching System. ACM Transactions on Computer Systems, 18 (1), 2000. [117] Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calvès, Julia Lawall, and Gilles Muller. Faults in Linux: Ten Years Later. In Proceedings of the Six- teenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, 2011. [118] Markus Peloquin, Lena Olson, and Andrew Coonce. Simultaneity safari: A study of concurrency bugs in device drivers. University of Wiscon- sin–Madison Report, pages.cs.wisc.edu/~markus/736/concurrency. pdf. [119] Aleksey Pesterev, Jacob Strauss, Nickolai Zeldovich, and Robert T. Morris. Improving Network Connection Locality on Multicore Systems. In Proceed- ings of the European Conference on Computer Systems, EuroSys ’12, 2012. [120] Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas Anderson, and Timothy Roscoe. Arrakis: The Oper- ating System is the Control Plane. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI 14), 2014. [121] Joshua A. Redstone, Susan J. Eggers, and Henry M. Levy. An Analysis of Operating System Behavior on a Simultaneous Multithreaded Architecture. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, New York, NY,USA, 2000. [122] Luigi Rizzo. Netmap: A Novel Framework for Fast Packet I/O. In Pro- ceedings of the 2012 USENIX Conference on Annual Technical Conference, USENIX ATC’12, 2012. [123] Luigi Rizzo and Giuseppe Lettieri. VALE, a Switched Ethernet for Virtual Machines. In Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies, CoNEXT ’12, 2012. [124] Luigi Rizzo, Giuseppe Lettieri, and Vincenzo Maffione. Speeding Up Packet I/O in Virtual Machines. In Proceedings of the Symposium on Architectures for Networking and Communications Systems, 2013. [125] Sourav Roy, Xiaomin Lu, Edmund Gieske, Peng Yang, and Jim Holt. Asym- metric Scaling on Network Packet Processors in the Dark Silicon Era. In Pro- ceedings of the Ninth ACM/IEEE Symposium on Architectures for Networking and Communications Systems, 2013. [126] Juan Carlos Saez, Alexandra Fedorova, David Koufaty, and Manuel Prieto. Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems. ACM Transactions on Computer Systems, 30, April 2012. 144 CHAPTER 7. SUMMARY AND CONCLUSIONS

[127] Suman Saha, Jean-Pierre Lozi, Gaël Thomas, Julia L Lawall, and Gilles Muller. Hector: Detecting Resource-Release Omission Faults in Error- Handling Code for Systems Software. In Proceedings of the 2013 43rd An- nual IEEE/IFIP International Conference on Dependable Systems and Net- works (DSN), 2013. [128] Babak Salamat, Andreas Gal, Todd Jackson, Karthikeyan Manivannan, Gre- gor Wagner, and Michael Franz. Multi-variant Program Execution: Using Multi-core Systems to Defuse Buffer-Overflow Vulnerabilities. In Proceed- ings of the International Conference on Complex, Intelligent and Software Intensive Systems, 2008. [129] Babak Salamat, Todd Jackson, Andreas Gal, and Michael Franz. Orchestra: Intrusion detection using parallel execution and monitoring of program vari- ants in user-space. In Proceedings of the ACM Fourth European Conference on Computer Systems, 2009. [130] David C. Sastry and Mettin Demirci. The QNX Operating System. Computer, 28, November 1995. [131] Mario Scondo. Concurrency and Race Conditions in Kernel Space (Linux 2.6). LinuxSupport.com (extract from "Linux Device Drivers"), December 2009. [132] Larry Seiler, Doug Carmean, Eric Sprangle, Tom Forsyth, Michael Abrash, Pradeep Dubey, Stephen Junkins, Adam Lake, Jeremy Sugerman, Robert Cavin, Roger Espasa, Ed Grochowski, Toni Juan, and Pat Hanrahan. Larrabee: A Many-core Architecture for Visual Computing. ACM Trans- actions on Graphics, 27, August 2008. [133] M. Shah, J. Barren, J. Brooks, R. Golla, G. Grohoski, N. Gura, R. Hethering- ton, P. Jordan, M. Luttrell, C. Olson, B. Sana, D. Sheahan, L. Spracklen, and A. Wynn. UltraSPARC T2: A Highly-treaded, Power-efficient, SPARC SOC. In Proceedings of the Asian Solid-State Circuits Conference, 2007. [134] Leah Shalev, Julian Satran, Eran Borovik, and Muli Ben-Yehuda. IsoStack: Highly Efficient Network Processing on Dedicated Cores. In Proceedings of the USENIX Annual Technical Conference, 2010. [135] Jonathan Shapiro. Debunking Linus’s Latest. http://www.coyotos.org/ docs/misc/linus-rebuttal.html. [136] Jonathan S. Shapiro. Vulnerabilities in Synchronous IPC Designs. In Pro- ceedings of the 2003 IEEE Symposium on Security and Privacy, 2003. [137] Kevin Z. Snow, Fabian Monrose, Lucas Davi, Alexandra Dmitrienko, Christo- pher Liebchen, and Ahmad-Reza Sadeghi. Just-In-Time Code Reuse: On the Effectiveness of Fine-Grained Address Space Layout Randomization. In Pro- 145

ceedings of the IEEE Symposium on Security and Privacy, 2013. [138] Livio Soares and Michael Stumm. FlexSC: Flexible System Call Scheduling with Exception-less System Calls. In Proceedings of the 9th USENIX Con- ference on Operating systems design and implementation, 2010. [139] Livio Soares and Michael Stumm. Exception-less System Calls for Event- Driven Servers. In Proceedings of the USENIX Annual Technical Conference, 2011. [140] V. Spiliopoulos, S. Kaxiras, and G. Keramidas. Green Governors: A Frame- work for Continuously Adaptive DVFS. In Proceedings of the International Green Computing Conference and Workshops, 2011. [141] Sadagopan Srinivasan, Li Zhao, Ramesh Illikkal, and Ravishankar Iyer. Effi- cient Interaction Between OS and Architecture in Heterogeneous Platforms. SIGOPS Operating Systems Review, 45(1), February 2011. [142] Udo Steinberg and Bernhard Kauer. NOVA: A Microhypervisor-based Secure Virtualization Architecture. In Proceedings of the 5th European Conference on Computer Systems, EuroSys ’10, 2010. [143] Richard Strong, Jayaram Mudigonda, Jeffrey C. Mogul, Nathan Binkert, and Dean Tullsen. Fast Switching of Threads Between Cores. SIGOPS Operating Systems Review, 43, April 2009. [144] Yifeng Sun and Tzi-cker Chiueh. SIDE: Isolated and Efficient Execution of Unmodified Device drivers. In Proceedings of the 2013 43rd Annual IEEE/I- FIP International Conference on Dependable Systems and Networks (DSN), 2013. [145] Swaminathan Sundararaman, Sriram Subramanian, Abhishek Rajimwale, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, and Michael M. Swift. Membrane: Operating System Support for Restartable File Systems. In Proceedings of the 8th USENIX Conference on File and Storage Technolo- gies, 2010. [146] Michael M. Swift, Brian N. Bershad, and Henry M. Levy. Improving the Re- liability of Commodity Operating Systems. In Proceedings of the Symposium on Operating Systems Principles, 2003. [147] Michael M. Swift, Muthukaruppan Annamalai, Brian N. Bershad, and Henry M. Levy. Recovering Device Drivers. ACM Transactions on Com- puter Systems, 24(4), November 2006. ISSN 0734-2071. [148] Kenzo Van Craeynest, Aamer Jaleel, Lieven Eeckhout, Paolo Narvaez, and Joel Emer. Scheduling heterogeneous multi-cores through Performance Im- pact Estimation (PIE). In Proceedings of the 39th Annual International Sym- 146 CHAPTER 7. SUMMARY AND CONCLUSIONS

posium on Computer Architecture, ISCA ’12, 2012. [149] Kenzo Van Craeynest, Aamer Jaleel, Lieven Eeckhout, Paolo Narvaez, and Joel Emer. Scheduling Heterogeneous Multi-cores Through Performance Im- pact Estimation (PIE). In Proceedings of the 39th Annual International Sym- posium on Computer Architecture, ISCA ’12, 2012. [150] David Wentzlaff, Charles Gruenwald, III, Nathan Beckmann, Kevin Modzelewski, Adam Belay, Lamia Youseff, Jason Miller, and Anant Agar- wal. An Operating System for Multicore and Clouds: Mechanisms and Im- plementation. In Proceedings of the Symposium on Cloud Computing, 2010. [151] Takeshi Yoshimura, Hiroshi Yamada, and Kenji Kono. Is Useful or Not? In Proceedings of the Eighth USENIX Conference on Hot Topics in System Dependability, 2012. [152] Xiao Zhang, Kai Shen, Sandhya Dwarkadas, and Rongrong Zhong. An Eval- uation of Per-chip Nonuniform Frequency Scaling on Multicores. In Proceed- ings of the USENIX Annual Technical Conference, 2010. [153] Xinghui Zhao and Nadeem Jamali. Fine-Grained Per-Core Frequency Scheduling for Power Efficient-Multicore Execution. In Proceedings of the International Green Computing Conference and Workshops, 2011. [154] Feng Zhou, Jeremy Condit, Zachary Anderson, Ilya Bagrak, Rob Ennals, Matthew Harren, George Necula, and Eric Brewer. SafeDrive: Safe and Re- coverable Extensions Using Language-based Techniques. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation, 2006.