Art of Multiprocessor Programming: Difference between revisions

From Wiki
Jump to navigation Jump to search
Created page with 'Maurice Herlihy and Nir Shavit == Some Terms == * A '''safety property''' states that some "bad thing" never happens. For example, a traffic light never displays green in all di…'
 
Line 2: Line 2:


== Some Terms ==
== Some Terms ==
* A '''safety property''' states that some "bad thing" never happens. For example, a traffic light never displays green in all
* A '''safety property''' states that some "bad thing" never happens. For example, a traffic light never displays green in all directions, even if the power fails.
directions, even if the power fails.
* A '''liveness property''' states that a particular good thing will happen. For example, a red traffic light will eventually turn green.  
* A '''liveness property''' states that a particular good thing will happen. For example, a red traffic light will eventually turn green.  
* The problem of making sure that only one thread at a time can execute a particular block of code is called the  
* The problem of making sure that only one thread at a time can execute a particular block of code is called the  
Line 9: Line 8:
* The property of '''deadlock-freedom''' ensures that at least one thread will eventually gain access to some resource.
* The property of '''deadlock-freedom''' ensures that at least one thread will eventually gain access to some resource.
* The property of '''starvation-freedom''' ensures that every thread will eventually gain access to some resource.
* The property of '''starvation-freedom''' ensures that every thread will eventually gain access to some resource.
* '''Transient''' communication requires both parties to participate at the same time.
* '''Transient''' communication requires both parties to participate at the same time. Shouting, gestures, or cell phone calls are examples of transient communication.
Shouting, gestures, or cell phone calls are examples of transient commun-
* '''Persistent''' communication allows the sender and receiver to participate at different times. Posting letters, sending email, or leaving notes under rocks are all examples of persistent communication.
ication.
* '''Persistent''' communication allows the sender and receiver to participate at dif-
ferent times. Posting letters, sending email, or leaving notes under rocks are all
examples of persistent communication.
* An example of persistent communication is that of '''interrupts'''.  Thread A interrupts thread B by setting a bit at a location periodically checked by B. Sooner or later, B notices the bit has been set and reacts. After reacting, B typically resets the bit (A cannot reset the bit).
* An example of persistent communication is that of '''interrupts'''.  Thread A interrupts thread B by setting a bit at a location periodically checked by B. Sooner or later, B notices the bit has been set and reacts. After reacting, B typically resets the bit (A cannot reset the bit).

Revision as of 22:19, 2 April 2012

Maurice Herlihy and Nir Shavit

Some Terms

  • A safety property states that some "bad thing" never happens. For example, a traffic light never displays green in all directions, even if the power fails.
  • A liveness property states that a particular good thing will happen. For example, a red traffic light will eventually turn green.
  • The problem of making sure that only one thread at a time can execute a particular block of code is called the

mutual exclusion problem.

  • The property of deadlock-freedom ensures that at least one thread will eventually gain access to some resource.
  • The property of starvation-freedom ensures that every thread will eventually gain access to some resource.
  • Transient communication requires both parties to participate at the same time. Shouting, gestures, or cell phone calls are examples of transient communication.
  • Persistent communication allows the sender and receiver to participate at different times. Posting letters, sending email, or leaving notes under rocks are all examples of persistent communication.
  • An example of persistent communication is that of interrupts. Thread A interrupts thread B by setting a bit at a location periodically checked by B. Sooner or later, B notices the bit has been set and reacts. After reacting, B typically resets the bit (A cannot reset the bit).