581332 Rinnakkaisohjelmointi (4 op, 2 ov)
581332 Jämlöpande programmering (4 sp, 2 sv)
581332 Concurrent Programming (4 cr, 2 cu)
Position
Compulsory course in intermediate studies in Computer Science. Course replaces the course Concurrent Systems (2 cu) lectured in 2001-2004. It corresponds to the first part of course Concurrent Systems (4 cu) lectured before 2001, and these two courses can not be included in the same degree.
Goals
The goals are to understand the basic ideas in programming concurrent and distributed systems, to understand the central concepts and to be able to aplly the most common solution methods. More detailed Learning Goals are given in a separate document.
Prerequisite and Follow-up Courses
Course Computer Organization I (4 cr) is a prerequisite for this course.
Suitable follow-up courses include Network Progamming (7 cr) and Distributed Systems (6 cr).
Different Ways to Get Credit
Credit is given either for a lecture course or final exam.
Course is lectured every year in Autumn. Lecture course includes
- lectures 24 hours (4h/week, only in Finnish)
- practice sessions 12 hours (2h/week)
- study circle work and team project
- course exam 2.5 hours
There are 4 final exams per year: two in the Spring (January and March), one in Summer (August) and in Autumn (September/October). The grade is based only on the exam, practice or project points obtained in earlier lecture courses do not count. Final exams cover the same topics as those of the most recent lecture course.
Registration
For lecture courses one registers using the departmental ILMO-registration system by signing up to some practice session group for this course. One does not sign up for the course exam. One can try all intermediate study lecture courses only twice (without additional permission). Registration counts, if it is not cancelled within the given grace period which is usually the 2nd week of lectures. Attempts made before Autumn 2002 do not count in this rule.
One registers for final exams in the ILMO-registration system no later than on the Monday on the preceding week for the exam. There are no limitations on the number of try-outs for final exams.
Course Material
Course is mostly based on Chapters 1-10 in text book M. Ben-Ari, Principles of Concurrent and Distributed Programming (2nd Ed.); Addison-Wesley 2006. Deadlocks and Remote Procedure Calls are found (e.g.) in William Stallings, Operating Systems - Internals and Design Principles 6th ed.; Prentice Hall 2008, Ch. 5, 6.1-6 ja 16.1-3 (or 5th Ed 2005, Ch. 5, 6.1-6 ja 14.1-3)
It is recommended to obtain at least the Ben-Ari book for your use.
Course homepage and lecture course schedules/contents are found in http://www.cs.helsinki.fi/kurssit/aine/581332-8/.
Contents
Course basically contains three parts:
- Introduction: Concurrency and
parallelism
- hardware architectures
- examples on concurrency paradigmas
- Notation used in concurrent programming
- Verifiction of concurrent programs
- Concurrency control and communication with shared
memory
- Methods for process communication
- Semafores in concurrency control
- Deadlocks
- Monitors
- Concurrency control and communication without
shared memory
- Messages
- Remote Procedure Calls
- Dealocks
- Rendezvous
Lecture notes and homeworks describe the lecture course area. One should note that lecture notes do not replace text books, but are merely an extended contents for topics discussed in lectures.
">Teemu Kerola13.08.2008 10:52 25.10.2007 15:09