A Discipline of Multiprogramming: Programming Theory for Distributed Applications (Monographs in Computer Science)

A Discipline of Multiprogramming: Programming Theory for Distributed Applications (Monographs in Computer Science)

Language: English

Pages: 420

ISBN: 0387952063

Format: PDF / Kindle (mobi) / ePub


In this book, a programming model is developed that addresses the fundamental issues of 'large-scale programming'. The approach unifies several concepts from database theory, object-oriented programming and designs of reactive systems. The model and the associated theory has been christened "Seuss." The major goal of Seuss is to simplify multiprogramming. To this end, the concern of concurrent implementation is separated from the core program design problem. A program execution is understood as a single thread of control - sequential executions of actions that are chosen according to some scheduling policy. As a consequence, it is possible to reason about the properties of a program from its single execution thread.

Inductive Reasoning: Experimental, Developmental, and Computational Approaches

Understanding Cryptography: A Textbook for Students and Practitioners

Multi-Agent Machine Learning: A Reinforcement Approach

Principles of Digital Image Processing, Volume 3: Advanced Methods (Undergraduate Topics in Computer Science)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

that the starting state, i.e., its pre-condition, satisfies some invariant. The obligation of the action is to reestablish the invariant as a post-condition. Additionally, establishment of progress properties, such as that execution of each action achieves a certain goal -planning a meeting, for instance-- requires a theory that is more general than the study of invariants. We propose such a theory in this book. 1.5 Bibliographic Notes The programming model that most closely resembles the

there are several active readers, and a writer calls Start Write, setting Write Wait to true, and then, a reader calls StartRead setting ReadWait to true. In this state, both ReadWait and Write Wait are true and they will remain true forever , preventing StartRead and Start Write from ever accepting a call. 4·8.3 Starvation-freedom for writers Our final variation guarantees absence of starvation for the writers but no progress guarantees for the readers. We identify a writer by including its

StrongSnoopySemaphore seq(pid) q = OJ boolean avail = true {initially the semaphore is available} j partial method P(i: pid) :: avail 1\ i = q.head -+ avail, q := false, q.tail %i rt q -+ q:= q -It- i total method V:: avail:= true partial method S:: q #- 0 -+ skip end {StrongSnoopySemaphore} The solutions employing tickets can also be used with snoopy semaphores. Note that the two methods S and V may be combined into a single method if every process calls V only after a call on S is accepted.

p , conjunction of the above two , law of the excluded miracle (under minimal progress) , transient p , predicate calculus o 164 6. Progress Properties Also, for an action with guard gi and body {p 1\ gi} Si {p 1\ q 1\ gi} {-,p} Si Si , transient p {-,p V -,q} , strengthen lhs, weaken rhs o Hence, transient (p 1\ q). • Proof of the strengthening rule (under weak fairness) There is an action t such that {p} t {-,p} {pl\q} t {-,pV-,q} transient (p 1\ q) , transient p , strengthen

implement such strategies automatically. 1.3 Issues in Multiprogram Design 1.3.1 Concurrency is not a primary issue in design We espouse the thesis that programmers should be concerned primarily with the problems they are solving and only secondarily with the implementation issues, such as concurrency. We have advocated this thesis for a number of years and demonstrated it in a number of examples in [32J . We continue to advocate that explicit concurrency considerations do not belong in

Download sample

Download