Home Random Page


CATEGORIES:

BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism






Bugs parallel software

Give definition on parallel systems. Analysis of parallel process

The era of parallel programming Sequential programs have very limited employment Parallel programs are more spread. Multi-core chips, embedded onboard SC -> required technology development of parallel software, so that it performs the requested function Multi-core processors are bringing parallelism to mainstream of computing

Parallel software has a lot of bugs Parallel programs are incomprehensible to the human brain: they are very often wrong, has errors.

Bugs parallel software

1. Parallel programs are working correctly "almost always"

2. Parallel programs can save years of errors that appear after a long operation emerged as a reaction to a specific combination of many factors, in particular, unpredictable speeds execution of individual processes in parallel programs

3. Programmable control system is usually constructed from parallel interacting modules. Mistakes are often in critical

Nontrivial parallel and distributed systems are incomprehensible to the human brain

Example errors in a parallel system

Process A:: … x:=x+à …

Process B:: … x:=x+b …

õ = 0; a = $ 2000; b = $ 15;

What is the x after the parallel execution of processes A and B?

Could there be an error in the program one line

A1. x -> RA B1. x -> RB

A2. RA+a -> RA B2. RB+b -> RB

A3. RA -> x B3. RB -> x

Is there error?

1) $ 2015 A1, A2, A3, B1, B2, B3

2) $ 2000 A1, A2, B1, B2, B3, A3

3) $ 0015 B1, B2, A1, A2, A3, B3

Analysis of parallel processes

Parallel processes are very difficult to understand

õ:=1; õ++ || x :=3 two deterministic process, and their parallel execution of non-deterministically (how many results? which one?)

Reacting systems - are collections of parallel functioning normally not completed interacting with each other and with the environment processes How to perform an analysis of their behavior (deadlock, livlok, starvation, etc.)? Model should enable to describe non-determinism! (In contrast, functional programs, non-determinism - the major component of parallel processes!)

2. What is testing, verification and validation? Approaches to software verification. Errors in parallel system

Processes and techniques aimed at improving the quality of the product

Validation - a set of techniques and methods to confirm that developed that required by the customer.

Veification - a set of formal techniques and methods to confirm that the developed system satisfies the formal statutory requirements (formal specification)

Testing – control execution ready system to detect inconsistencies of its behavior with the requirements

Typically, software testing - checking of ready system on test data sets in fixed scenarios

Formal verification - a formal proof of correctness: formal verification of compliance with certain requirements on the formal model of the system

Testing

1. testing and simulation (validation practices) only allow you to check the behavior of systems, some scenarios



2. only trivial programs can be tested exhaustively:

2.1 “ In practice exhaustive testing exhaust the testers long before it exhausts the system …” (CalTech Uni, 2005)

2.2Edsger W. Dijkstra (1969): Program testing can be used to show the presence of bugs, but never to show their absence!

Verification.

1. Need to ensure the proper operation of systems in all circumstances , that is verification

2. Verification requires the use of formal methods. In this course we will consider formal methods to verify the correctness of programs

3. The development of modern verification systems requires greater time and effort

Approaches to software verification

Research in the field of verification began with the earliest years of the use of computers

Deductive veriication (theorem proving) - since 1967

R.Floyd, C.A.R.Hoare, Edasger W.Dijkstra

Process algebra:

CCS (Calculus of Communicating Processes – R.Milner)

CSP (Communicating Sequential Processes - C.A.R.Hoare)

ACP (Process algebra for synchronous Communication - J. A. Bergstra and J. W. Klop)

Model checking – begun in 1981 (~30 years)

The research work in the area of Model checking was implemented by E. M. Clarke and E. A. Emerson J. P. Queille and J. Sifakis  ...


Date: 2016-01-03; view: 935


<== previous page | next page ==>
The role of instructional materials | Prove the correctness of programs. Testing and verification of data processing programs and give an examples
doclecture.net - lectures - 2014-2024 year. Copyright infringement or personal data (0.007 sec.)