EE206: Software Engineering 4
(Legacy Site)
Module co-ordinator: Prof. Barry McMullin
5 February 2006: This is a legacy website for module
EE206, which was used to support the module in academic years
prior to 2005-2006. From 2005-2006 onward the module is instead
supported via the DCU Virtual Learning Environment Moodle. This site has been left
in place for reference purposes, but it is no longer
maintained. All current information on the module will be made
available through the Moodle site only.
Goals
and Learning Outcomes | Syllabus |
Course Texts
Lecture Notes |
Links | Assignments | Tutorials
Past Exams
| Tanenbaum
Reading List
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.
Goals and Learning
Outcomes
Having successfully completed this course, the
student will:
- be familiar with the fundamental principles of
concurrent processes.
- be familiar with key software optimisation
techniques for real-time systems.
- have acquired the basic skills necessary to work
in a UNIX environment.
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/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/CPUinterface.
Course
Textbooks
Recommended textbook (Purchase
optional)
- Tanenbaum, A.S., "Modern
operating systems", Prentice-Hall, 1992.
Additional textbooks
- 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.
All are in the library.
Links
Assignments
Tutorials
Author: Dr.
Gabriel-Miro Muntean
Latest revision: April 23rd, 2004.
BACK TO EE206
HOMEPAGE.