DAT2| SW6
Aalborg University| Computer Science Dpt.| Control Engineering Dpt.
Home| Course
Course
› Schedule › Lecture 1 › Lecture 2 › Lecture 3 › Lecture 4 › Lecture 5 › Lecture 6 › Lecture 7 › Lecture 8 › Lecture 9 › Lecture 10 › Lecture 11 › Lecture 12 › Lecture 13 › Lecture 14 › Lecture 15
Home
› Welcome ! › Prerequisites › Course Ojectives › Text Books › Additional Materials › Course Grading › Contact

Schedule

See Calendar

Lecture Title Date Time Room
1 Concurrency, Processes and Threads, LTS and FSP 4/2/05 8h15-12h B3-104
2 Lecture 1 continued, Concurrent Execution 8/2/05 8h15-12h B3-104
3 Shared Objects and Mutual Exclusion, Monitors 11/2/05 8h15-12h B3-104
4 C in a Nutshell, Pointers, and Basic Data Structures 15/2/05 8h15-12h B3-104
5 Monitors continued, Deadlock 18/2/05 8h15-12h B3-104
6 Deadlock continued, Safety and Liveness Properties 22/2/05 8h15-12h B3-104
7 Safety and Liveness Properties continued,
Model Based Design
1/3/05 8h15-12h B3-104
8 Message Passing, Complements 8/3/05 8h15-12h B3-104
9 UML Statecharts 15/3/05 10h15-12h NOVI Auditorium
10 Introduction to Processes in Unix 29/3/05 8h15-12h NOVI Auditorium
11 Code Optimization 5/4/05 8h15-12h NOVI Auditorium
12 Signals & Pipes 12/4/05 8h15-12h Kroghstraede 3, 1.104
13 Inter-Process Communication 19/4/05 8h15-12h NOVI Auditorium
14 POSIX Threads 26/4/05 8h15-12h NOVI Auditorium
15 CORBA/ORBit2 3/5/05 8h15-12h NOVI Auditorium

I have been informed that the book has arrived at the bookstore. Those who don't have it can grab it there.

Lecture 1 : Concurrency, Processes and Threads, LTS

Abstract: introduction to the course, concurrency, concurrent programs, LTS and FSP. Processes and threads, modeling processes, and threads in Java.

Reading: chapters 1 and 2.

Material: slides 1, slides 2.

Exercises: exercises 1, exercises 2.

Lecture 2 : Lecture 1 continued, Concurrent Execution

Abstract: processes and threads, modeling processes, and threads in Java; modeling concurrency, more on LTS and FSP.

Reading: chapters 2 and 3.

Material: slides 2, slides 3.

Exercises: finish exercises 2, exercises 3.

Solutions: exercise 2.1 (I-Meeting, II-Job, III-Game, IV-Move, V-Double, VI-Fourtick, VI-Person), 2.2, 2.3, 2.4, 2.5, 2.6 (bonus).

Lecture 3 : Shared Objects and Mutual Exclusion, Monitors

Abstract: discussion of solutions (2.x), how threads (Java implementation) interact to communicate and cooperate, using shared objects and mutual exclusion, start on monitors.

Reading: chapters 4 and 5.

Material: slides 4, slides 5.

Exercises: finish exercises 3, exercises 4.

Solutions: exercises 3.1, 3.2, 3.3, 3.4, 3.5 (bonus), 3.6, 4.2, 4.3.

Lecture 4 : C in a Nutshell, Pointers, and Basic Data Structures

Abstract: reminder on C, memory pointers, and basic data structures such as arrays, linked lists, queues, stacks, and trees.

Reading: Pointers and Memory.

Material: slides 6.

Exercises: finish exercises 4, basic exercises on C, practice exercises on C.

Solutions: basic and practice solutions.

Lecture 5 : Monitors continued, Deadlock

Abstract: discussion of solutions (3.x, 4.x), finish monitors, and deadlocks.

Reading: chapters 5 and 6.

Material: slides 5, slides 7.

Exercises: exercises 5, exercises 7, car template needed for the "rush hour" exercise.

Lecture 6 : Deadlock continued, Safety and Liveness Properties

Abstract: safety and liveness properties. Safety properties assert that something bad never happens and liveness properties that something good eventually happens. We will see examples of such properties and how to analyse them.

Reading: chapters 6 and 7.

Material: slides 7, slides 8.

Exercises: finish exercises 7, exercises 8.

Solutions: rush hour.

Lecture 7 : Safety and Liveness Properties continued, Model Based Design

Abstract: introduction to designing with models.

Reading: chapters 7 and 8.

Material: slides 8, slides 9.

Exercises: finish exercises 8, exercises 9.

Lecture 8 : Message Passing, Complements

Abstract: introduction to asynchronous and synchronous message passing, modeled in the tool, implemented in Java. We will cover briefly the important materials of the remaining chapters.

Reading: chapters 9, 10, 11, and 12, appendices.

Material: slides 10, slides 11.

Exercises: finish exercises 9, exercises 10.

Lecture 9 : UML Statecharts

Abstract: Different models to represent software systems and concurrency aiming at defining UML Statecharts.

Material: Slides [sxi] [pdf].

Exercises: Exercises.

Lecture 10 : Introduction to Processes in Unix

Abstract: Basic operations on processes in a Unix environment.

Material: Slides [sxi] [pdf].

Exercises: Exercises.

Lecture 11 : Code Optimization

Abstract: Methods to optimize code, benchmarking by using profiling tools (gprof), data-structure optimizations.

Material: Slides [sxi] [pdf].

Exercises: Exercises.

Lecture 12 : Signals & Pipes

Abstract: Handling signals and (un)named pipes in Unix.

Material: Slides [sxi] [pdf].

Exercises: Exercises.

Lecture 13 : Inter-Process Communication

Abstract: Message queues, semaphores and memory sharing. Maybe also a short introduction to network sockets.

Material: Slides [sxi] [pdf].

Exercises: Exercises.

Lecture 14 : POSIX Threads

Abstract: Definition, creation, synchronization of Pthreads.

Material: slides.

Exercises: Exercises.

Lecture 15 : CORBA/ORBit2

Abstract: Programming distributed applications with ORBit2 (an Open Source CORBA implementation).

Material: Slides [sxi] [pdf]. Examples' Source Code [tgz].

Exercises: exercises.