Registry
Module Specifications
Archived Version 2009 - 2010
| |||||||||||||||||||||||||||||||||
Module Aims | |||||||||||||||||||||||||||||||||
The module aims to give students a deep understanding of the principles underlying concurrent programming, and to give them practical skills in developing multi-threaded programs in traditional and object-oriented languages | |||||||||||||||||||||||||||||||||
Learning Outcomes | |||||||||||||||||||||||||||||||||
By the end of this module students should : Understand the purpose of, and pitfalls inherent in, concurrent programming. Understand the implementation of concurrency. Understand the need for resource sharing, the problems that arise, and how to solve them using semaphores, monitors, message passing, etc. Be able to reason about the correctness of concurrent programs. Know the features for supporting concurrency in several computer languages. Understand Java's concurrency model, its strengths and shortcomings Write a complex multi-threaded application. | |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
NOTE | |||||||||||||||||||||||||||||||||
Assume that a 7.5 credit module load represents approximately 112.5 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 | |||||||||||||||||||||||||||||||||
The idea of concurrency; threads; nondeterminacy; granularity; costs. Memory model; multicore architectures; caches; shared resources; Creating & managing threads. Parallel algorithms; searching and sorting; parallelisation. Communication and synchronisation; mutual exclusion; monitors. Semaphores; barriers; semaphore implementation. Correctness properties of concurrent programs; reasoning about them. Scalability; testing for performance & correctness; common pitfalls. Liveness; deadlock; deadlock avoidance, detection, and recovery. Thread pools; client-server architecture. Shared data structures; queues; stacks; lock-free data structures; CAS instruction. Resource management; fairness; priority inversion. Software transactional memory. Communication via message-passing; rendezvous. Practical exercises in using Java in multi-threaded applications. | |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
Indicative Reading List | |||||||||||||||||||||||||||||||||
Supplementary: Java Concurrency in Practice, Goetz et al, Addison-Wesley (2006) ISBN 0321349601 Java Threads, 3rd Edition, Scott Oaks, Henry Wong, O’Reilly (2004) ISBN 0-596-00782-5 Foundations of Multithreaded, Parallel, and Distributed Programming , Gregory R. Andrews, Addison-Wesley (2000) ISBN 0-201-35752-6 | |||||||||||||||||||||||||||||||||
Programme or List of Programmes | |||||||||||||||||||||||||||||||||
BSSA | Study Abroad (DCU Business School) | ||||||||||||||||||||||||||||||||
BSSAO | Study Abroad (DCU Business School) | ||||||||||||||||||||||||||||||||
CAPD | PhD | ||||||||||||||||||||||||||||||||
CAPM | MSc | ||||||||||||||||||||||||||||||||
CAPT | PhD-track | ||||||||||||||||||||||||||||||||
ECSA | Study Abroad (Engineering & Computing) | ||||||||||||||||||||||||||||||||
ECSAO | Study Abroad (Engineering & Computing) | ||||||||||||||||||||||||||||||||
EEPD | PhD | ||||||||||||||||||||||||||||||||
EEPM | MEng | ||||||||||||||||||||||||||||||||
EEPT | PhD-track | ||||||||||||||||||||||||||||||||
GCSE | Grad Certificate in Software Engineering | ||||||||||||||||||||||||||||||||
GSE | Graduate Diploma in Software Engineering | ||||||||||||||||||||||||||||||||
HMSA | Study Abroad (Humanities & Soc Science) | ||||||||||||||||||||||||||||||||
HMSAO | Study Abroad (Humanities & Soc Science) | ||||||||||||||||||||||||||||||||
MEPD | PhD | ||||||||||||||||||||||||||||||||
MEPM | MEng | ||||||||||||||||||||||||||||||||
MEPT | PhD-track | ||||||||||||||||||||||||||||||||
MSE | MSc in Software Engineering | ||||||||||||||||||||||||||||||||
NAVNMU | Non Award Visitors- UCD/DCU | ||||||||||||||||||||||||||||||||
SHSA | Study Abroad (Science & Health) | ||||||||||||||||||||||||||||||||
SHSAO | Study Abroad (Science & Health) | ||||||||||||||||||||||||||||||||
SMPEC | Single Module Programme (Eng & Comp) | ||||||||||||||||||||||||||||||||
Archives: |
|