Concurrent
Programming
Concurrency in Goody's
see figure
"The Goodys example is
considered and the following situation is described. Helen and Nick
are instances of the employee class in the OSG. Helen has been
assigned the task of performing the process required to serve the
clients orders that include at least one croissant. On the other
hand, Nick serves the clients orders that include at least one cup
of coffee. It is assumed that there is no client order including
both croissant and cup of coffee and that there is only one
microwave oven (MWO) for use by both employees. Students are asked
to provide abstract descriptions of the processes executed by Helen
and Nick in response to the assigned requests. Figure 2 presents
example algorithms, given by students, describing the processes that
are executed by Helen and Nick in response to the client orders. The
resources required for the execution of the croissant-order are
different from those required for the execution of the coffee-order,
except from the MWO that has to be used in both types of orders."
[1].
(for more information see
related paper)
The algorithm of Dekker
simplified
"Solving
the mutual exclusion problem
in Goody's
using Dekkers algorithm."
[1]
(for more information see related paper)
The dentist
problem: Semaphore, the redhead secretary
"In order to introduce the concept of
semaphore, a solution is requested from students to our dentist
problem, which includes one dentist and 12 weaklings. Weaklings are
very busy with a lot of activities. However, from time to time they
have to visit the dentist, who may see only one weakling at a time.
Students are asked to
come up with a solution to this problem using the already presented
material. They soon realize that it is impossible to apply Dekkers
algorithm and that it is impossible to write a correct algorithm with
the tools they have at their disposal. However, they already know that
their dentist has solved the problem many years ago and that, he/she
does not know anything about the algorithm of Dekker."
[1]
(for more information see related paper)
Download
the related java application
Simple
instructions for using the software
[1]
K.
Thramboulidis, A
Constructivism-based Approach to Teach Advanced Computing Concepts in
Introductory Java Courses,
Journal of Informatics
Education and Research (forthcoming).
Abstract
|