Architectural Support for Improving System Hardware/software Reliability

Architectural Support for Improving System Hardware/software Reliability PDF Author: Martin Dimitrov
Publisher:
ISBN:
Category : Computer architecture
Languages : en
Pages : 119

Get Book Here

Book Description
It is a great challenge to build reliable computer systems with unreliable hardware and buggy software. On one hand, software bugs account for as much as 40% of system failures and incur high cost, an estimate of $59.5B a year, on the US economy. On the other hand, under the current trends of technology scaling, transient faults (also known as soft errors) in the underlying hardware are predicted to grow at least in proportion to the number of devices being integrated, which further exacerbates the problem of system reliability. We propose several methods to improve system reliability both in terms of detecting and correcting soft-errors as well as facilitating software debugging. In our first approach, we detect instruction-level anomalies during program execution. The anomalies can be used to detect and repair soft-errors, or can be reported to the programmer to aid software debugging. In our second approach, we improve anomaly detection for software debugging by detecting different types of anomalies as well as by removing false-positives. While the anomalies reported by our first two methods are helpful in debugging single-threaded programs, they do not address concurrency bugs in multi-threaded programs. In our third approach, we propose a new debugging primitive which exposes the non-deterministic behavior of parallel programs and facilitates the debugging process. Our idea is to generate a time-ordered trace of events such as function calls/returns and memory accesses in different threads. In our experience, exposing the time-ordered event information to the programmer is highly beneficial for reasoning about the root causes of concurrency bugs.

Architectural Support for Improving System Hardware/software Reliability

Architectural Support for Improving System Hardware/software Reliability PDF Author: Martin Dimitrov
Publisher:
ISBN:
Category : Computer architecture
Languages : en
Pages : 119

Get Book Here

Book Description
It is a great challenge to build reliable computer systems with unreliable hardware and buggy software. On one hand, software bugs account for as much as 40% of system failures and incur high cost, an estimate of $59.5B a year, on the US economy. On the other hand, under the current trends of technology scaling, transient faults (also known as soft errors) in the underlying hardware are predicted to grow at least in proportion to the number of devices being integrated, which further exacerbates the problem of system reliability. We propose several methods to improve system reliability both in terms of detecting and correcting soft-errors as well as facilitating software debugging. In our first approach, we detect instruction-level anomalies during program execution. The anomalies can be used to detect and repair soft-errors, or can be reported to the programmer to aid software debugging. In our second approach, we improve anomaly detection for software debugging by detecting different types of anomalies as well as by removing false-positives. While the anomalies reported by our first two methods are helpful in debugging single-threaded programs, they do not address concurrency bugs in multi-threaded programs. In our third approach, we propose a new debugging primitive which exposes the non-deterministic behavior of parallel programs and facilitates the debugging process. Our idea is to generate a time-ordered trace of events such as function calls/returns and memory accesses in different threads. In our experience, exposing the time-ordered event information to the programmer is highly beneficial for reasoning about the root causes of concurrency bugs.

Clean Architecture

Clean Architecture PDF Author: Robert C. Martin
Publisher: Prentice Hall
ISBN: 0134494326
Category : Computers
Languages : en
Pages : 652

Get Book Here

Book Description
Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them. Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face–the ones that will make or break your projects. Learn what software architects need to achieve–and core disciplines and practices for achieving it Master essential software design principles for addressing function, component separation, and data management See how programming paradigms impose discipline by restricting what developers can do Understand what’s critically important and what’s merely a “detail” Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications Define appropriate boundaries and layers, and organize components and services See why designs and architectures go wrong, and how to prevent (or fix) these failures Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager–and for every programmer who must execute someone else’s designs. Register your product for convenient access to downloads, updates, and/or corrections as they become available.

Software Architecture and Design for Reliability Predictability

Software Architecture and Design for Reliability Predictability PDF Author: Assefa D. Semegn
Publisher: Cambridge Scholars Publishing
ISBN: 1443834157
Category : Computers
Languages : en
Pages : 410

Get Book Here

Book Description
Reliability prediction of a software product is complex due to interdependence and interactions among components and the difficulty of representing this behavior with tractable models. Models developed by making simplifying assumptions about the software structure may be easy to use, but their result may be far from what happens in reality. Making assumptions closer to the reality, which allows complex interactions and interdependences among components, results in models that are too complex to use. Their results may also be too difficult to interpret. The reliability prediction problem is worsened by the lack of precise information on the behavior of components and their interactions, information that is relevant for reliability modeling. Usually, the interactions are not known precisely because of subtle undocumented side effects. Without accurate precise information, even mathematically correct models will not yield accurate reliability predictions. Deriving the necessary information from program code is not practical if not impossible. This is because the code contains too much implementation detail to be useful in creating a tractable model. It is also difficult to analyze system reliability completely based on the program code. This book documents the resulting novel approach of designing, specifying, and describing the behavior of software systems in a way that helps to predict their reliability from the reliability of the components and their interactions. The design approach is named design for reliability predictability (DRP). It integrates design for change, precise behavioral documentation and structure based reliability prediction to achieve improved reliability prediction of software systems. The specification and documentation approach builds upon precise behavioral specification of interfaces using the trace function method (TFM). It also introduces a number of structure functions or connection documents. These functions capture both the static and dynamic behaviors of component based software systems. They are used as a basis for a novel document driven structure based reliability prediction model. System reliability assessment is studied in at least three levels: component reliability, which is assumed to be known; interaction reliability, a novel approach to studying software reliability; and service reliability, whose estimation is the primary objective of reliability assessment. System reliability can be expressed as a function of service reliability. A mobile streaming system, designed and developed by the author as an industrial product, is used as a case study to demonstrate the application of the approach.

Integrated Software Architecture-Based Reliability Prediction for IT Systems

Integrated Software Architecture-Based Reliability Prediction for IT Systems PDF Author: Franz Brosch
Publisher: KIT Scientific Publishing
ISBN: 3866448597
Category : Computers
Languages : en
Pages : 368

Get Book Here

Book Description
With the increasing importance of reliability in business and industrial IT systems, new techniques for architecture-based software reliability prediction are becoming an integral part of the development process. This dissertation thesis introduces a novel reliability modelling and prediction technique that considers the software architecture with its component structure, control and data flow, recovery mechanisms, its deployment to distributed hardware resources and the system�s usage profile.

Design for Reliability

Design for Reliability PDF Author: Eric Bauer
Publisher: John Wiley & Sons
ISBN: 1118075080
Category : Computers
Languages : en
Pages : 349

Get Book Here

Book Description
System reliability, availability and robustness are often not well understood by system architects, engineers and developers. They often don't understand what drives customer's availability expectations, how to frame verifiable availability/robustness requirements, how to manage and budget availability/robustness, how to methodically architect and design systems that meet robustness requirements, and so on. The book takes a very pragmatic approach of framing reliability and robustness as a functional aspect of a system so that architects, designers, developers and testers can address it as a concrete, functional attribute of a system, rather than an abstract, non-functional notion.

Fault Tolerant Computer Architecture

Fault Tolerant Computer Architecture PDF Author: Daniel Sorin
Publisher: Springer Nature
ISBN: 3031017234
Category : Technology & Engineering
Languages : en
Pages : 103

Get Book Here

Book Description
For many years, most computer architects have pursued one primary goal: performance. Architects have translated the ever-increasing abundance of ever-faster transistors provided by Moore's law into remarkable increases in performance. Recently, however, the bounty provided by Moore's law has been accompanied by several challenges that have arisen as devices have become smaller, including a decrease in dependability due to physical faults. In this book, we focus on the dependability challenge and the fault tolerance solutions that architects are developing to overcome it. The two main purposes of this book are to explore the key ideas in fault-tolerant computer architecture and to present the current state-of-the-art - over approximately the past 10 years - in academia and industry. Table of Contents: Introduction / Error Detection / Error Recovery / Diagnosis / Self-Repair / The Future

Contributions to Hardware and Software Reliability

Contributions to Hardware and Software Reliability PDF Author: P. K. Kapur
Publisher: World Scientific
ISBN: 9789810237516
Category : Computers
Languages : en
Pages : 212

Get Book Here

Book Description
With better computing facilities now available, there is an ever-increasing need to ensure that elegant theoretical results on hardware reliability are computationally available. This book discusses those aspects which have relevance to computing systems and those where numerical computation was a problem. It is also well known that nearly 70% of the cost goes into software development and hence software reliability assumes special importance. The book not only gives an extensive review of the literature on software reliability but also provides direction in developing models which are flexible and can be used in a variety of testing environments. Besides, several alternative formulations of the release time problem are discussed along with variants such as allocation of testing effort resources to different modules of the software, or the testing effort control problem. Software reliability has now emerged as an independent discipline and requires a strong partnership between computer scientists, statisticians and operational researchers. This aspect is broadly highlighted in the book.

Reliable Software for Unreliable Hardware

Reliable Software for Unreliable Hardware PDF Author: Semeen Rehman
Publisher: Springer
ISBN: 3319257722
Category : Technology & Engineering
Languages : en
Pages : 259

Get Book Here

Book Description
This book describes novel software concepts to increase reliability under user-defined constraints. The authors’ approach bridges, for the first time, the reliability gap between hardware and software. Readers will learn how to achieve increased soft error resilience on unreliable hardware, while exploiting the inherent error masking characteristics and error (stemming from soft errors, aging, and process variations) mitigations potential at different software layers.

Software Reliability Handbook

Software Reliability Handbook PDF Author: Rook
Publisher: Springer Science & Business Media
ISBN: 9781851664009
Category : Computers
Languages : en
Pages : 578

Get Book Here

Book Description
The reliability of software is becoming increasingly important to a large range of industries that rely on complex computer systems and machinery with computer control. The reliability of a system depends on both the hardware and the software that comprise the system. Although faults in design can continue to give problems, the issues and the techniques for meeting severe reliability requirements in hardware have been understood for some time. In the case of software both the techniques and a positive attitude of software developers to the achievement of reliability are much less well established. They are particularly crucial in the development of software dependent safety-critical systems.

Architectural Support for Copy and Tamper Resistant Software

Architectural Support for Copy and Tamper Resistant Software PDF Author:
Publisher:
ISBN:
Category :
Languages : en
Pages : 0

Get Book Here

Book Description
Although there have been attempts to develop code transformations that yield tamper-resistant software, no reliable software-only methods are known. This paper studies the hardware implementation of a form of execute-only memory (XOM) that allows instructions stored in memory to be executed but not otherwise manipulated. To support XOM code we use a machine that supports internal compartments-a process in one compartment cannot read data from another compartment. All data that leaves the machine is encrypted, since we assume external memory is not secure. The design of this machine poses some interesting trade-offs between security, efficiency, and flexibility. We explore some of the potential security issues as one pushes the machine to become more efficient and flexible. Although security carries a performance penalty, our analysis indicates that it is possible to create a normal multi-tasking machine where nearly all applications can be run in XOM mode. While a virtual XOM machine is possible, the underlying hardware needs to support a unique private key, private memory, and traps on cache misses. For efficient operation, hardware assist to provide fast symmetric ciphers is also required.