|Semester||1 & 2|
|Prerequisites||CS210 Computer Systems & Architecture|
|Contact||Lectures: 40 | Tutorials: 0 | Labs: 40
Assignments: 60 | Self study: 60
|Assessment||50% by classwork, 50% by two-hour exam.|
|Resit||Resit is by a 2-hour examination.|
To enable the student to develop a deeper understanding of highly concurrent hardware and software systems. The class will also further the student’s knowledge of the need for, and the design and implementation of, those other vital hardware and software components of a concurrent system, namely multiprocessors and their interconnections, operating systems and networks. The interactions between many of these components will be investigated by means of significant practical work that consolidates the lecture content in the context of: (i) multiprocessor architectures, (ii) concurrency, (iii) protection and security and (iv) networked and concurrent applications. Software developed in appropriate programming languages will form the basis of much of the practical work thus enabling the student to enhance their software design and implementation skills in this domain.
- To understand the concepts of software and hardware design for multiprocessing, OS process and thread models, process and thread scheduling, and inter-process communication
- To appreciate the issues that affect the design, implementation and performance of multiprocessor systems and to understand current approaches to ameliorate these
- To appreciate the problems of process and thread synchronisation and understand concurrency mechanisms
- To demonstrate an understanding of OS protection and security mechanisms, and network security techniques
- To display practical skills necessary to develop networked, and thread safe concurrent applications
- Multiprocessing: shared memory multiprocessors; message-passing multiprocessors; hardware multithreading; graphics processing units; multiprocessor network topologies; multiprocessor benchmarking and performance models.
- OS process management: process and thread models; inter-process communication; CPU scheduling; scheduling of multiprocessor systems, process synchronisation (critical sections, semaphores, monitors, atomic transactions); deadlocks.
- System protection (access control, capability- and language-based protection)
- Security: threats; cryptography and data encryption; authentication and user authentication; non-repudiation; certification authorities; security defences; email privacy; network security (IP security, wireless network security); web security
- Client/Server communication (sockets)
- Building object-oriented concurrent applications
* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.