Course Code: ICT331

Synopsis

This course introduces you to the basic ideas in concurrent systems. It discusses the basic hardware and software for such systems and examines the nature of a concurrent process as well as multi-threading with a programming language. The course will also look into inter-process communications as concurrent processes inter among themselves. In particular, it will consider the important issue of accessing shared data.As this is a practical course, it will use Java, a programming language commonly used in the industry, for investigating topics such as multi-threading and accessing shared data
Level: 5
Credit Units: 5
Presentation Pattern: Every January

Topics

  • The nature of concurrent systems
  • Hardware and software support for concurrent systems
  • The concept of a process and concurrent processes
  • The fundamentals of distributed systems
  • Basic inter-process communications
  • Accessing shared data and shared implementations

Learning Outcome

  • Illustrate what is a concurrent system
  • Differentiate among concurrent, potentially concurrent and non-concurrent systems
  • Appraise the role of hardware and operating systems in concurrent processing
  • Discuss the characteristics and issues involved in distributed processing
  • Show the concurrent processing issues for shared memory systems
  • Construct programs involving multi-threading and synchronised concurrent processes