Header Montage

Lamia Youseff  WebPage

Home     Research     Publications     CFP-Deadlines     Bio     Links-of-Interest     Contact-Info

 

Research


Reading List [summaries can be found here]

 

1. A Performance Prediction Framework for Scientific applications

2. GridOS: Operating system services for grid architectures

3. PODOS - The design and implementation of a performance oriented Linux cluster

4. DBMSs on a modern processor: Where does time go?

5. A comparison of TCP Automatic tuning techniques for distributed computing

6. A Survey of Customizability in Operating Systems Research

7. The Case for Application Specific Operating systems

8. Denali: A scalable Isolation Kernel

9. Applicability of Component-Based Development in High-Performance Systems

10. Distinctive characteristics of scientific applications

11. Communication Characteristics of Large Scale Scientific applications

12. Operating System Support for Virtual Machines

13. Visualization and Analysis of phased behavior in Java Program

14. When Virtual is better than Real

15. Vertigo: Automatic Performance-setting for Linux

16. Predicating Program Behavior Using Real or Estimated Profiles

17. An overview of Virtual Machines Architectures

18. An Application-Oriented Linux Kernel Customization for embedded Systems

19. Xen and the Art of Virtualization.

20. Xen 2002 (Technical Report).

21. Kea: A dynamically Extensible and configurable Operating system Kernel

22. Fine-Grained Dynamic instrumentation of commodity operating system kernels

23. NWperf: A system wide performance monitoring tool for large Linux clusters-(summary not available yet)-

24. Practice and Technique in Extensible Operating System

25. Self monitoring and Self adapting operating system (VINO)

26. Kernel Plug-ins: When A VM Is Too Much

27. The need for customizable operating systems

28. Mach: A system software kernel

29. The Unix Time-Sharing System

30. Disco: Running Commodity Operating Systems on Scalable Multiprocessors.

31. Application Performance and Flexibility on Exokernel Systems -(summary not available yet)-

32. High Performance Application Oriented Operating system - The EPOS Approach

33. PUMA: An operating system for massively parallel systems

34. The SPLASH-2 Programs: Characterization and methodological consideration

35. Extensibility, Safety and Performance in the SPIN operating system -(summary not available yet)-

36. CrossWalk: A tool for Performance Profiling Across the User-Kernel Boundary

37. Incremental Call-Path Profiling (iPath)

38. A callgraph-Based Search Strategy for automated Performance diagnosis (Paradyn)

39. On the Appropriateness of Commodity Operating Systems for Large-Scale, Balanced Computing Systems

40. A User-Mode Port of the Linux Kernel (UML) -(summary not available yet)-

41. Virtual Machine Monitors (Tech. Report)

42. A Static Analysis of I/O Characteristics of Scientific Applications in a Production Workload

43. Dynamic I/O Characterization of I/O Intensive Scientific application

44. Trends in Operating System Design: Towards a Customizable Persistent Micro-kernel

45. Adaptive Domain Environment for operating systems (Adeos)

46. Dynamic Models As Knowledge In Operating Systems Kernel

47. SLIC: An Extensibility System for Commodity Operating Systems

48. Fast Concurrent Dynamic Linking for an adaptive operating system (Synthetix)

49. Optimistic Incremental Specialization: Streamlining a commercial operating system (Synthetix)

50. Issues in Extensible Operating Systems

51. Scout: A communication-oriented operating system

52. Symbolic Systems Software: Fast Operating Systems for Fast Application (VINO)

53. Structuring the kernel as a toolkit of extensible, reusable components (VINO)

 


 

MAE Document

 

Application Specific Operating Systems

MAE Document

Lamia Youseff (lyouseff@cs.ucsb.edu)

 

 

Abstract

Several application domains have suffered from the general policies dictated by general purpose OS (GPOS), like the UNIX system [1]. Therefore, since the early 1990s, OS community realized the need for customizable OS, where the application performance can be enhanced by customizing the OS for a certain application. However, since then, no one acceptable system was widely used. In this report, we present our research quest of investigating the feasibility of automatically generating an application specific operating system (ASOS) by customizing GPOS for scientific applications. Our four focus areas in this study are: customizable OS, scientific applications� characterization, Profiling and optimizing techniques, virtual machine monitors.

 

1. Introduction

Since the mid 1960s, operating system (OS) research has been focused on developing general purpose operating systems (GPOS) that can execute all applications, delivering acceptable performance for each. Moreover, in 1974, Dennis M. Ritchie and Ken Thompson from Bell Laboratories introduced the early UNIX system which afterwards became the basics for widely-used production operating systems. Their main design goal for their new OS was to introduce a general, multi-user, interactive OS [1], when they had to trade off some of the system performance to support those features. However, this trade off had hugely harmed the performance of several domains of applications, especially resource intensive ones. Examples of those application domains are database systems, high performance applications and scientific applications. The fundamental performance hinder for those domains was the general polices dictated by the operating system. Thus, in order to enhance their applications performance, those applications developers had to reverse-engineer the OS such that to introduce limited changes for limited performance gains. Their other choice was to build the OS from scratch for an enhanced performance. However, these were not the best solutions out there, since reverse-engineering the OS is a very complicated task, and require the developer to know the OS internals, while the other option of building an OS is even more complicated and time-consuming task.  Therefore, the OS community realized the need for operating systems which can be customized for special kinds of applications.  Since the early 1990s, several contributions in Customizable OS were made from a number of research groups [2-5, 20-25]. Several approaches were considered to develop those flexible OSes including extensible OS, OS frameworks and OS libraries. However, no one customizable OS was widely acceptable and used, due to the several complications involved in developing and deploying such systems, and/or the high overhead induced by the customizations mechanisms on the new system's performance.

 

Therefore, the need for an application specific OS was evident to many of those application domains developers. In this study, we are pursuitting the quest of developing an efficient application specific operating system (ASOS). We are investigating the feasibility of introducing an automatically-generated ASOS, by customizing a GPOS like Linux to obtain an Application Specific Linux (ASL). Efficiency of our ASOS is not only measured in performance gains for the specific application it is developed for, but also in the simplicity of generating the system, the safety of the approach, its portability across different platforms, and its support for legacy applications. We are aiming at avoiding all of the downfalls of the earlier systems, and introducing an ASOS that will be used in production systems as well as in academia.

 

In order to customize a GPOS to enhance the performance of a specific application, we needed to study different research areas related to our goal. First, we realized the crucial need to understand precisely the application's needs and how it is using the H/W resources.   Static and Dynamic profiling of the application gave us a very enlightened insight about the application execution patterns. This insight would guide us through the process of GPOS customization for a certain application. Moreover, to focus our efforts on a specific domain of applications, we chose scientific applications, since they are very resource intensive, and keen to use the computational power on the machinery they are being deployed on. Therefore, automating the development of ASOS for this domain can be used in production systems. Finally, Virtual Machines Monitors (VMM) is another very major research area to investigate, since they allows the sharing of different OSes to the same HW and multiplexes the resources among them. Therefore, we were interested in studying VMM research, and how recent projects were able to eliminate most of the overhead associated with virtualization in VMM.

 

In the rest of this paper, we will overview the most important work done in the four fundamental areas related to our research quest: Customisable OS, VMM, pattern profiling and optimizations, and scientific application. In section 2, we will be illustrating a brief analysis of four important customisable OSes. In section 3, we will compare between three VMM introduced in the last decade, these VMM are Denali, Xen and ADEOS. We will be illustrating more on why we chose scientific applications as our application domain in section 4, as well as specific characteristics of applications in this domain. Finally, pattern profiling and optimization techniques are inspected and illustrated in brief in section 5. We summarized our paper and conclude it in the last section.

 

2. Operating Systems Customizations

Many approaches had been taken to obtain a customizable OS, since this research area started in the early 1990s. However, due to space constraints, we will only illustrate on the most important approaches taken in that regard. Nevertheless, the different approaches' main goal was to support the operating system flexibility in order to give it the ability to enhance its applications performance.

 

The first approach was introduced by MIT systems group through their Exokernel [2] project. The idea was to give the application developer more flexibility and control over the hardware, by separating HW protection from mechanism implementation.  Thus, Exokernel focused on lowering the kernel interface to just above the hardware,   in such a way to eliminate most of the abstraction from the kernel. The only kernel's responsibility in Exokernel is to protect the physical resources and multiplex them among competing applications. Furthermore, the OS services were then implemented in user-space OS libraries, which can be manipulated by the application's developers hence after. Therefore, the application's developer can specialize the OS library in the best way that serves his/her application's needs. This approach was widely accepted in Academia. However, it did not gain any commercial interest because of the complication of the exported kernel interface, its lack of portability, as well as the complication involved in specializing the OS library for each application. A similar system to Exokernel was SPIN [20], where the application can specialize the kernel services by downloading extensions into it. The kernel was protected against those un-trusted extensions by requiring them to be written in a type-safe language (Modula-3 [36]). On the other hand, several Micro-kernels allowed kernel services specialization through downloaded extensions [34, 35], without verifying the safety of the kernel. They either ensured that the downloaded extensions are from trusted sources (ex. loadable kernel modules [37]), or depended on the good-will of the extensions (ex. MS-DOS) [34]. The latter resulted in the kernel's instability and the introduction of several security holes in the kernel due to allowing un-trusted extensions to run in its protected address.

 

Vino [3, 33, 40] is another OS that also allowed kernel extensions, written in C++ to be downloaded into the kernel. It used software fault isolation (SFI) technique to protect the kernel address space from misbehaving extensions. However, the more interesting aspect in Vino is the self-monitoring, self-adapting OS nature. Vino was designed to allow the kernel to monitor its own operation, analyze the logs of the processes running on it and dynamically decide on deploying and switching between different policies to deliver better application performance. This feature in Vino made it unique among other OS systems. However, Vino designers had only discussed its dynamic nature in their literature, but the system was never implemented [37]. Probably, One of the difficulties that faced the implementation of the project was adapting the system for several applications at the same time. Several applications could have several conflicting HW needs, and thus requires several conflicting OS polices to be adapted at the same time, which was not feasible. However, Vino designers did not reveal the difficulties that faced their system implementation nor did they expose the reasons of their project failure.

 

Specializing commodity operating systems services was a different approach taken by the Synthetix project [4, 5]. In [5], Synthetix specialized UNIX read system call for HP-UX systems, making assumption about the applications usage pattern of the files system. Those assumptions were validated with synthetix guards, whose runtime responsibility was to decide if the assumption is still valid or not. Upon validation of the assumptions, the application would use the specialized version of the OS services; else the general version was used. As an example, consider specializing the FS to be a one-file-fs, where all of the overhead due to locks and checks of having more than one file opened at a time, is eliminated. Synthetix would direct the application to use one-file-fs when there only one file open in the system, and fall back to the original fs when this assumption is broken. Therefore, the application would benefit from by-passing the overhead encountered in normal fs when executing in the specialized fs. Moreover, they also defined a cost/benefit analysis to identify when using specialized OS services would be beneficial to the system. One fundamental drawback of Synthetix is that the system designer should be the one deriving the system assumptions, and defining where the guards should be placed and checked in the OS. This requires prior knowledge of OS internals, which add a huge overhead to the software development cycle.

 

Another class of customizable OS is OS frameworks. OS frameworks provide different components from which a developer can build an OS instance. Scout [32] is an example of this category, where it is a communication oriented operating system, designed to support a certain class of applications; i.e. network applications. A specialized instance of Scout is generated from a collection of modules, which are afterwards optimized based on the application's requirements, in such a way that enhances the applications performance. Other examples of OS frameworks are Flux OSkit [38] and Choices [39].  The main drawback of this category is that all of the OS decisions and configurations must be decided at the design time, initialed by the OS designer. Hence, all of the applications needs have to be well understood and integrated into the OS design phase, as well as being constant and statically-anticipated throughout the application's lifetime. Moreover, OS framework did not simplify any of the complications involved in OS building an OS.

 

Therefore, although different approach were taken to obtain a customizable OS,  all of them (except for Vino) suffered from the same drawback of the complexity associated with customizing OS services for a certain application. It was either the system admin/designer or the application developers' responsibility to customize the OS for a certain application at hand, which add more complication to the already sophisticated software development cycle. We anticipate that this is the major cause of not having any of those systems in production settings. On the other hand, Vino was the only operating system that was dynamically self adapting to the application's needs. But unfortunately, the system was not implemented.

 

3. Virtual Machines Monitors

Virtual machine monitors (VMM) [31] is a technique used to allow sharing of several OSes to the same HW resources. However, the huge overhead associated with virtualization in VMM discouraged the usage of VMM in production system. Recently, Virtualization overhead had been mostly eliminated due to the introduction of the introduction of para-virtaulization [7] technique. Para-virtualization, as defined in [7] is the concept of slightly and strategically modifying the underlying physical hardware architecture while virtualzing it. In this respect, three fundamental projects were of interest to us: Denali [7] (University of Washington), Xen of Cambridge University [8] [9] and ADEOS of Opersys [6].

 

Denali is an isolation kernel, i.e. a simple thin software layer that runs directly on hardware, and whose function is to subdivide the physical resources among a set of fully isolated protection domain. They use the concept of para-virtaulization, where Denali does not precisely emulate the underlying physical hardware. Implementing the concept of para-virtualization in Denali had eliminated most of the overhead normally associated with virtualization. Moreover, Denali provides easy techniques for applications check-pointing, cloning and migration, since it is collecting the memory footprint and virtual device state of the guest OS, running on top of it.

 

Xen is another VMM whose developers had build their system around the concept of para-virtualization. Their reported virtualization overhead; which was also verified by other groups, ranged between 0% for computational intensive applications (SPEC Int2000 scientific code [30]), and 8% for I/O intensive applications (DB-applications), in comparison with UML [29] and VMWare 5-8% overhead for computational intensive applications and 56-88% overhead for I/O intensive applications. Xen also supports Linux, Windows XP and BSD porting with minimal effort. However, the only drawback with Xen is that it was designed for x86 machines. Xen designers did not mention any plans for porting the system to other machines.

 

ADEOS stands for Adaptive Domain Environment for Operating System. Adeos can be seen as a VMM which enables other un-modified OS to run on top of it, where it just virtualized some hardware commands in order to be able to allow sharing of multiple OSes to the same hardware. Meanwhile, ADEOS can be also considered a nano-kernel, since it provides a miniature hardware management facility that can be used thereafter to build a production OS. Performance measure for ADEOS as a VMM was not reported in any of its publications, which discourages us from using ADEOS as a VMM layer below our ASL.            

 

4. Scientific Applications' Characterizations

Scientific Applications are resource-intensive applications domain, which are keen to use the machine's resources in the most efficient method [12]. Therefore, there are several reasons behind our choice of scientific applications as an application domain for experimenting with specializing the Linux kernel for.  First, most production scientific applications are deployed on supercomputing infrastructure, where the user is allocated a certain time period to run his/her code. At the application's runtime, the user is the only user utilizing the infrastructure and his/her application is the only code executing. Meanwhile, most of the time, the OS deployed is Linux, which in its design has traded off performance for time-sharing, multi-user support and protection. However, scientific codes are computational intensive, where in this setting, they would not prefer to trade off performance for these other system services. Moreover, scientific codes execute for long periods of time, which in turn would gain from the dynamic auto-configuration that an ASOS would introduce. Additionally, most scientific application requires check-pointing, and sometimes migration of the computation, which scientific applications developers have to implement. Implementing those OS-level services in the application is an overhead on the software development cycle. Thus, providing those services through an ASOS would help scientific applications' developers to focus more on the actual scientific code.

 

Scientific applications furthermore were reported in several researches to have a repeating pattern in using their physical resources. For example, B. Pasquale et al in [10, 11] made a statistical study of the static and dynamic characteristics of several scientific applications running on SDSC, on the span of a month. They have shown that I/O in most scientific application encounter three basic I/O phases. The first is an initial phases, which initializes the application I/O operation (i.e. reading an input file). This phase is characterized with a burst of I/O operations in small period of time. Then, the next phase is a repeating pattern of I/O operations, which takes most of the applications lifetime. Finally, another burst of I/O operation characterizes the final phase, which is for short period of the applications lifetime. They infer from their study that any scientific application would posses some variation of this behavior.

 

Other researches also studied the characterizations of scientific application, like in [26, 27, 28]. Splash-2 [12, 13] is Stanford scientific application suite, where it characterizes the different characteristics of several scientific codes, and drew possible place for optimization for those codes. Therefore, from the studied made in this area, we can conclude that scientific applications execution patterns can be studied and characterized, and thus it is the best  candidate domain for generating ASOS for.

 

5. Optimization and Profiling techniques 

In order to specialize an operating system for a certain application, we need some techniques to understand the application requirements and usage patterns of the hardware resources. Phase profiling [14,15] is a very useful technique in that respect. A program/application is divided into phases, where each phase represents an interval of the program instructions [14]. The goal of phase profiling is to find the similarities between different program's phases, such that it would discover the application behavior patterns. Similarities can be drawn based on different factors, like I/O behavior of the different phases, computational resource usage, or other HW resources usage. Therefore, using this profiling output, we can use them to understand the application behavior and therefore, customize the OS in the best way to serve that application.

 

Furthermore, Call-graph is another tool that can be used to understand the application behavior, as well as the performance bottlenecks of an ASOS, and optimize the OS based on its output. Lee et al, in [16] used Call graphs to isolate the kernel code used by their application and remove the dead code for smaller kernel footprint for embedded systems. Barton Miller et al [17, 18] also used call-graph to characterize the performance bottlenecks of different applications inside the kernel. They were able to introduce a performance gain of a factor of 2 to their test applications. Paradyn [19] is an automated user-space performance bottleneck finder, where it uses dynamic instrumentation to profile different application functions, and recognizes the performance bottlenecks in each.

 

In addition, Optimization techniques for ASOS can be applied more efficiently than for GPOS, since we have more insight into the application needs and requirements [33]. Several common optimization techniques can be reapplied to our ASOS to eliminate much of the overhead encountered with the general polices of GPOS and outcome better performance for our system. Common optimization techniques include functions inlining, constant folding, value propagation, dead code elimination ...etc. Moreover, Inlining the application code into ASOS kernel space is another fine approach to eliminate most of the overhead encountered with domains-crossing. More optimization techniques can be applied in this respect.

 

6. Conclusion

In this paper, we defended the idea of Application specific operating systems (ASOS) and illustrated how it would be useful to certain domains of applications, specifically scientific applications. We had surveyed some efforts done in the area of customizable OS. Given that there is no one acceptable solution in this area till the time of writing this document, we are planning to avoid the down falls of these researches and aim at introducing a system that can be used as a production system as well as in academia. We will design our system for scientific application, which were described by several researches to posses certain patterns of operation. This property makes it feasible to predict scientific applications' hardware needs, and effectively specialize the OS to best serve it. We had also discussed several profiling and optimization techniques. Finally, we described the para-virtualization concept, as well as describing 3 VMM projects that implemented that concept to eliminate virtualization overhead in VMM. Combining the knowledge from these four different areas, ASOS would be a very effective and performance-oriented tool for deploying production scientific codes, as well as other application domains in the future.

 

References:


 

[1] Dennis Ritchie, Ken Thompson, The UNIX Time-Sharing System, ACM Communications. ACM 17(7): 365-375 (1974).

[2] Kaashoek, M.F., D.R. Engler, G.R. Ganger, H.M. Briceno, R. Hunt, D. Mazieres, T. Pinckney, R. Grimm, J. Jannotti and K. Mackenzie, Application Performance and Flexibility on Exokernel Systems, Proceedings of the 16th Symposium on Operating Systems Principles, (Oct. 1997), pp. 52-65

[3] M. I. Seltzer and C. Small, Self-monitoring and self-adapting operating systems. In Proceedings of the Sixth workshop on Hot Topics in Operating Systems, 1997

[4] Crispin Cowan, Tito Autrey, Charles Krasic, Calton Pu, and Jonathan Walpole, Fast Concurrent Dynamic Linking for an Adaptive Operating System, In International Conference on Configurable Distributed Systems (ICCDS'96), Annapolis, MD, May 1996.

[5] C. Pu, T. Autrey, A. Black, C. Consel, C. Cowan, J. Inouye, L. Kethana, J. Walpole, and K. Zhang, Optimistic Incremental Specialization: Streamlining a Commercial Operating System, In Proceedings of the 1995 ACM Symposium on Operating Systems Principles, Copper Mountain Resort, CO, USA, pages 314--324, December 1995

[6] Karim Yaghmour, "Adaptive Domain Environment for Operating Systems", Opersys Inc., June 2002

[7] Andrew Whitaker, Marianne Shaw, and Steven D. Gribble, Denali: A Scalable Isolation Kernel, Proceedings of the Tenth ACM SIGOPS European Workshop, Saint-Emilion, France, September 2002.

[8] Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebar, Ian Pratt and Andrew Warfield, Xen and the art of virtualization, In the Proceedings of the ACM Symposium on Operating Systems Principles (SOSP), October 2003

[9] Paul R Barham, Boris Dragovic, Keir A Fraser, Steven M Hand, Timothy L Harris, Alex C Ho, Evangelos Kotsovinos, Anil V S Madhavapeddy, Rolf Neugebauer, Ian A Pratt and Andrew K Warfield, Xen 2002, Technical Report UCAM-CL-TR-553, January 2003

[10] Barbara K. Pasquale and George C. Polyzos, "Dynamic I/O Characterization of I/O Intensive Scientific Applications", Proceedings of Supercomputing '94, Washington, D.C., November 14-18

[11] Barbara K. Pasquale and George C. Polyzos, "Dynamic I/O Characterization of I/O Intensive Scientific Applications", Proceedings of Supercomputing '94, Washington, D.C., November 14-18, 1994

[12] Steven Cameron Woo, Moriyoshi Ohara, Evan Torrie, Jaswinder Pal Singh, and Anoop Gupta, The SPLASH-2 Programs: Characterization and Methodological Considerations, In Proceedings of the 22nd International Symposium on Computer Architecture, pages 24-36, Santa Margherita Ligure, Italy, June 1995.

[13] HomePage of Stanford Parallel Applications for Shared Memory (SPLASH), http://www-flash.stanford.edu/apps/SPLASH/

[14]  Priya Nagpurkar and Chandra Krintz, Visualization and Analysis of Phased Behavior in Java Programs, ACM International Conference on the Principles and Practice of Programming in Java (PPPJ) June 16-18, 2004, Las Vegas, NV.

[15] D. W. Wall, Predicting program behavior using real or estimated profiles, In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, 1991

[16] Chi-Tai Lee, Jim-Min Lin, Zeng-Wei Hong and Wei-Tson Lee, An Application-Oriented Linux Kernel Customization for embedded Systems, Journal of Information Science and Engineering, Vol. 20 No. 6, pp. 1093-1107 (November 2004)

[17] Alexander V. Mirgorodskiy and Barton P. Miller, CrossWalk: A Tool for Performance Profiling Across the User-Kernel Boundary, in International Conference on Parallel Computing (ParCo), Dresden, Germany, September 2003.

[18] Andrew R. Bernat and Barton P. Miller, Incremental Call-Path Profiling, Technical report (University of Wisconsin-Madison, February 2004)

[19] Harold W. Cain, Barton P. Miller, and Brian J.N. Wylie, A Callgraph-Based Search Strategy for Automated Performance Diagnosis, in Euro-Par 2000 (Munich, Germany, August 2000).

[20] Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, and Susan Chambers, Craig an Eggers, Extensibility, safety and performance in the spin operating system, In Proc. of the 15th ACM Symposium on Operating Systems Principles (SOSP '95), pages 267--284, December 1995.

[21] Lance Shuler, Rolf Riesen, Chu Jong, David van Dresser, Arthur B. Maccabe, Lee Ann Fisk, and T. Mack Stallcup. The Puma operating system for massively parallel computers. In Proceedings of the Intel Supercomputer Users' Group. 1995 Annual North America Users' Conference, June 1995.

[22] A. Veitch & N. Hutchinson: Kea - A Dynamically Extensible and Configurable Operating System Kernel, In Proceedings of the Third International Conference on Configurable Distributed Systems, IEEE Press, pp 236-242, May 1996.

[23] Doug Ghormley, David Petrou, Steven Rodrigues, and Thomas Anderson.  SLIC: An Extensibility System for Commodity Operating Systems, USENIX Technical Conference 1998, June 1998.

[24] Antonio Augusto Frohlich and Wolfgang Schroder-Preikschat, High Performance Application-Oriented Operating Systems -- the EPOS Aproach, In: Proceedings of the 11th Symposium on Computer Architecture and High Performance Computing, pages 3-9, Natal, Brazil, 1999

[25] Hulse,D. and Dearle,A, Trends in Operating Systems Design: Towards a Customizable Persistent Micro-kernel, Report Pastel RT1R4. University of Stirling 1998.

[26] Distinctive characteristics of scientific applications, the International Federation for Information Processing Report, Ottawa, Ontario, Canada, October 2000.

[27] Jeffrey S. Vetter, Frank Mueller: Communication characteristics of large-scale scientific applications for contemporary cluster architectures, J. Parallel Distrib. Comput. 63(9): 853-865 (2003)

[28] L. Carrington, A. Snavely, N. Wolter, X. Gao, A Performance Prediction Framework for Scientific Applications, in Proc. Workshop on Performance Modeling and Analysis, ICCS, Melbourne, Australia, June 2003.

[29] J. Dike. A User-mode Port of the Linux Kernel. In Proceedings of the 4th Annual Linux Showcase & Conference, 2000.

[30] SPEC: Standard Performance Evaluation cooperation, http://www.spec.org.

[31] Rune Johan Andresen, Virtual Machine Monitores, CERN OpenLab for Data grid application, August 2004. Summer Reports.

[32] A. B. Montz, D. Mosberger, S. W. O'Malley, L. L. Peterson, T. A. Proebsting. Scout: A Communications-Oriented Operating System, Hot OS conference, May 1995

[33] Margo Seltzer, Christopher Small, Michael D. Smith, Symbiotic Systems Software, Workshop on Compiler Support for Systems Software (WCSSS '96)

[34] Hulse,D. and Dearle,A. Trends in Operating Systems Design: Towards a Customizable Persistent Micro-kernel. Report Pastel RT1R4. University of Stirling 1998.

[35] Seltzer, M., Endo, Y., Small, C., Smith, K., Issues in Extensible Operating Systems. Harvard University Computer Science Technical Report TR-18-97, November 1997

[36] G. Nelson, System Programming in Modula-3, Prentice Hall, 1991.

[37] G. Denys, G. Piessens, and F. Matthijis, A Survey of Customizability in Operating Systems Research, ACM Computing Surveys (CSUR), Vol. 34, Issue 4, Pages 450 - 468, Dec., 2002.

[38] Ford, B., Back, G., Benson, G., Lepreau, J., Lin, A., and Shivers, O. 1997. The flux OSKit: A substrate for kernel and language research. In Proceedings of the 16th ACM Symposium on Operating Systems

Principles. 38-51.

[39] Campbell, R., Islam, N., Raila, D., And Madany, P. 1993. Designing and implementing Choices: an object-oriented system in C++. Commun. ACM 36, 9, 117-126.

[40] Christopher Small and Margo Seltzer, Structuring the Kernel as a Toolkit of Extensible, Reusable Components, Proceedings of the 1995 International Workshop on Object Orientation in Operating Systems (IWOOOS '95).

 

 

Department of Computer Science University of California, Santa Barbara