Real-Time Systems: Specification, Verification, Refinement and SchedulabilityReal-Time Systems: Specification, Verification, Refinement and Schedulability
Course Descriptions Course Descriptions
Security: Principles, Techniques and Verification Security: Principles, Techniques and Verification
Return to UNU-IIST's home pageUNU-IIST Home
Programming Concurrent Computer Systems

II/2/1/12 Programming Concurrent Computer Systems

Lecturer: Zhiming Liu

Duration of the Course: about 23 hours

Aims and Objectives:
The module will focus on basic concepts, principles and techniques in the programming of concurrent and distributed computing systems, and not on specific systems or languages. The students who master the material offered will be prepared not only to write concurrent programs or to read the research literature, but also to evaluate systems, algorithms and languages from a broad perspective.

One cannot learn any programming technique without practising it. The practical classes will give students practice in solving problems, methods in design and skill in writing concurrent programs in a variety of language models exemplifying different programming paradigms.

This module will provide the essential background for further study and research in distributed systems, real-times systems and fault-tolerant systems.

Syllabus:
Break Away from Single Thread Computation:
Sequential programming, single processor system, sequential programming as total ordering (single-tread computation), multi-thread computation and its advantages, multi-processor system, concurrent programming as partial ordering, single-processor multitasking system, concurrent programming as interleaving. [3 hours]

Problems in Concurrent Programming:
Non-determinism, synchronisation, communication, critical sections, atomic actions. [3 hours]

Mutual Exclusion and Condition Synchronisation:
Communication via shared variables, multiple updating problem, active and passive objects, abstraction of mutual exclusion and condition synchronisation, old-fashioned recipes for synchronisation, notions of busy-waiting, deadlock, livelock, safety, and liveness. [3 hours]

Semaphores:
Motivations and definitions, implementation issues, programming techniques using semaphores (the producers and consumers problem, the readers and writers problem, and the dining philosophers problem), reasoning about semaphore programs. [4 hours]

Conditional Critical Regions and Monitors:
Motivations and definitions, implementation issues, programming techniques using CCRs and Monitors (the producers and consumers problem and the readers and writers problem), reasoning about monitor programs. [3 hours]

Synchronous Message Passing:
Distributed computing, asynchronous vs synchronous, channels for inter-process communication and synchronisation, selective waiting construct for non-determinism, implementation issues, programming techniques using message passing, reasoning about message passing programs. [3 hours]

Remote Invocation:
Motivation and definitions, message passing and synchronisation with remote invocation, client-server paradigm of process interaction, implementation issues, programming techniques using remote invocation. [3 hours]

Summing Up:
Summary of the course and industry relevance. [1 lecture]

Reading List:
A. Concurrent Programming, A. Burns and G.Davies, Addison-Wesley, 1993.

B. Principles of Concurrent Programming, M. Ben-Ari, Prentice-Hall, 1982.

B. Principles of Concurrent and Distributed Programming, M. Ben-Ari, Prentice-Hall, 1990.

B. Concurrent Programming - Principles and practice, G.R. Andrews, The Benjaming/Cummings Publishing

Company, Inc.., 1991.

C. Communication and Concurrency, R. Milner, Prentice-Hall, 1989.

C. Communicating Sequential Processes, C.A.R. Hoare, Prentice-Hall, 1985.


iistinfo@iist.unu.edu,

Programming Concurrent Computer Systems
Real-Time Systems: Specification, Verification, Refinement and SchedulabilityReal-Time Systems: Specification, Verification, Refinement and Schedulability
Course Descriptions Course Descriptions
Security: Principles, Techniques and Verification Security: Principles, Techniques and Verification
Return to UNU-IIST's home pageUNU-IIST Home