Results 1 - 10
of
31
Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java
- In Proceedings of the 4th Symposium on Operating Systems Design and Implementation
, 2000
"... Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: inter-application memory protection and basic system services. They do not, however, p ..."
Abstract
-
Cited by 70 (8 self)
- Add to MetaCart
Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: inter-application memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other, or limit their resource consumption. This paper describes KaffeOS, a system that provides these features for a Java runtime. The KaffeOS architecture takes many lessons from operating system design, such as the use of a user/kernel boundary.
Java operating systems: Design and implementation
, 1998
"... Language-based extensible systems such as Java use type safety to provide memory safety in a single address space. Memory safety alone, however, is not sufficient to protect different applications from each other. Such systems must support a process model that enables the control and management of c ..."
Abstract
-
Cited by 48 (5 self)
- Add to MetaCart
Language-based extensible systems such as Java use type safety to provide memory safety in a single address space. Memory safety alone, however, is not sufficient to protect different applications from each other. Such systems must support a process model that enables the control and management of computational resources. In particular, language-based extensible systems must support resource control mechanisms analogous to those in standard operating systems. They must support the separation of processes and limit their use of resources, but still support safe and efficient interprocess communication. We demonstrate how this challenge can be addressed in Java operating systems. First, we describe the technical issues that arise when implementing a process model in Java. In particular, we lay out the design choices for managing resources. Second, we describe the solutions that we are exploring in two complementary projects, Alta and GVM. GVM is similar to a traditional monolithic kernel, whereas Alta closely models the Fluke operating system. Features of our prototypes include flexible control of processor time using CPU inheritance scheduling, per-process memory controls, fair allocation of network bandwidth, and execution directly on hardware using the OSKit. Finally, we compare our prototypes with other language-based operating systems and explore the tradeoffs between the various designs. 1
Continuous Program Optimization: A Case Study
- ACM Transactions on Programming Languages and Systems
, 2003
"... This paper presents a system that provides code generation at load-time and continuous program optimization at run-time. First, the architecture of the system is presented. Then, two optimization techniques are discussed that were developed specifically in the context of continuous optimization. The ..."
Abstract
-
Cited by 38 (7 self)
- Add to MetaCart
This paper presents a system that provides code generation at load-time and continuous program optimization at run-time. First, the architecture of the system is presented. Then, two optimization techniques are discussed that were developed specifically in the context of continuous optimization. The first of these optimizations continually adjusts the storage layouts of dynamic data structures to maximize data cache locality, while the second performs profile-driven instruction re-scheduling to increase instruction-level parallelism. These two optimizations have very di#erent cost/benefit ratios, presented in a series of benchmarks. The paper concludes with an outlook to future research directions and an enumeration of some remaining research problems. The empirical results presented in this paper make a case in favor of continuous optimization, but indicate that it needs to be applied judiciously. In many situations, the costs of dynamic optimizations outweigh their benefit, so that no break-even point is ever reached. In favorable circumstances, on the other hand, speed-ups of over 120% have been observed. It appears as if the main beneficiaries of continuous optimization are shared libraries, which at di#erent times can be optimized in the context of the currently dominant client application.
Automated Data-Member Layout of Heap Objects to Improve Memory-Hierarchy Performance
- ACM Transactions on Programming Languages and Systems
, 2000
"... this article, we present an optimization technique that increases memory performance specifically for pointer-centric applications. Our optimization is based on determining the best internal storage layout for dynamically allocated data structures. It applies to programming languages that are fully ..."
Abstract
-
Cited by 30 (7 self)
- Add to MetaCart
this article, we present an optimization technique that increases memory performance specifically for pointer-centric applications. Our optimization is based on determining the best internal storage layout for dynamically allocated data structures. It applies to programming languages that are fully type-safe, such as Java Parts of this work are funded by a CAREER award from the National Science Foundation (CCR-- 97014000) and by the California MICRO Program with industrial sponsor Microsoft Research (Project No. 99-039). Authors' addresses: T. Kistler, Transmeta Corporation, 3940 Freedom Circle, Santa Clara, CA 95054; M. Franz, Department of Information and Computer Science, University of California at Irvine, Irvine, CA 92697--3425.
Techniques for the Design of Java Operating Systems
- In Proceedings of the 2000 Usenix Annual Technical Conference
, 2000
"... Language-basedextensible systems, such as Java Virtual Machines and SPIN, use type safety to provide memory safety in a single address space. By using software to provide safety, they can support more efficient IPC. Memory safety alone, however, is not sufficient to protect different applications fr ..."
Abstract
-
Cited by 29 (3 self)
- Add to MetaCart
Language-basedextensible systems, such as Java Virtual Machines and SPIN, use type safety to provide memory safety in a single address space. By using software to provide safety, they can support more efficient IPC. Memory safety alone, however, is not sufficient to protect different applications from each other. Such systems need to support a process model that enables the control and management of computational resources. In particular, language-based extensible systems should support resource control mechanisms analogous to those in standard operating systems. They need to support the separation of processes and limit their use of resources, but still support safe and efficient IPC. We demonstrate how this challenge is being addressed in several Java-based systems. First, we lay out the design choices when implementing a process model in Java. Second, we compare the solutions that have been explored in several projects: Alta, K0, and the J-Kernel. Alta closely models the Fluke oper...
The Formal Specification of Oberon
- Journal of Universal Computer Science
, 1997
"... : This paper presents the formal specification of the programming language Oberon. Using Montages we give a description of syntax, static, and dynamic semantics of all constructs of the language. The specification is arranged in five refinement steps, each of them results in a working sub--language ..."
Abstract
-
Cited by 21 (9 self)
- Add to MetaCart
: This paper presents the formal specification of the programming language Oberon. Using Montages we give a description of syntax, static, and dynamic semantics of all constructs of the language. The specification is arranged in five refinement steps, each of them results in a working sub--language of Oberon. The compactness and readability of the specification make us believe that it can be used for a reference manual. Key Words: abstract state machines, Oberon, Montages, programming languages specifications, reference manuals Category: F.3.2, D.3.1, D3.3 1 Introduction In this paper we present the formal specification of the programming language Oberon [7] using Montages taking advantage of existing ASM specifications of the dynamic semantics of imperative programming languages [1, 2, 6, 3]. A detailed presentation of Montages is given in [4]. The language specification is presented as a sequence of five sub-languages of Oberon (O 1 (section 2), O 2 (section 3), O 3 (section 4.1),...
Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine)
- In Proceedings of the 1999 ACM International Conference on Functional Programming (ICFP ’99
, 1999
"... The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme's read-eval-print loop. We describe the key elements of the MrEd virtual machine for building ..."
Abstract
-
Cited by 21 (6 self)
- Add to MetaCart
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme's read-eval-print loop. We describe the key elements of the MrEd virtual machine for building a programming environment, and we step through the implementation of a miniature version of DrScheme in MrEd. More generally, we show how MrEd defines a high-level operating system for graphical programs. 1 MrEd: A Scheme Machine The DrScheme programming environment [10] provides students and programmers with a user-friendly environment for developing Scheme programs. To make programming accessible and attractive to novices, DrScheme provides a thoroughly graphical environment and runs under several major windowing systems (Windows, MacOS, and Unix/X). More than 60 universities and high schools currently employ DrScheme in their computing curriculum, and new schools adopt DrScheme every s...
Component-Based Software Development - A New Paradigm in Software Engineering?
- in Software Engineering?'. Software-Concepts and Tools
, 1997
"... This paper defines the relevant terms by relating them to the already wellestablished terms of object technology. In particular, the focus lies on a discussion of the deficiencies of the objectoriented paradigm and how componentware might solve these shortcomings. Furthermore, the role of objectorie ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
This paper defines the relevant terms by relating them to the already wellestablished terms of object technology. In particular, the focus lies on a discussion of the deficiencies of the objectoriented paradigm and how componentware might solve these shortcomings. Furthermore, the role of objectoriented frameworks as underlying technology of plug & play software is illustrated. Finally, the paper tries t o answer the question of whether some enhancements of the object-oriented paradigm indeed represent the dawn of a new era of software development.
An Embeddable and Extendable Language for large-scale Programming on the INTERNET
- In Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS'96
, 1995
"... This article addresses the problem of programming by combining already existing programs on the INTERNET. For this, an interpreter based language called Progress is presented. Progress makes it possible to use and combine programs and functionalities provided by various servers in a simple and eleg ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
This article addresses the problem of programming by combining already existing programs on the INTERNET. For this, an interpreter based language called Progress is presented. Progress makes it possible to use and combine programs and functionalities provided by various servers in a simple and elegant way, similar to what a UNIX shell does for locally available programs. Moreover, the inherent parallelism, which is given due to the fact that programs may reside on different hosts, can be fully exploited in Progress. Other important features of Progress are that the language can be extended by new data types and that it is embeddable in other software systems. This article presents the main concepts and ideas of Progress and gives an overview of the language. 1. Introduction This article addresses the problem of "large-scale programming ", which means programming by combining already existing programs and services, which may reside on one or more computer systems. For instance, typic...

