Year
2019
Units
4.5
Contact
1 x 2-hour lecture weekly
1 x 1-hour tutorial weekly
1 x 3-hour computer lab weekly
Prerequisites
^ = 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:

  1. introduce students to the fundamentals of the operating systems they use
  2. Illustrate the relationship between operating systems and process management
  3. Demonstrate how the operating system manages security requirements
  4. Provide students with a working knowledge of operating system functions, configuration and management
  5. Provide students with a good understanding of how operating systems work to control the functionality of computing technologies
  6. Provide students with an opportunity to demonstrate an ability to design, write and implement process level programs
Expected learning outcomes
At the completion of this topic, students are 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