<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/feed.php">
        <title>COSC6490A</title>
        <description></description>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/</link>
        <image rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/_media/wiki:dokuwiki-128.png" />
       <dc:date>2026-06-25T07:22:57+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/buffer-java?rev=1191506627&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/c-linda?rev=1191169452&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/calendar?rev=1242335067&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/concurrentml?rev=1190745834&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/contact?rev=1185976654&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/course_outline?rev=1185911597&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/csp?rev=1240774740&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/discussion?rev=1195825585&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/example?rev=1240774481&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/faq?rev=1185978890&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/forums?rev=1186075377&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/grades?rev=1236282138&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/important_dates?rev=1185904404&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/literature?rev=1236657381&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/monitors?rev=1240774293&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paper?rev=1242768478&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paradigms?rev=1190141214&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/philosophers?rev=1240774390&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/policies?rev=1185908153&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/presentations?rev=1193008644&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/printer?rev=1240774841&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/readers-writers?rev=1240774955&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/resources?rev=1185908369&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sidebar?rev=1709906551&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sleeping-barber?rev=1193691096&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/stack?rev=1241639905&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/start?rev=1242781455&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/textbook?rev=1185907323&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/verification?rev=1193926428&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/whats_new?rev=1242768563&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/writing?rev=1239742063&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/_media/wiki:dokuwiki-128.png">
        <title>COSC6490A</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/</link>
        <url>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/_media/wiki:dokuwiki-128.png</url>
    </image>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/buffer-java?rev=1191506627&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-10-04T14:03:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Bounded buffer in Java</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/buffer-java?rev=1191506627&amp;do=diff</link>
        <description>Bounded buffer in Java

The class Buffer can be implemented as follows.


/**
  This class represents a bounded buffer.

  @author Franck van Breugel
*/
public class Buffer
{
  private static final int SIZE = 10;

  private Object[] buffer;
  private int inCount;
  private int outCount;

  /**
    Creates an empty buffer.
  */
  public Buffer()
  {
    this.buffer = new Object[Buffer.SIZE];
    this.inCount = 0;
    this.outCount = 0;
  }

  /**
    Puts the given element in this buffer.

    @p…</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/c-linda?rev=1191169452&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-09-30T16:24:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/c-linda?rev=1191169452&amp;do=diff</link>
        <description>Let us implement a bounded FIFO buffer in C-Linda.  There are a number of producers and a number of consumer.  Assume that the functions consume and produce have already been defined.  Now consider the functions consumer and producer.


void consumer() 
{
   int data;
   while (1) 
   {
      data = get();
      consume(data);
   }
}

void producer() 
{
   int data;
   while (1) 
   {
      data = produce();
      put(data);
   }
}</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/calendar?rev=1242335067&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-14T21:04:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Calendar</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/calendar?rev=1242335067&amp;do=diff</link>
        <description>Calendar

March 5

Herb Sutter and James Larus. 
Software and the Concurrency Revolution.
Queue, 3(7):54-62, September 2005.

Celeste Biever.
[Chip revolution poses problems for programmers].
New Scientist, 2594:26-27, March 2007.

Bryan Cantrill and Jeff Bonwick. 
Real-world concurrency.
Communcations of the ACM, 51(11):34-39, November 2008.

A simple example of a concurrent program can be found</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/concurrentml?rev=1190745834&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-09-25T18:43:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Concurrent ML</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/concurrentml?rev=1190745834&amp;do=diff</link>
        <description>Concurrent ML

John H. Reppy.
CML: A Higher-order Concurrent Language.
In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, June 1991.
SIGPLAN Notices, 26(6):293-305, June 1991. 

Reppy, J. H. 1993. Concurrent ML: Design, Application and Semantics. In Functional Programming, Concurrency, Simulation and Automated Reasoning: international Lecture Series 1991-1992</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/contact?rev=1185976654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-08-01T13:57:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Contact</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/contact?rev=1185976654&amp;do=diff</link>
        <description>Contact

Course Director

	*  Bob J. Smith
	*  Office: CSE 999 (Computer Science and Engineering Building)
	*  Phone: (416) 736-2100 x. 11111
	*  Email: bobsmith AT cse DOT yorku DOT ca

You may contact the course director by e-mail at any time.

Teaching Assistants</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/course_outline?rev=1185911597&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-31T19:53:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Course Outline</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/course_outline?rev=1185911597&amp;do=diff</link>
        <description>Course Outline

The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed:

Week 1

Your notes here.

Week 2

Midterm

Drop Deadline

Week 13

Final Exam</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/csp?rev=1240774740&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:39:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/csp?rev=1240774740&amp;do=diff</link>
        <description>public class Process implements CSProcess
{
  private ChannelOutput verhoog;
  private ChannelOutput prolaag;

  public Process(ChannelOutput verhoog, ChannelOutput prolaag)
  {
    super();
    this.verhoog = verhoog;
    this.prolaag = prolaag;
  }

  public void run()
  {
    this.prolaag.write(null);
    // critical section
    this.verhoog.write(null);
  }
}</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/discussion?rev=1195825585&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-11-23T13:46:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Discussion</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/discussion?rev=1195825585&amp;do=diff</link>
        <description>Discussion

Comments, remarks, suggestions, corrections etcetera can be posted here.

Slawomir&#039;s Sleeping Barber

Please download the SleepingBarber.jar  (the source code is in the jar), then run:

java -jar SleepingBarber.jar

The main logic is in the run() method of the Barber class:</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/example?rev=1240774481&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:34:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/example?rev=1240774481&amp;do=diff</link>
        <description>/**
 * An Assignment thread continuously assigns its private value to
 * a shared value.
 */
public class Assignment extends Thread
{
    /** The value shared by all Assignment objects */
    public static long sharedValue;
 
    /** The private value of this Assignment object */
    private long privateValue;
 
    /**
     * Creates an Assignment object with the given private value.
     *
     * @param privateValue the private value of the created Assignment object.
     */
    public Assignm…</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/faq?rev=1185978890&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-08-01T14:34:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Frequently Asked Questions</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/faq?rev=1185978890&amp;do=diff</link>
        <description>Frequently Asked Questions

Here, you can list frequently asked questions from your students along with responses.

General

Do I need to register for a CSE Computer Account?

Yes.

Do I need to attend class?

If you wish to pass.

Tests

Do I need to write all tests?</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/forums?rev=1186075377&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-08-02T17:22:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Forums</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/forums?rev=1186075377&amp;do=diff</link>
        <description>Forums

This page acts as a future placeholder for a link to a forum system.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/grades?rev=1236282138&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-03-05T19:42:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Grades</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/grades?rev=1236282138&amp;do=diff</link>
        <description>Grades

The performance of the students will be evaluated as a combination of three assignments (60%), three presentations (15%), a paper (15%) and participation (10%). The latter includes, for example, participation during lectures, adding to this wiki, etcetera. Conversion from numeric to letter grade is applied to the</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/important_dates?rev=1185904404&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-31T17:53:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Important Dates</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/important_dates?rev=1185904404&amp;do=diff</link>
        <description>Important Dates

Here, you would list important dates for your course.

	*  Sept 1 - Assignment 1 Due
	*  Oct 1 - Course finished</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/literature?rev=1236657381&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-03-10T03:56:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tips for literature search</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/literature?rev=1236657381&amp;do=diff</link>
        <description>Tips for literature search

For Starters

General Information

	*  Scientific publication cycle
	*  Kinds of documents:
		*  patents: government granted license to an invention
		*  standards: agreed upon methodology: e.g. 802.11
		*  journals: research results presented in a periodical/magazine</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/monitors?rev=1240774293&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:31:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/monitors?rev=1240774293&amp;do=diff</link>
        <description>We start with a simple counter that can be incremented and
decremented.  We use the syntax of the above paper.


Counter : monitor
begin
  value : int;
  procedure increment(result number : int)
  begin
    value := value + 1;
    number := value;
  end
  procedure decrement(result number : int)
  begin
    value := value - 1;
    number := value;
  end
  value := 0;
end</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paper?rev=1242768478&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-19T21:27:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Paper</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paper?rev=1242768478&amp;do=diff</link>
        <description>Paper

The paper should cover the material discussed in the three assignments. The paper should not be produced by cutting and pasting parts of the assignments. The paper should have an abstract, introduction, conclusion and bibliography. The rest of the paper should address your algorithm, your implementation in Java and your verification effort.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paradigms?rev=1190141214&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-09-18T18:46:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Concurrency paradigms</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/paradigms?rev=1190141214&amp;do=diff</link>
        <description>Concurrency paradigms

Parallel Programming Models and Paradigms

&lt;http://www.buyya.com/cluster/v2chap1.pdf&gt;

Shared variables

E.W. Dijkstra. Cooperating Sequential Processes. EWD 123. 1968.

Languages that exploit shared variables include Java.

Synchronous message passing

C.A.R. Hoare. Communicating Sequential Processes . Communications of the ACM, 21(8):666-677, August 1978.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/philosophers?rev=1240774390&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:33:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/philosophers?rev=1240774390&amp;do=diff</link>
        <description>In an alternative solution to the dining philosophers, the
philosophers share the following.


int state[];
semaphore mutex;
semaphore block[];


N is the number of philosophers.  Each philosopher has
a unique number between 0 and N-1 and a philosopher&#039;s state
state[i] is either THINKING, HUNGRY or EATING.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/policies?rev=1185908153&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-31T18:55:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Policies</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/policies?rev=1185908153&amp;do=diff</link>
        <description>Policies

Here, you can list specific course policies.

Academic Dishonesty

For more information on Academic Dishonesty, click here.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/presentations?rev=1193008644&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-10-21T23:17:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Presentations</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/presentations?rev=1193008644&amp;do=diff</link>
        <description>Presentations

There will be three presentations. Each presentation covers an assignment. Each presentation is 20 minutes. The presentations will be scheduled around the due dates of the assignments.

October 9
 Slot  Student          1     Marcin Kwietniewski</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/printer?rev=1240774841&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:40:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/printer?rev=1240774841&amp;do=diff</link>
        <description>/**
 * A printer prints its name 1000 times.
 *
 * @author Franck van Breugel
 */
public class Printer extends Thread
{
  /**
   * Initializes this printer with the given name.
   *
   * @param name the name of this printer.
   * @pre. name != null
   */
  public Printer(String name)
  {
    super(name);
  }

  /**
   * Prints the name of this printer 1000 times.
   */
  public void run()
  {
    final int NUMBER = 1000;
    for (int i = 0; i &lt; NUMBER; i++)
    {
      System.out.print(this.getN…</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/readers-writers?rev=1240774955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-26T19:42:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/readers-writers?rev=1240774955&amp;do=diff</link>
        <description>A solution to the readers-writers problem using semaphores in Java.
First, a Reader.


package semaphore;
 
import java.util.Random;
import java.util.concurrent.Semaphore;
 
/**
 * A reader.
 *
 * @author Franck van Breugel
 */
public class Reader extends Thread
{
  private static int readers = 0;
  private static final Semaphore mutex = new Semaphore(1);
     
  /**
   * Initializes this reader.
   */
  public Reader()
  {
    super();
  }
                                                       …</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/resources?rev=1185908369&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-31T18:59:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Resources</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/resources?rev=1185908369&amp;do=diff</link>
        <description>Resources

Use this page to list additional Resources that may be helpful to your students.

	*  Department of CSE Home Page
	*    York Exam Schedule</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sidebar?rev=1709906551&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-08T14:02:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sidebar?rev=1709906551&amp;do=diff</link>
        <description>*  Announcements
	*  Calendar
	*  Assignments
	*  Assignment 1
	*  Assignment 2
	*  Assignment 3
	*  Presentations
	*  Paper
	*  Grades</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sleeping-barber?rev=1193691096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-10-29T20:51:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/sleeping-barber?rev=1193691096&amp;do=diff</link>
        <description>Another classical problem takes place in a barber shop.  This
problem is due to Dijkstra.  The barber shop has one barber,
a barber chair, and n chairs for waiting customers, if any, to
sit on.  If there are no customers present, the barber sits down
in the barber chair and falls asleep.  When a customer arrives,
he has to wake up the sleeping barber.  If additional customers
arrive while the barber is cutting a customer&#039;s hair, then they
sit down (if there are empty chairs) or leave the shop (i…</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/stack?rev=1241639905&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-06T19:58:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/stack?rev=1241639905&amp;do=diff</link>
        <description>/**
 * A Stack.
 */
public interface Stack&lt;T&gt;
{
  /**
   * Removes the top element from this stack and returns it.
   *
   * @return the top element of this stack.
   * @throw Exception if this stack is empty.
   */
  public T pop() throws Exception;
                                                                                
  /**
   * Pushes the given element onto this stack.
   *
   * @param the element to be pushed onto this stack.
   */
  public void push(T element);
}</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/start?rev=1242781455&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-20T01:04:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Concurrent Object Oriented Languages</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/start?rev=1242781455&amp;do=diff</link>
        <description>Concurrent Object Oriented Languages

Description

In this course, we focus on concurrent programming in the object oriented language Java. The course consists of three main parts. In the first part, we discuss concurrent programming in general. In the second part, we concentrate on writing concurrent programs in Java. In the third and final part, we look at techniques and tools to verify concurrent Java programs.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/textbook?rev=1185907323&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-31T18:42:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Textbook</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/textbook?rev=1185907323&amp;do=diff</link>
        <description>Textbook

You will require the following textbook for this course:

	*  Jane Doe. Absolute Computing. Second edition. Addison Wesley, 2007.

You may purchase this book through the York University Bookstore.</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/verification?rev=1193926428&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-11-01T14:13:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Why do we need software verification tools?</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/verification?rev=1193926428&amp;do=diff</link>
        <description>The following is taken from

Peter H. Roosen-Runge. Software Verification Tools.
2000.

Why do we need software verification tools?

Software errors are expensive. It has been estimated that in North America perhaps $3 billion a year is lost in “crashes”, with the average cost of a major outage running at $330,000. The airlines estimate that every minute a reservation system is
down costs $70,000. But the error rate in programming resists any significant reduction: error estimates for programmer…</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/whats_new?rev=1242768563&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-19T21:29:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Announcements</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/whats_new?rev=1242768563&amp;do=diff</link>
        <description>Announcements

May 19

The “Paper” page has been expanded.

May 7

No office hours today.

May 5

Assignment 3 has been slightly simplified.

April 13

Since “suggested deadlines” seem not to work very well,
I have decided to drop “suggested</description>
    </item>
    <item rdf:about="https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/writing?rev=1239742063&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-14T20:47:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Writing</title>
        <link>https://wiki.eecs.yorku.ca/course_archive/2008-09/W/6490A/writing?rev=1239742063&amp;do=diff</link>
        <description>Writing

The slides can be found [here].
Susan Visser&#039;s blog can be found here.
She can be reached at svisser@ca.ibm.com.</description>
    </item>
</rdf:RDF>
