Information on this page, including unit offerings, is from the 2019 academic year.
Operating Systems and Systems Programming (ICT310)
|Organisational Unit||Information Technology, Mathematics and Statistics|
|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. Develop and demonstrate skills in self-learning, communications, research, trialand-error, etc., to implement system software.
|Timetabled Learning Activities||Lectures: 1 x 2 hours per week; tutorials: 1 x 2 hour per week (1 hour unsupervised); plus optional clinics.|
|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 problem. 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), 10 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||ICT104 Principles of Computer Science and ICT106 Fundamentals of Computer Systems. Students are encouraged to complete ICT209 Data Structures and Abstractions before taking this unit.|
|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.|
|No co-ordinators found for this unit.||Unit Contacts|
|No contacts found for this unit.|