Concurrency EECS 4315

Concurrency EECS 4315

Concurrency EECS 4315 www.eecs.yorku.ca/course/4315/ www.eecs.yorku.ca/course/4315/ EECS 4315 1/8 The Dining Philosophers Problem In the dining philosophers problem, due to Dijkstra, five philosophers are seated around a round table. Each philosopher has a plate of spaghetti. The spaghetti is so slippery that a philosopher needs two forks to eat it. The layout of the table is as follows. The life of a philosopher consists of alternative periods of eating and thinking. When philosophers get hungry, they try to pick up their left and right fork, one at a time, in either order. If successful in picking up both forks, the philosopher eats for a while, then puts down the forks and continues to think. www.eecs.yorku.ca/course/4315/ EECS 4315 2/8 The Dining Philosophers Problem public class Philosopher { private int id; private Table table; public Philosopher(int id, Table table) { this.id = id; this.table = table; } public void run() { while (true) { this.table.pickUp(id); this.table.pickUp(id + 1 % 5); // eat this.table.putDown(id); this.table.putDown(id + 1 % 5); } } www.eecs.yorku.ca/course/4315/ EECS 4315 3/8 The Dining Philosophers Problem public class Table { public void pickUp(int id) { ... } public void putDown(int id) { ... } } www.eecs.yorku.ca/course/4315/ EECS 4315 4/8 The Dining Philosophers Problem Question Solve the problem. www.eecs.yorku.ca/course/4315/ EECS 4315 5/8 Race condition and data race A race condition is a flaw that occurs when the timing or ordering of events affects a program’s correctness. Generally speaking, some kind of external timing or ordering non-determinism is needed to produce a race condition. A data race happens when there are two memory accesses in a program where both target the same location, are performed concurrently by two threads, are not reads (at least is a write), are not synchronization operations. www.eecs.yorku.ca/course/4315/ EECS 4315 6/8 Question Give an example that has both a data race and a race condition. Question Give an example that has a race condition but does not have a data race. Question Give an example that has a data race but does not have a race condition. Race condition and data race Many race conditions are due to data races, and many data races lead to race conditions. However, we can have race conditions without data races and data races without race conditions. www.eecs.yorku.ca/course/4315/ EECS 4315 7/8 Question Give an example that has a race condition but does not have a data race. Question Give an example that has a data race but does not have a race condition. Race condition and data race Many race conditions are due to data races, and many data races lead to race conditions. However, we can have race conditions without data races and data races without race conditions. Question Give an example that has both a data race and a race condition. www.eecs.yorku.ca/course/4315/ EECS 4315 7/8 Question Give an example that has a data race but does not have a race condition. Race condition and data race Many race conditions are due to data races, and many data races lead to race conditions. However, we can have race conditions without data races and data races without race conditions. Question Give an example that has both a data race and a race condition. Question Give an example that has a race condition but does not have a data race. www.eecs.yorku.ca/course/4315/ EECS 4315 7/8 Race condition and data race Many race conditions are due to data races, and many data races lead to race conditions. However, we can have race conditions without data races and data races without race conditions. Question Give an example that has both a data race and a race condition. Question Give an example that has a race condition but does not have a data race. Question Give an example that has a data race but does not have a race condition. www.eecs.yorku.ca/course/4315/ EECS 4315 7/8 Detecting data races with JPF target=Example classpath=. listener=gov.nasa.jpf.listener.PreciseRaceDetector www.eecs.yorku.ca/course/4315/ EECS 4315 8/8.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us