Results 1 - 10
of
13
On the Integration of Concurrency, Distribution and Persistence
, 1993
"... The principal tenet of the persistence model is that it abstracts over all the physical properties of data such as how long it is stored, where it is stored, how it is stored, what form it is kept in and who is using it. Experience with programming systems which support orthogonal persistence has sh ..."
Abstract
-
Cited by 23 (7 self)
- Add to MetaCart
The principal tenet of the persistence model is that it abstracts over all the physical properties of data such as how long it is stored, where it is stored, how it is stored, what form it is kept in and who is using it. Experience with programming systems which support orthogonal persistence has shown that the simpler semantics and reduced complexity can often lead to a significant reduction in software production costs. Persistent systems are relatively new and it is not yet clear which of the many models of concurrency and distribution best suit the persistence paradigm. Previous work in this area has tended to build one chosen model into the system which may then only be applicable to a particular set of problems. This thesis challenges the orthodoxy by designing a persistent framework in which all models of concurrency and distribution can be integrated in an add-on fashion. The provision of such a framework is complicated by a tension between the conceptual ideas of persistence...
Multithreaded Architectures: Principles, Projects and Issues
, 1994
"... The architecture of future high performance computer systems will respond to the possibilities offered by technology and to the increasing demand for attention to issues of programmability. Multithreaded processing element architectures are a promising alternative to RISC architecture and its multip ..."
Abstract
-
Cited by 23 (12 self)
- Add to MetaCart
The architecture of future high performance computer systems will respond to the possibilities offered by technology and to the increasing demand for attention to issues of programmability. Multithreaded processing element architectures are a promising alternative to RISC architecture and its multiple-instruction-issue extensions such as VLIW, superscalar, and superpipelined architectures. This paper presents an overview of multithreaded computer architectures and the technical issues affecting their prospective evolution. We introduce the basic concepts of multithreaded computer architecture and describe several architectures representative of the design space for multithreaded, parallel computers. We review design issues for multithreaded processing elements intended for use as the node processor of parallel computers for scientific computing. These include the question of choosing an appropriate program execution model, the organization of the processing element to achieve good utilization of major resources, support for fine-grain interprocessor communication and global memory access, compiling machine code for multithreaded processors, and the challenge of implementing virtual memory in large-scale multiprocessor systems.
A Modular Verifiable Exception-Handling Mechanism
- ACM Transactions on Programming Languages and Systems
, 1985
"... This paper presents a new model for exception handling, called the replacement model. The replacement model, in contrast to other exception-handling proposals, supports all the handler responses of resumption, termination, retry, and exception propagation, within both statements and expressions, in ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
This paper presents a new model for exception handling, called the replacement model. The replacement model, in contrast to other exception-handling proposals, supports all the handler responses of resumption, termination, retry, and exception propagation, within both statements and expressions, in a modular, simple, and uniform fashion. The model can be embedded in any expression-oriented language and can also be adapted to languages which are not expression oriented with almost all the above advantages. This paper presents the syntactic extensions for embedding the replacement model into Algol 68 and its operational semantics. An axiomatic semantic definition for the model can be found in [271. Categories and Subject Descriptors: D.3.3 [Programming Languages]: Language Constructsabstract
Delivering the Benefits of Persistence to System Construction and Execution
, 1992
"... In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the fi ..."
Abstract
-
Cited by 18 (5 self)
- Add to MetaCart
In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the first implementations of persistent languages, typically consisting of a persistent store, a run-time system and a compiler that produces programs that may access and manipulate the persistent environment. This thesis demonstrates that persistence can deliver many further benefits to the programming process when applied to software construction and execution. To support the thesis, a persistent environment has been extended with all the components necessary to support program construction and execution entirely within the persistent environment. This is the first known example of a strongly-typed integrated persistent programming environment. The keystone of this work is the construction of ...
CONS Should not CONS its Arguments, or, a Lazy Alloc is a Smart Alloc
- ACM Sigplan Not
, 1992
"... Lazy allocation is a model for allocating objects on the execution stack of a high-level language which does not create dangling references. Our model provides safe transportation into the heap for objects that may survive the deallocation of the surrounding stack frame. Space for objects that do no ..."
Abstract
-
Cited by 15 (11 self)
- Add to MetaCart
Lazy allocation is a model for allocating objects on the execution stack of a high-level language which does not create dangling references. Our model provides safe transportation into the heap for objects that may survive the deallocation of the surrounding stack frame. Space for objects that do not survive the deallocation of the surrounding stack frame is reclaimed without additional effort when the stack is popped. Lazy allocation thus performs a first-level garbage collection, and if the language supports garbage collection of the heap, then our model can reduce the amortized cost of allocation in such a heap by filtering out the short-lived objects that can be more efficiently managed in LIFO order. A run-time mechanism called result expectation further filters out unneeded results from functions called only for their effects. In a shared-memory multi-processor environment, this filtering reduces contention for the allocation and management of global memory. Our model performs s...
Third generation computer systems
- ACM Computing Surveys
, 1971
"... The common features of third generation operating systems are surveyed from a general view, with emphasis on the common abstractions that constitute at least the basis for a "theory " of operating systems. Properties of specific systems are not discussed except where examples are useful. T ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
The common features of third generation operating systems are surveyed from a general view, with emphasis on the common abstractions that constitute at least the basis for a "theory " of operating systems. Properties of specific systems are not discussed except where examples are useful. The technical aspects of issues and concepts are stressed, the nontechnical aspects mentioned only briefly. A perfunctory knowledge of third generation systems is presumed. Key words and phrases: multiprogramming systems, operating systems, supervisory systems, time-sharing systems, programming, storage allocation, memory allocation, processes, concurrency, parallelism, resource allocation, protection CR categories: 1.3, 4.0, 4.30, 6.20 It has been the custom to divide the era of electronic computing into "generations" whose approximate dates are:
Formalization and Application of a Unifying Model for Name Management
- IN THE THIRD SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING
, 1995
"... Name management is among the most basic foundations of software engineering, since so many software engineering tools and techniques fundamentally depend upon manipulation of names and the entities that they represent. While many individual tools and techniques have included their own specialized, o ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
Name management is among the most basic foundations of software engineering, since so many software engineering tools and techniques fundamentally depend upon manipulation of names and the entities that they represent. While many individual tools and techniques have included their own specialized, often elaborate and idiosyncratic, approaches to name management, no unifying models for name management currently exist. As a result, the individual approaches are frequently complex and error-prone, while attempts to integrate collections of software engineering tools or techniques are often impeded by the inconsistency and incompatibility of the name management approaches used in the individual components of the collection. In this paper we consider some examples in which name management problems complicate software engineering activities. In particular, we focus on context control-related problems that often occur during software development. We then outline a unifying model of name manag...
Persistent Foundations for Scalable Multi-Paradigmal Systems
, 1992
"... Problems with the inconsistent behaviour of system construction components for building large and long-lived application systems are identified. They make the programmer's task harder and the user's world more confusing in the same way that the disharmonies between programming languages and database ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Problems with the inconsistent behaviour of system construction components for building large and long-lived application systems are identified. They make the programmer's task harder and the user's world more confusing in the same way that the disharmonies between programming languages and databases did. Persistent programming languages overcame those disharmonies. This paper challenges researchers to design and build a common substrate to the construction components. The construction components would be re-built using the substrate to achieve consistent behaviour. Application systems would then use this new family of construction components. The substrate, called the Scalable Persistent Foundation promises several advantages: consistent application system behaviour even when under stress, accelerated application system building and maintenance, genuine longevity of application systems and improved operational efficiency. The search for a design and implementation of this foundation w...
Task Dependence and Termination in Ada
- ACM Transactions on Software Engineering and Methodology
"... We use a contour model of Ada tasking to analyze the semantics of task dependence and termination. Our analysis clarifies the complex definitions and rules that determine when procedures and tasks terminate during execution of an Ada program and examines the implications of and possible motivation f ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
We use a contour model of Ada tasking to analyze the semantics of task dependence and termination. Our analysis clarifies the complex definitions and rules that determine when procedures and tasks terminate during execution of an Ada program and examines the implications of and possible motivation for the termination rules. We show that the termination rules prevent the premature deallocation of data associated with the runtime-instances of scope units, but that the policy is unnecessarily conservative in this regard. For task instances created by invoking a storage allocator, we show that the conservative termination policy permits more efficient management of heap storage than a less conservative policy. We also examine the impact of the termination rules in Ada on the synchronization of concurrent unit instances. The rules are shown to support both master-slave and client-server applications. In particular, we show how the rules governing distributed termination guarantee that the t...
A Visual Execution Model for Ada Tasking
- ACM Trans. Software Engineering and Methodology
, 1993
"... A visual execution model for Ada tasking can help programmers attain a deeper understanding of the tasking semantics. It can illustrate subtleties in semantic definitions that are not apparent in natural language descriptions of Ada tasking, as well as the consequences of choices made in the languag ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
A visual execution model for Ada tasking can help programmers attain a deeper understanding of the tasking semantics. It can illustrate subtleties in semantic definitions that are not apparent in natural language descriptions of Ada tasking, as well as the consequences of choices made in the language design. We describe a contour model of Ada tasking that depicts asynchronous tasks (threads of control), relationships between the environments in which tasks execute, and the manner in which tasks interact. The use of this high-level execution model makes it possible to see what happens during execution of a program. The paper provides an introduction to the contour model of Ada tasking and demonstrates its use. 1 Introduction The Ada programming language is intended for use in real-time applications such as flight navigation or process control software. For this reason, tasking figures prominently in the language design. The semantics of tasking, however, is extremely complex. At the sa...

