1 x 2-hour lecture weekly
1 x 1-hour tutorial weekly
1 x 3-hour computer lab weekly
^ = may be enrolled concurrently
^ COMP1102 - Computer Programming 1
Enrolment not permitted
1 of COMP9812, ENGR2782, ENGR8782 has been successfully completed
Topic description

This topic introduces the fundamentals of operating systems design and management together with the basics of security and an appreciation of the issues involved in the design and implementation of such systems. The topic will seek to motivate the general principles of operating systems with contemporary examples such as web based multimedia content and portable computing, and how operating systems are used by, and make use of, these technologies.

Areas of focus include: an overview of operating systems, processes and threads, concurrency, memory management, scheduling, fundamental C programming, shell scripting, networked operating systems and security.

Educational aims

This topic aims to:

  • Introduce students to the fundamentals of the operating systems they use
  • Illustrate the relationship between operating systems and process management
  • Demonstrate how the operating system manages security requirements
  • Provide students with a working knowledge of operating system functions, configuration and management
  • Provide students with a good understanding of how operating systems work to control the functionality of computing technologies
  • Provide students with an opportunity to demonstrate an ability to design, write and implement process level programs
Expected learning outcomes
On completion of this topic you will be expected to be able to:

  1. Understand and explain core concepts such as: processes; threads; cpu scheduling; concurrency and deadlock; memory management, especially virtual memory; filesystems
  2. Discuss possible alternative implementation strategies for some core OS features, including the data structures and algorithms required to support them
  3. Write programs that directly use some of the core operating system features
  4. Use an operating system’s command-line interface, in both interactive and scripted modes
  5. Use system performance monitoring tools, and explain observations in terms of the theoretical concepts in L01 and L02 above
  6. Use a virtualisation tool to run one operating system as a guest in another operating system