Information on this page, including unit offerings, is from the 2020 academic year.
Operating Systems and Systems Programming (ICT374)
|Organisational Unit||Information Technology, Mathematics and Statistics|
|Availability||MURDOCH: S2-internal, S2-external
|Teaching Timetables||Murdoch S2
|Description||This unit aims to provide an understanding of the design and implementation of modern operating systems and how they provide an interface to computer hardware resources. It also covers the use of operating systems service routines to construct efficient systems programs. Topics include: process management, memory management, mechanisms for interprocess communications, file systems and protections, network programming using sockets and the UNIX system call interface.|
|Unit Learning Outcomes||On successful completion of the unit you should be able to:
1. Demonstrate a critical understanding of the concepts of process and how the processes are managed in an operating system.
2. Demonstrate a critical understanding of how a typical Unix file system is implemented on a mass storage media such as a hard disk.
3. Demonstrate a critical understanding of various interprocess communication mechanisms.
4. Demonstrate a critical understanding of various memory management schemes and the related hardware support, including paging, segmentation, virtual memory, and various cache technologies for speeding up memory access.
5. Demonstrate an understanding of concurrency related issues such as deadlock and race conditions and the methods and techniques to handle these issues.
6. Demonstrate an understanding of how the hardware resources are abstracted and made available to the upper layer software as an operating system programming interface.
7. Demonstrate the ability to manage processes in multiple process programs.
8. Demonstrate the ability to access and manipulate files, directories and various special files in a system program.
9. Demonstrate the ability to using signals and appropriate interprocess communication mechanisms in the design and implementation of multiple process programs, including data exchange and process synchronisation.
10. Demonstrate the ability to design and implement client and server programs using TCP and UDP protocols.
11. Have a solid understanding of the standard Unix programming interface and demonstrate the abilities and skills to designing and implementing systems programs that make an efficient use of the system resources via the programming interface.
12. Have the experience and the skills to work effectively in a team environment.
13. Develop and demonstrate skills in self-learning, communications, research, trial-and-error, etc., to implement system software.
|Timetabled Learning Activities||Lectures: 1 x 2 hours per week: tutorials: 1 x 2 hours per week (1 hour unsupervised); optional clinics.
All offerings of this unit include the equivalent of 30 hours of structured learning.
|Unit Learning Experiences||This unit mainly consists of lectures and tutorial/lab sessions. In each of the 12 teaching weeks, there is one 2-hour lecture and one 2-hour tutorial. Each lecture usually covers one topic. The companion tutorial/lab session will consist of small programming exercises and/or other tasks that the students need to complete to enforce the understanding of the concepts covered in the topic and to master the relevant design and programming techniques. These small exercises are also designed to provide incremental help for the two major assignments. In order to assess a small subset of the learning outcomes, each tutorial exercise will require the solution of some small problems. There are also two major assignments that the students need to hand in over the period of the semester. The purpose of the major assignments is to demonstrate a larger subset of the learning outcomes and to ensure that students can integrate the knowledge that they have acquired. Most of the materials and resources for students to complete the practical exercises and the major assignments will be available through LMS.|
|Assessment||You will be assessed on the basis of two major assignments (15% and 25% respectively), weekly lab assignments (10%), and one final examination (50%).
Your final grade for the unit will be reported as a letter grade and a mark. In order to pass the unit you must:
1) have an aggregate score for the combined assessment of 50% or better, and
2) achieve a satisfactory performance in the supervised component, which is the final examination. A satisfactory performance is normally considered to be 50% or higher.
|Prerequisites||ICT283/ICT209 Data Structures and Abstractions.|
|Exclusions||Students who have successfully completed ICT310 Operating Systems and Systems Programming cannot enrol in this unit for credit.|
|Appears in these Courses/Majors:
see individual structures for context
|Internet Access Requirements||Murdoch units normally include an online component comprising materials, discussions, lecture recordings and assessment activities. All students, regardless of their location or mode of study, need to have access to and be able to use computing devices with browsing capability and a connection to the Internet via Broadband (Cable, ADSL or Mobile) or Wireless. The Internet connection should be readily available and allow large amounts of data to be streamed or downloaded (approximately 100MB per lecture recording). Students also need to be able to enter into online discussions and submit assignments online.|