Department of Computer Science and Technology – Course pages 2022–23 (working draft): Advanced Operating Systems skip to primary navigationskip to content Study at Cambridge About the University Research at Cambridge Search site Home Study at Cambridge Undergraduate Courses Applying Events and open days Fees and finance Student blogs and videos Graduate Why Cambridge Course directory How to apply Fees and funding Frequently asked questions International students Continuing education Executive and professional education Courses in education About the University How the University and Colleges work History Visiting the University Term dates and calendars Map For media Video and audio Find an expert Publications Global Cambridge News Events Public engagement Jobs Give to Cambridge Research at Cambridge For staff For current students For alumni For business Colleges & departments Libraries & facilities Museums & collections Email & phone search Computer Laboratory Teaching Courses 2022–23 Advanced Operating Systems Department of Computer Science and Technology Undergraduate Course pages 2022–23 (working draft) Advanced Operating Systems Syllabus Course materials Assessment Recordings Principal lecturer: Dr Robert Watson Taken by: Part II CST Hours: 16 Format: Video lectures and in-person practicals Class limit: max. 18 students Prerequisites: See the full prerequisites on the syllabus page. Aims Systems research refers to the study of a broad range of behaviours arising from complex system design, including: low-level operating systems; resource sharing and scheduling; interactions between hardware and software; network-protocol design and implementation; separation of mutually distrusting parties on a common platform; and control of distributed-system behaviours such as concurrency and data replication. This module will: Teach systems-analysis methodology and practice through tracing and performance profiling experiments; Expose students to real-world systems artefacts such as I/O, IPC,and network-stack implementations, and consider their hardware-software interactions with CPUs; Develop scientific experimentation, analysis and presentation skills through a series of laboratory assignments; and Assign a selection of original research papers to give insight into potential research topics and approaches. The teaching style will blend lectures and hands-on labs that teach methodology, design principles, and practical skills. Students will be taught about (and assessed via) a series of lab assignments based on practical work. The systems studied are real, and all wires will be live. Prerequisites It is strongly recommended that students: Have previously (and successfully) completed an undergraduate operating-system course -- or have equivalent experience through project or open-source work. Have reasonable comfort with the C and Python programming languages. C is the primary implementation language for systems that we will analyse, requiring reading fluency; userspace C programs will also be written and extended as part of lab exercises. Python will be used as our data-collection and processing language, and provides useful tools for data analysis and presentation. Review an undergraduate operating-system textbook (such as the 'Dinosaur Book') to ensure that basic OS concepts such as the process model, inter-process communication, filesystems, network stacks, and virtual memory are familiar. Syllabus The sessions are split up into three submodules: Introduction to kernels and kernel tracing/analysis The purpose of this submodule is to introduce students to the structure of a contemporary operating system kernel through tracing and profiling. Lecture 1: Introduction: OSes and this course (1h) Lecture 2: Kernels and Tracing (1h) Lecturelet 1: I/O Lab (30m) Lab 1: I/O (2x2h lab sessions, if in person; otherwise short 1:1 supervisions) Deliverable: Lab Assignment 1 - I/O Processors, processes, and threads This submodule introduces students to concrete implications of the UNIX process model: processes and threads in both userspace and kernelspace, the hardware foundations for kernel and process isolation, system calls, and traps. Lecture 3: The Process Model - 1 (1h) Lecture 4: The Process Model - 2 (1h) Lecturelet 2: IPC Lab (30m) Lab 2: IPC (2x2h lab sessions, if in person; otherwise short 1:1 supervisions) Deliverable: Lab Assignment 2 - IPC TCP/IP This submodule introduces students to a contemporary, multithreaded, multiprocessing network stack, with a particular interest in the TCP protocol. Labs will consider both the behaviour of a single TCP connection, exploring the TCP state machine, socket-buffer interactions with flow control, and TCP congestion control. Students will use DUMMYNET to simulate network latency and explore how TCP slow start and congestion avoidance respond to network conditions. The second marked lab assignment will be written. Lecture 5: The Network Stack (1) (1h) Lecture 6: The Network Stack (2) (1h) Lecturelet 3: TCP/IP Lab (30m) Lab 3: TCP/IP (2x2h lab sessions, if in person; otherwise short1:1 supervisions) Deliverable: Lab Assignment 3 - TCP /IP Objectives On completion of this module, students should: Have a good understanding of high-level OS kernel structure Gained insight into hardware-software interactions for compute and I/O Have practical skills in system tracing and performance analysis Have been exposed to research ideas in system structure and behaviour Have learned how to perform systems-style performance evaluations Have learned how to present systems evaluation results Assessment Lab assignment 1 (10% of total mark) Lab assignment 2 (45% of total mark) Lab assignment 3 (45% of total mark) Recommended reading Primary module texts Course texts provide instruction on statistics, operating-system design and implementation, and system tracing. You will be asked to read selected chapters from these, but will likely find other content in them useful as you proceed with the labs. Marshall Kirk McKusick, George V. Neville-Neil, and Robert N. M. Watson. The Design and Implementation of the FreeBSD Operating System, 2nd Edition, Pearson Education, Boston, MA, USA, September 2014. Brendan Gregg and Jim Mauro. DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD, Prentice Hall Press, Upper Saddle River, NJ, USA, April 2011. Additional texts Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne, Operating System Concepts, Eighth Edition, John Wiley and Sons, Inc., New York, NY, USA, July 2008. Brendan Gregg. Systems Performance: Enterprise and the Cloud, Prentice Hall Press, Upper Saddle River, NJ, USA, October 2013. Research-paper readings Research-paper readings will be announced as the terms proceed, but will likely include original papers on BPF, DTrace, OS scheduling, OS scalability, network stacks, and systems modelling. © 2022 Department of Computer Science and Technology, University of Cambridge Information provided by Dr Robert Watson – edit page University A-Z Contact the University Accessibility Freedom of information Terms and conditions Study at Cambridge Undergraduate Graduate International students Continuing education Executive and professional education Courses in education About the University How the University and Colleges work Visiting the University Map News Events Jobs Give to Cambridge Research at Cambridge News Features Discussion Spotlight on... About research at Cambridge