Module 02324 (2002)
Syllabus page 2002/2003
06-02324
Real-Time Systems Programming
Level 2/I
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Outline
Basic concepts and fundamental problems of concurrency; hardware mechanisms for process switching and mutual exclusion; low-level mutual exclusion algorithms and some pitfalls; semaphores; buffering; concurrent programming with threads in Java.
Aims
The aims of this module are to:
- to introduce the basic concepts and terminology of concurrent programming
- to give an appreciation of the wide range of applications of concurrent programming, including both real-time and parallel applications
- to give an appreciation of the special difficulties in achieving reliability in concurrent software
- to introduce the basic ideas of concurrent program analysis
- to give a good understanding of a wide variety of primitive concurrency mechanisms and how to use them in practice in a wide variety of application areas
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | judge for what applications and in what circumstances concurrent programs are appropriate | Examination |
| 2 | understand the terminology of concurrent programming | Examination |
| 3 | design concurrent algorithms using a variety of primitive concurrency mechanisms | Examination |
| 4 | analyse the behaviour of simple concurrent programs with respect to safety and liveness issues | Examination |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
(06-08744 (Software Workshop 1 A) and 06-08745 (Software Workshop 1 B)) OR (06-08747 (Software Workshop 1(A) A) and 06-08750 (Software Workshop 1(A) B))
Co-requisites:
None
Teaching
Teaching Methods:
2 hrs lectures/tutorials per week
Contact Hours:
Assessment
- Supplementary (where allowed): As the sessional assessment
- 2 hr examination (100%).
Recommended Books
| Title | Author(s) | Publisher, Date |
| Lecture Notes | T. Axford | |
| Concurrent Programming: Principles and Practice | G.R. Andrews | |
| Principles of Concurrent and Distributed Programming | M. Ben-Ari |
Detailed Syllabus
-
Introduction (2 lectures)
- Basic concepts and definitions of terms
- Standard concurrency problems (mutual exclusion, producer-consumer, readers-and-writers, Dining Philosophers)
- Basic Hardware Mechanisms (3 lectures)
- Process switching and its implementation in hardware and software
- Mutual exclusion - on memory access, of individual instructions, by disabling interrupts, multiprocessor mechanisms
- Message passing in distributed systems
- Low-Level Mutual Exclusion Algorithms (3 lectures)
- Using special instructions
- Using ordinary instructions - Peterson's Algorithm
- Definitions and examples of lack of safety, deadlock, permanent blocking, starvation, lack of liveness
- Semaphores (2 lectures)
- Boolean and integer semaphores
- Mutual exclusion and resource allocation applications
- Weak and strong semaphores
- Implementation of semaphores
- Buffering Techniques (3 lectures)
- Definition of producer-consumer problems
- Single buffering
- Double buffering
- Bounded buffer queues, other variations and applications
- Threads in Java (5 lectures)
- Thread creation and management
- Mutual exclusion with threads
- Making threads wait
- Example applications (producer-consumer, dining philosophers)
- The Java model of concurrency
- Class Tests and Discussion of Exercises (remaining lectures)
Last updated: 29 July 2001
Source file: /internal/modules/COMSCI/2002/xml/02324.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus