DCU Home | Our Courses | Loop | Registry | Library | Search DCU

Registry

Module Specifications

Archived Version 2007 - 2008

Module Title Concurrent Systems
Module Code EE206
School School of Electronic Engineering

Online Module Resources

Module Co-ordinatorProf Barry McMullinOffice NumberL116
Module Co-ordinatorProf Barry McMullinOffice NumberL116
Level 4 Credit Rating 5
Pre-requisite None
Co-requisite None
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

On completion of this module, the student will be able to:

  • Explain the structure and operation of a modern operating system, including memory management and process scheduling. (PO1)
  • Explain the application of key software optimization techniques. (PO1)
  • Explain and analyse the operation of communication and synchronisation between concurrent software processes, including deadlock analysis. (PO1, PO2)
  • Carry out basic interactive tasks, including file management, compilation, and process management, in a (Unix-like) command line interface environment. (PO1, PO2, PO5)


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 VonNeumann sequential architecture. Solutions based on parallel hardware architecture and/orpseudo-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/CPUinterface.
Assessment
Continuous Assessment15% Examination Weight85%
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.

Contribution to Programme Areas:

Science & Mathematics Discipline - specific Technology Information and Communications Technology Design and Development Engineering Practice Social and Business Context
1 4 4 2 1 0

Contribution to Programme Outcomes:

Knowledge and Its Application:

The ability to derive and apply solutions from a knowledge of sciences, engineering sciences, technology and mathematics

Problem Solving:

The ability to identify, formulate, analyse and solve engineering problems;

Design:

The ability to design a system, component or process to meet specified needs, to design and conduct experiments and to analyse and interpret data;

Ethical Practice:

An understanding of the need for high ethical standards in the practice of engineering, including the responsibilities of the engineering profession towards people and the environment

Effective Work and Learning:

The ability to work effectively as an individual, in teams and in multidisciplinary settings together with the capacity to undertake lifelong learning;

Effective Communication:

The ability to communicate effectively with the engineering community and with society at large

4 2 0 0 1 0

Teaching & Learning Strategies/Assessment Methodology:

Teaching by face-to-face lectures and tutorials, with computer based demonstrations where feasible, and complementary online materials and discussion forum. Unix command line proficiency developed through self-directed learning and lab tutorials; assessed by supervised, “open-Internet” lab based tests (MCQ) (15%). All other outcomes assessed by written exam (85%).

Programme or List of Programmes
BSSAStudy Abroad (DCU Business School)
BSSAOStudy Abroad (DCU Business School)
ECSAStudy Abroad (Engineering & Computing)
ECSAOStudy Abroad (Engineering & Computing)
HMSAStudy Abroad (Humanities & Soc Science)
HMSAOStudy Abroad (Humanities & Soc Science)
SHSAStudy Abroad (Science & Health)
SHSAOStudy Abroad (Science & Health)
Archives: