Results 1 - 10
of
30
Quantifying behavioral differences between C and C++ programs
- JOURNAL OF PROGRAMMING LANGUAGES
, 1994
"... Improving the performance of C programs has been a topic of great interest for many years. Both hardware technology and compiler optimization research has been applied in an effort to make C programs execute faster. In many application domains, the C++ language is replacing C as the programming lang ..."
Abstract
-
Cited by 83 (15 self)
- Add to MetaCart
Improving the performance of C programs has been a topic of great interest for many years. Both hardware technology and compiler optimization research has been applied in an effort to make C programs execute faster. In many application domains, the C++ language is replacing C as the programming language of choice. In this paper, we measure the empirical behavior of a group of significant C and C++ programs and attempt to identify and quantify behavioral differences between them. Our goal is to determine whether optimization technology that has been successful for C programs will also be successful in C++ programs. We furthermore identify behavioral characteristics of C++ programs that suggest optimizations that should be applied in those programs. Our results show that C++ programs exhibit behavior that is significantly different than C programs. These results should be of interest to compiler writers and architecture designers who are designing systems to execute object-oriented programs.
Persistence and Migration for C++ Objects
, 1989
"... We describe the support to object management of the distributed object-oriented operating system SOS. We discuss the integration of object migration and storage into C++ programs, a language not designed for that purpose. The necessary support is split between the compiler and a run-time object mana ..."
Abstract
-
Cited by 46 (5 self)
- Add to MetaCart
We describe the support to object management of the distributed object-oriented operating system SOS. We discuss the integration of object migration and storage into C++ programs, a language not designed for that purpose. The necessary support is split between the compiler and a run-time object management system. Migration and storage preserve the type and structure of the objects, which may be user-defined and arbitrarily complex. Our mechanisms are simple, generic, and require little programmer intervention. The key elements are dynamic classes, a generalized pointer type which allows to efficiently refer to an object, pre-requisite objects, and a mechanism for object re-initialization. Keywords: persistence, migration, dynamic linking, dynamic type-checking, C++, object-oriented operating system, SOS 1 INTRODUCTION We present some aspects of the object management support in the SOS operating system [Sha86a]. SOS is a research program to build a distributed operating system, where ...
A Reflective Architecture for an Object-Oriented Distributed Operating System
- of Sony Computer Science Laboratory Inc
, 1989
"... This paper proposes the Muse object model which provides a reflective architecture for an object-oriented distributed operating system. The model makes a clear distinction between meta hierarchy and class hierarchy. It provides an inheritance mechanism for programming/compile-time facility and a del ..."
Abstract
-
Cited by 45 (10 self)
- Add to MetaCart
This paper proposes the Muse object model which provides a reflective architecture for an object-oriented distributed operating system. The model makes a clear distinction between meta hierarchy and class hierarchy. It provides an inheritance mechanism for programming/compile-time facility and a delegation mechanism for run-time facility. It also helps to manage physical resources which are indispensable in describing operating systems. The paper also describes the structure of the Muse operating system which is being implemented based on the Muse object model. 1 INTRODUCTION Several distributed operating systems have been designed and implemented including V-system[Cheriton 88], Amoeba[Mullender 85], Clouds[Dasgupta 86], Mach[Young 87], Choices[Campbell 87], Sprite[Ousterhout 87], and DASH[Anderson 88]. These systems have some common features: they are open-ended, composed of collections of processes which can be created at a low cost, and the kernels of these systems are implemente...
Transport System Architecture Services for High-Performance Communications Systems
- IEEE Journal on Selected Areas in Communication
, 1993
"... Providing end-to-end gigabit communication support for high-bandwidth multimedia applications requires transport systems that transfer data efficiently via network protocols such as TCP, TP4, XTP, and STII. This paper describes and classifies transport system services that integrate operating syst ..."
Abstract
-
Cited by 36 (14 self)
- Add to MetaCart
Providing end-to-end gigabit communication support for high-bandwidth multimedia applications requires transport systems that transfer data efficiently via network protocols such as TCP, TP4, XTP, and STII. This paper describes and classifies transport system services that integrate operating system resources such as CPU(s), virtual memory, and I/O devices together with network protocols to support distributed multimedia applications running on local and wide area networks. A taxonomy is presented that compares and evaluates four commercial and experimental transport systems in terms of their protocol processing support. The systems covered in this paper include System V UNIX STREAMS, the BSD UNIX networking subsystem, the x-kernel, and the Choices Conduit system. This paper is intended to navigate researchers and developers through the transport system design space by describing alternative approaches for key transport system services. 1 Introduction Transport systems integ...
An Object-Oriented Operating System
, 1991
"... ion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 3.1.3 Inheritance and Subclassing : : : : : : : : : : : : : : : : : : : : : : : : : : 32 3.1.4 Polymorphism : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 3.2 Definitions : : : : : : : : : : : : : : : : : : ..."
Abstract
-
Cited by 34 (2 self)
- Add to MetaCart
ion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 3.1.3 Inheritance and Subclassing : : : : : : : : : : : : : : : : : : : : : : : : : : 32 3.1.4 Polymorphism : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 3.2 Definitions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 36 3.2.1 Object-Oriented Language : : : : : : : : : : : : : : : : : : : : : : : : : : : 36 3.2.2 Object-Oriented System : : : : : : : : : : : : : : : : : : : : : : : : : : : : 37 3.3 Summary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 38 4 Object-Oriented Operating Systems : : : : : : : : : : : : : : : : : : : : : : : : 40 4.1 Definition of an Object-Oriented Operating System : : : : : : : : : : : : : : : : : 40 4.2 Advantages of Object-Oriented Operating Systems : : : : : : : : : : : : : : : : : 43 4.2.1 Portability Advantages : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 43 4.2.2 Code Sharing Adv...
Choices, Frameworks and Refinement
, 1991
"... In this paper, we present a method for designing operating systems using object-oriented frameworks. A framework can be refined into subframeworks. Constraints specify the interactions between the subframeworks. We describe how we used object-oriented frameworks to design Choices, an object-oriented ..."
Abstract
-
Cited by 27 (2 self)
- Add to MetaCart
In this paper, we present a method for designing operating systems using object-oriented frameworks. A framework can be refined into subframeworks. Constraints specify the interactions between the subframeworks. We describe how we used object-oriented frameworks to design Choices, an object-oriented operating system. 1 Frameworks in an Object-Oriented Operating System The design of Choices[1], an object-oriented operating system, comprises a hierarchy of frameworks. In the design, the concept of a framework subsumes the conventional organization of an operating system into layers. Frameworks not only allow the design of layers, but they also permit the construction of more complex structures. The use of frameworks permits design and code reuse and the consistent imposition of design constraints on all software, independent of the level at which it may be used. The object-oriented operating system approach builds system software that models system resources and resource management as...
ADAPTIVE: An Object-Oriented Framework for Flexible and Adaptive Communication Protocols
, 1993
"... Traditional transport systems do not adequately provide the functionality or flexibility required by existing and future multimedia applications. Conventional protocol architectures based on a static configuration of relatively few protocols are incapable of providing the level of performance the ch ..."
Abstract
-
Cited by 23 (7 self)
- Add to MetaCart
Traditional transport systems do not adequately provide the functionality or flexibility required by existing and future multimedia applications. Conventional protocol architectures based on a static configuration of relatively few protocols are incapable of providing the level of performance the channel is capable of producing while still performing the processing needed by the application. Multimedia applications require transport systems that can be configured to match the the functional requirements of diverse multimedia traffic sources as well as capable of adapting to the dynamism inherent in multimedia applications and heterogeneous internetworks. This paper describes ADAPTIVE, a transport system architecture to support multimedia applications for high-speed networks. The ADAPTIVE system applies object-oriented design and implementation techniques to build an integrated framework for protocol specification, composition, prototyping and experimentation. It utilizes a hierarchical...
Reliable Distributed Programming in C++: the Arjuna Approach
- In Second Usenix C++ Conference
, 1990
"... Programming in a distributed system is fraught with potential difficulties caused, in part, by the physical distribution of the system itself. By making the distribution of the system transparent it is hoped that the task becomes comparable with that of programming a more traditional centralised sys ..."
Abstract
-
Cited by 23 (1 self)
- Add to MetaCart
Programming in a distributed system is fraught with potential difficulties caused, in part, by the physical distribution of the system itself. By making the distribution of the system transparent it is hoped that the task becomes comparable with that of programming a more traditional centralised system. Objectoriented programming systems are natural starting points for such an attempt due to the inherent modularisation and encapsulation properties they possess. Arjuna is one such system, programmed in C++, which permits the construction of reliable distributed applications in a relatively transparent manner. Objects in Arjuna can be located anywhere in the distributed system and are accessed as if they were purely local to the application. The use of remote procedure calls to perform the actual accesses is hidden by the use of stub generation techniques which operate on the original C++ class descriptions thus furthering the illusion of transparency. Reliability is achieved through the provision of traditional atomic transaction mechanisms implemented using only standard language features. 1.
Virtual Memory and Backing Storage Management in Multiprocessor Operating Systems Using Object-Oriented Design Techniques
- Proceedings of OOPSLA '89
, 1989
"... The Choices operating system architecture [?, ?, ?] uses class hierarchies and object-oriented programming to facilitate the construction of customized operating systems for shared memory and networked multiprocessors. The software is being used in the Tapestry Parallel Computing Laboratory at the U ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
The Choices operating system architecture [?, ?, ?] uses class hierarchies and object-oriented programming to facilitate the construction of customized operating systems for shared memory and networked multiprocessors. The software is being used in the Tapestry Parallel Computing Laboratory at the University of Illinois to study the performance of algorithms, mechanisms, and policies for parallel systems. This paper describes the architectural design and class hierarchy of the Choices memory and secondary storage management system.

