请输入您要查询的百科知识:

 

词条 Liveness
释义

  1. Forms of liveness

  2. Liveness and safety

     Formal distinction  Bounded bypass and bounded overtaking 

  3. See also

  4. References

In concurrent computing, liveness refers to a set of properties of concurrent systems, that require a system to make progress despite the fact that its concurrently executing components ("processes") may have to "take turns" in critical sections, parts of the program that cannot be simultaneously run by multiple processes.[1] Liveness guarantees are important properties in operating systems and distributed systems.[2]

A liveness property cannot be violated in a finite execution of a distributed system because the "good" event might only theoretically occur at some time after execution ends. Eventual consistency is an example of a liveness property.[3] All properties can be expressed as the intersection of safety and liveness properties.[4] Whereas safety properties admit a finite witness, liveness properties may be harder to establish as no finite witness can be used to prove that they do not hold.[5]

Forms of liveness

Several forms of liveness are recognized. The following ones are defined in terms of a multi-process system that has a critical section, protected by some mutual exclusion (mutex) device. All processes are assumed to correctly use the mutex; progress is defined as finishing execution of the critical section.

  • Freedom from deadlock is a form of liveness, although a weak one. Consider a system with multiple processes and a single critical section, protected by some mutual exclusion device. Such a system is said to be deadlock-free if, when a group of processes is competing for access to the critical section at some point in time, then some process eventually makes progress at a later point in time. That process need not belong to the aforementioned group; it might have gained access at an earlier or even later moment.[6]
  • Freedom from starvation (or "finite bypass") is a stronger liveness guarantee than deadlock-freedom. It states that all processes vying for access to the critical region eventually make progress. Any starvation-free system is also deadlock-free.{{r|raynal}}
  • Stronger still is the requirement of bounded bypass. This means that, if {{mvar|n}} processes are competing for access to the critical region, then each process makes progress after being bypassed at most {{math|f(n)}} times by other processes for some function {{mvar|f}}.{{r|raynal}}

Liveness and safety

According to B. Alpern, deadlock-freedom is a safety property.[7] Alpern presumes that the states of the system can be split between states wherein deadlock is present (red states) and states wherein no deadlock is in place (green states). The property that states that the system remains forever in green states (or, alternatively, that the system never reaches red states) is a safety property. If one cannot distinguish between green and red states, however, the property that says that eventually one of the processes in the system will evolve is a liveness property.

Formal distinction

The distinction between safety and liveness can be formally established through a predicate , where refers to time.

Let be the instant of time starting from which the liveness and safety properties are evaluated. In the examples below, let be a process (or thread) that one wants to assure that is deadlock free.

Safety:

Example: means " is in a deadlock state at time ".

Liveness:

Example: means " stops waiting at time ".

Bounded bypass and bounded overtaking

It is also worth noting that the distinction between the liveness property of bounded bypass and the safety property of bounded overtaking is subtle. Starvation freedom together with bounded overtaking implies bounded bypass (i.e., even though bounded bypass is classified as a liveness property, in reality it is a mix of a liveness property and a safety property). Bounded overtaking means that after a tagged process declares the interest in entering the critical section, each other process will overtake the tagged process a bounded number of times before the tagged process enters the critical section. Note that if the tagged process is never granted the permission to enter its critical section, bounded overtaking may still hold. Therefore, bounded overtaking, by itself, is not a liveness property. In a deadlocked system, bounded overtaking trivially holds, as no process overtakes the other, but bounded bypass doesn't.[8]

See also

  • Non-blocking algorithm

References

1. ^{{Cite journal | last1 = Lamport | first1 = L. | doi = 10.1109/TSE.1977.229904 | title = Proving the Correctness of Multiprocess Programs | journal = IEEE Transactions on Software Engineering | issue = 2 | pages = 125–143 | year = 1977 | pmid = | pmc = | citeseerx = 10.1.1.137.9454 }}
2. ^{{cite book|last=Luís Rodrigues|first=Christian Cachin; Rachid Guerraoui|title=Introduction to reliable and secure distributed programming|year=2010|publisher=Springer Berlin|location=Berlin|isbn=978-3-642-15259-7|pages=22–24|edition=2.}}
3. ^{{Cite journal | last1 = Bailis | first1 = P. | last2 = Ghodsi | first2 = A. | doi = 10.1145/2460276.2462076 | title = Eventual Consistency Today: Limitations, Extensions, and Beyond | journal = Queue | volume = 11 | issue = 3 | pages = 20 | year = 2013 | pmid = | pmc = }}
4. ^{{Cite journal | last1 = Alpern | first1 = B. | last2 = Schneider | first2 = F. B. | doi = 10.1007/BF01782772 | title = Recognizing safety and liveness | journal = Distributed Computing | volume = 2 | issue = 3 | pages = 117 | year = 1987 | pmid = | pmc = | citeseerx = 10.1.1.20.5470 }}
5. ^{{Cite journal|last=Gouda|first=Mohamed G.|title=Protocol verification made simple: a tutorial|journal=Computer Networks and ISDN Systems|volume=25|issue=9|pages=969–980|doi=10.1016/0169-7552(93)90094-k|year=1993}}
6. ^{{cite book |title=Concurrent Programming: Algorithms, Principles, and Foundations |first=Michel |last=Raynal |publisher=Springer Science & Business Media |year=2012 |isbn=978-3642320262 |pages=10–11}}
7. ^{{Cite journal | last1 = Alpern | first1 = B. |title = Defining liveness | doi=10.1016/0020-0190(85)90056-0 | journal = Information Processing Letters | volume = 21 | issue = 4 | pages = 181–185 | year = 1985 | pmid = | pmc = }}
8. ^{{Cite book | last1 = Fang | first1 = Y. |title = Liveness by invisible invariants | doi=10.1007/11888116_26 | journal = International Conference on Formal Techniques for Networked and Distributed Systems | volume = 4229 | issue = 1 | pages = 356–371 | year = 2006 | pmid = | pmc = | series = Lecture Notes in Computer Science | isbn = 978-3-540-46219-4 }}
{{Compu-stub}}

1 : Concurrent computing

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/12 2:50:07