|
Module Aims
|
The course will be concerned with applications involving the interaction of concurrent processes: means of realising concurrency, and the use of modern interaction primitives (semaphores, message passing). The course will also give the students a basic introduction to the UNIX operating system and discuss the interaction of concurrent processes using C code developed on a UNIX system.
Students will also be introduced to general features of a real-time language and basic optimisation techniques for high-level language (C).
|
Learning Outcomes
|
Having successfully completed this course, the student will:
1. be familiar with the fundamental principals of concurrent processes.
2. be familiar with key software optimisation techniques for real-time systems.
3. have acquired the basic skills necessary to work in a UNIX environment.
|
Indicative Time Allowances
|
|
Hours
|
Lectures |
24
|
Tutorials |
9
|
Laboratories |
0
|
Seminars |
0
|
Independent Learning Time |
42
|
|
|
Total |
75
|
Placements |
|
Assignments |
|
|
NOTE
|
Assume that a 5 credit module load represents approximately 75 hours' work, which includes all teaching, in-course assignments, laboratory work or other specialised training and an estimated private learning time associated with the module.
|
Indicative Syllabus
|
· Real-time Programming: Features of a real-time language.
· Real-time Optimisation: Arithmetic identities, Constant folding, Reduction in
strength, Common sub-expression elimination, Loop invariant removal, Loop
induction elimination, Loop unrolling, Loop jamming, Scaled numbers, Look-up
tables, Imprecise computation (approximate reasoning), Memory optimisation.
· Introductory UNIX: Overview of the UNIX operating system,. UNIX implementations.
Basic operations and commands, File redirection, Command shells, Communicating
with remote systems, Manipulating processes.
· Concurrent processes: Meaning of a process. Natural analysis of real world applications in
terms of interacting concurrent processes. Difficulty of mapping this onto the Von
Neumann sequential architecture. Solutions based on parallel hardware architecture and/or
pseudo-parallelism by time-slicing a single sequential processor. Process interaction.
· Inter-process communication: Synchronisation and communication. Use of semaphore
synchronisation and shared memory communication. Critical section implementation.
Examples using C code fragments. Producer/consumer problem. Problems of unintended
side-effects and deadlocks. Use of message passing for synchronisation and communication.
· Deadlock: Formal analysis. Deadlock conditions. Resource allocation graph. Handling deadlock.
· Input/output architecture: I/O device classification. I/O hardware architecture. Controller/CPU
interface.
|
Assessment | Continuous Assessment | 15% | Examination Weight | 85% |
|
Indicative Reading List
|
Recommended text (Purchase optional)
- Tanenbaum, A.S., "Modern operating systems", Prentice-Hall, 1992.
Additional texts
- Kernighan, B & Pike, R, "The UNIX programming environment", Prentice-Hall, 1984.
- Tanenbaum, A.S., "Operating systems - Design and implementation", Prentice-Hall, 1987.
- Theaker, C.J. & Brookes, G.R., "Concepts of operating systems", Macmillan, 1983.
- Ripps, D.L., "An implementation guide to real-time programming", Yourdon Press, 1990.
|
|
Programme or List of Programmes
|
BSSA | Study Abroad (DCU Business School) |
BSSAO | Study Abroad (DCU Business School) |
DME | B.Eng. in Digital Media Engineering |
ECSA | Study Abroad (Engineering & Computing) |
ECSAO | Study Abroad (Engineering & Computing) |
EE | BEng in Electronic Engineering |
HMSA | Study Abroad (Humanities & Soc Science) |
HMSAO | Study Abroad (Humanities & Soc Science) |
ICE | BEng Info and Communications Engineering |
SHSA | Study Abroad (Science & Health) |
SHSAO | Study Abroad (Science & Health) |
Archives: | |