Systems, Networks, and Concurrency
Welcome to the 2024 website of COMP2310/6310 Systems, Networks, and Concurrency.
Outline
This course first aims to teach how application programmers can use their knowledge of modern computer systems to write correct programs that deliver the best performance and efficiency. We will touch upon enduring and emerging features of computer hardware, including how it is managed by the operating system. You will learn the subtle way in which programs interact with the operating system and the underlying hardware. A key outcome of this course is to help you become skilled in how you can affect the utilization of hardware resources from the user level as an application programmer.
This course also teaches systems programming, which is the practice of writing low-level systems software. We will use the C programming language as a vehicle for learning systems programming. We will study Linux API for managing process execution, including parallelism and concurrency, memory and storage management, and networking basics.
We recommend the following textbooks to aid the learning in this course
- Computer Systems: A Programmer’s Perspective, 3/E
(Randal Bryant & David O’Hallaron) - Effective C: An Introduction to Professional C Programming (Robert C. Seacord)