Engineering 8893 Concurrent Programming

Instructor Dr. D. K. Peters
Lectures Tuesday, Thursday 1030-1145, EN1000
Office hour Wednesday 1400-1500, or by appointment
T.A. Zhiwei An

Schedule and Examples | Evaluation | Text | Links | References | Web submit

Detailed Schedule and Examples

The following is the tentative schedule of lectures, mid-terms and assignments for the term. Lecture topics may change slightly as the term progresses. Click an assignment or demo to view it. Click on a topic for a printable (pdf) thumbnail version of the class notes for that topic. These may not always be available in advance of the lectures and are not to be considered a substitute for attending class.

If you need information about the file formats, or instructions for downloading them check here.

#Date Deadline Topic Examples
Documentation
Comment
1Th 01.08 Introduction Course Information Sheet
2Tu 01.13 Concurrent Architechtures & Applications (Ch. 1)
3Th 01.15 Processes and Synchronization (Ch. 2)
4Tu 01.20
5Th 01.22 Implementing Threads Shared.java
6Tu 01.27 Locks & Barriers (Ch. 3) Bakery.java
7Th 01.29
8Tu 02.03
9Th 02.05
10Tu 02.10 Assignment 1, Solutions
11Th 02.12 Semaphores (Ch. 4) Baton.java
12Tu 02.17
13Th 02.19 Monitors (Ch. 5) Semaphore.java,
Bounded.java,
Sleepytown.java,
Disk1.java,
Disk2.java,
Disk3.java
Tu 02.24 Mid-term break
14Th 02.26 Assignment 2,
Sample solutions: assign2_q16b.java, assign2_q17.java
Review 2002 Mid-term
15Tu 03.02 Mid-Term Test
sample solutions
16Th 03.04 Monitors (cont'd)
17Tu 03.09 Message Passing FileReadServer.java, FileReadClient.java, Eratosthenes.java, SeiveTest.java
18Th 03.11
19Tu 03.16 Assignment 3 RPC & Rendezvous (Ch. 8)
20Th 03.18 Transaction Processing Reference: A. S. Tanenbaum, M. v Steen, Distributed Systems Principles & Pardigms, Prentice-Hall. Sec. 5.6 & 7.5. (copies on my office door)
21Tu 03.23
22Th 03.25 Real-Time Systems Reference: L. Sha, R. Rajkumar and J. P. Lehoczky, "Priority Inheritance Protocols: An Approach to Real-Time Synchronization", IEEE Trans. on Computers, 39(9) Sept. 1990, pp. 1175-1185. (copies on my office door)
23Tu 03.30
24Th 04.01 Concurrence in Microprocessors (R. Bouzane)
25Tu 04.06 Assignment 4 Review W02 Final

Textbook

G. R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000. ISBN 0-201-35752-6. It's available at the MUN Bookstore (location G-05) for $69.95, or you can buy it online at Chapters.Indigo.ca, or Amazon.com.

Evaluation

Assignments 1-310%
Assignment 410%
Mid-term 25%
Final Exam 55%

Related Links

Textbook homepage.
In particular, pay attention to the Errata Page.
Beowulf Project
A project that connects many PCs to create a very powerful computer. Also a site at Cal. Tech.
Sun's Java Technology Home Page
This is a source for lots of information and tools for Java programming.

References

Here are some books other than the textbook that you might find useful. I have one copy of each of them which you can borrow for short periods.
M. Ben-Ari, Principles of Concurrent and Distributed Programming , Prentice Hall, 1990.
This is the "classic" text in this area. It is fairly rigorous (i.e., mathematical) and covers the fundamentals of concurrent programming in a fair amount of detail. Also available in the QEII library, Call no. QA 76.5 B393 1990.
Abraham Silberschatz and Peter B. Galvin, Operating System Concepts, Addison Wesley, 1994.
That's the textbook you used in Operating Systems (Engr. 6863). Some of it may be useful.
David A. Patterson and John L. Hennessy, Computer Architecture: A Quantitative Approach, second edition, Morgan Kaufmann, 1996.
That's the textbook you used in Computer Architecture (Engr. 5863).
Hassan Gomaa, Designing Concurrent, Distributed, and Real-Time Applications with UML, Addison-Wesley, 2000. ISBN 0-201-65793-7.
This is one of the "Object Technology Series" that takes a fairly serious look at applying UML to the kinds of problems that we look at in this course.

back to Dennis Peters' homepage

Last modified: Wed 2004.04.07 at 22:04 NDT by Dennis Peters