Context-enabled applications adapt their behaviour according to the context of use. We observe that this kind of applications imply a severe increase of runtime variability. To this end, we propose our Puzzle Approach...
ISBN:
(纸本)9780769530178
Context-enabled applications adapt their behaviour according to the context of use. We observe that this kind of applications imply a severe increase of runtime variability. To this end, we propose our Puzzle Approach, a conceptual framework specifically tailored to deal with context-enabled applications. It consists of a language-independent, conceptual domain model to define the functionalities of context-enabled applications. At the heart of our puzzle approach lays a systematic plan of four steps to compute the most appropriate behaviour according to a concrete domain model and the running context.
As transistors become increasingly smaller and faster with tighter noise margins, modern processors are becoming increasingly more susceptible to transient hardware faults. Existing Hardware-based Redundant Multi-Thre...
详细信息
ISBN:
(纸本)9780769527642
As transistors become increasingly smaller and faster with tighter noise margins, modern processors are becoming increasingly more susceptible to transient hardware faults. Existing Hardware-based Redundant Multi-Threading (HRMT) approaches rely mostly on special-purpose hardware to replicate the program into redundant execution threads and compare their computation results. In this paper, we present a Software-based Redundant Multi-Threading (SRMT) approach for transient fault detection. Our SRMT technique uses compiler to automatically generate redundant threads so they can run on general-purpose chip multi-processors (CMPs). We exploit high-level program information available at compile time to optimize data communication between redundant threads. Furthermore, our software-based technique provides flexible program execution environment where the legacy binary codes and the reliability-enhanced codes can co-exist in a mix-and-match fashion, depending on the desired level of reliability and software compatibility. Our experimental results show that compiler analysis and optimization techniques can reduce data communication requirement by up to 88% of HRMT. With general-purpose intra-chip communication mechanisms in CAP machine, SRMT overhead can be as low as 19%. Moreover, SRMT technique achieves error coverage rates of 99.98% and 99.6% for SPEC CPU2000 integer and floating-point benchmarks, respectively. These results demonstrate the competitiveness of SRMT to BRMT approaches.
Agreement is at the heart of distributed computing. In its simple form, it requires a set of processes to decide on a common value out of the values they propose. The time- complexity of distributed agreement problems...
详细信息
Agreement is at the heart of distributed computing. In its simple form, it requires a set of processes to decide on a common value out of the values they propose. The time- complexity of distributed agreement problems is generally measured in terms of the number of communication rounds needed to achieve a global decision, i. e., for all nonfaulty ( correct) processes to reach a decision. This paper studies the time- complexity of local decisions in agreement problems, which we de. ne as the number of communication rounds needed for at least one correct process to decide. We explore bounds for early local decision that depend on the number f of actual failures ( that occur in a given run of an algorithm), out of the maximum number t of failures tolerated ( by the algorithm). We first consider the synchronous message- passing model where we give tight local decision bounds for three variants of agreement: consensus, uniform consensus, and ( nonblocking) atomic commit. We use these results to ( 1) show that, for consensus, local decision bounds are not compatible with global decision bounds ( roughly speaking, they cannot be reached by the same algorithm), and ( 2) draw the first sharp line between the time- complexity of uniform consensus and atomic commit. Then we consider the eventually synchronous model, where we give tight local decision bounds for synchronous runs of uniform consensus. ( In this model, consensus and uniform consensus are similar, atomic commit is impossible, and one cannot bound the number of rounds to reach a decision in nonsynchronous runs of consensus algorithms.) We prove a counterintuitive result that the early local decision bound is the same as the early global decision bound. We also give a matching early deciding consensus algorithm that is significantly better than previous eventually synchronous consensus algorithms.
The languages discussed in this special issue have a long history, which is perhaps why some have had several different names over the years. One such language is Lisp, the second-oldest programming language. For year...
详细信息
The languages discussed in this special issue have a long history, which is perhaps why some have had several different names over the years. One such language is Lisp, the second-oldest programming language. For years, many somewhat dismissively described languages such as Lisp as "scripting languages." Today, we more commonly refer to them as dynamically typed languages, typified by Python and Ruby, and their impact is arguably greater than ever. This issue highlights the practical uses of such languages and shows how they're frequently a vehicle for innovation in the development sphere. This article is part of a special issue on dynamically typed languages.
Expressing layer dependencies in Context-oriented programming is cumbersome because until now no facility has been introduced to control the activation and deactivation of layers. This paper presents a novel reflectiv...
详细信息
ISBN:
(纸本)9781595934802
Expressing layer dependencies in Context-oriented programming is cumbersome because until now no facility has been introduced to control the activation and deactivation of layers. This paper presents a novel reflective interface that provides such control without compromising efficiency. This allows expressing complex application-defined dependencies between layers where the activation or deactivation of a layer requires the activation or deactivation of another one. The activation or deactivation of specific layers can also be prohibited based on application-defined conditions.
Transactional memory offers significant advantages for concurrency control compared to locks. This paper presents the design and implementation of transactional memory constructs in an unmanaged language. Unmanaged la...
详细信息
ISBN:
(纸本)9780769527642
Transactional memory offers significant advantages for concurrency control compared to locks. This paper presents the design and implementation of transactional memory constructs in an unmanaged language. Unmanaged languages pose a unique set of challenges to transactional memory constructs - for example, lack of type and memory safety, use of function pointers, aliasing of local variables, and others. This paper describes novel compiler and runtime mechanisms that address these challenges and optimize the performance of transactions in an unmanaged environment. We have implemented these mechanisms in a production-quality C compiler and a high-performance software transactional memory runtime. We measure the effectiveness of these optimizations and compare the performance of lock-based versus transaction-based programming on a set of concurrent data structures and the SPLASH-2 benchmark suite. On a 16 processor SMP system, the transaction-based version of the SPLASH-2 benchmarks scales much better than the coarse-grain locking version and performs comparably to the fine-grain locking version. Compiler optimizations significantly reduce the overheads of transactional memory so that, on a single thread, the transaction-based version incurs only about 6.4% overhead compared to the lock-based version for the SPLASH-2 benchmark suite. Thus, our system is the first to demonstrate that transactions integrate well with an unmanaged language, and can perform as well as fine-grain locking while providing the programming ease of coarse-grain locking even on an unmanaged environment.
Typically, multiple developers are involved in the various stages of the software development and maintenance process. To ensure an optimal transfer of knowledge between these different peers, a reliable human-readabl...
详细信息
ISBN:
(纸本)0769526012
Typically, multiple developers are involved in the various stages of the software development and maintenance process. To ensure an optimal transfer of knowledge between these different peers, a reliable human-readable model of the dynamics of a software artefact is needed Once these models become machine-verifiable, they can be used throughout an application's lifetime to check whether the documented behavioral properties continue to hold as the application evolves. Unfortunately, most existing modeling media are inadequate to express human-readable behavioral models which are at the same time machine-verifiable. We therefore propose a declarative platform wherein behavioral program models can be expressed in terms of user-defined high-level concepts and be automatically verified against an application's actual behavior We demonstrate our approach by using it to both document and verify an interpreter for a garbage-collected programming language.
Requirements management, one of the most collaboration-intensive activities in software development, is particularly difficult when stakeholders are distributed, as in today's global projects. EGRET is a collabora...
详细信息
Requirements management, one of the most collaboration-intensive activities in software development, is particularly difficult when stakeholders are distributed, as in today's global projects. EGRET is a collaborative requirements management tool for distributed software development teams. A preliminary usability study indicates the tool's potential.
This paper revisits a problem that was identified by Kramer and Magee: placing a system in a consistent state before and after runtime changes [16]. We show that their notion of quiescence as a necessary and sufficien...
详细信息
ISBN:
(纸本)0769523544
This paper revisits a problem that was identified by Kramer and Magee: placing a system in a consistent state before and after runtime changes [16]. We show that their notion of quiescence as a necessary and sufficient condition for safe runtime changes is too strict and violates the black-box design principle. We introduce a weaker condition, tranquility;easier to obtain, less disruptive for the system and still sufficient to ensure application consistency. We also present an implementation of this concept in a component middleware platform.
Model-Driven Engineering (MDE) advocates the generation of software applications from models, which are views on certain aspects of the software. In order to minimize the delta between these views we propose a highly ...
详细信息
ISBN:
(纸本)3540317805
Model-Driven Engineering (MDE) advocates the generation of software applications from models, which are views on certain aspects of the software. In order to minimize the delta between these views we propose a highly dynamic Round-Trip Engineering (RTE) technique where the elements of the various views are one and the same. We combine Extended Entity-Relationship diagrams with an object-oriented prototype-based language in a two-phased technique that allows for the rapid prototyping of the modeled applications. Run-time objects are included in the RTE process resulting in advanced constraint enforcement. Moreover support is provided for straightforward role modeling.
暂无评论