A close look at how the unix operating system runs processes. Topics include machine-level data representation, C code and its compiled x86 assembly, virtual memory, process swapping, stack overflows, forking, the system heap, how compiling and linking are implemented, and inter-process communication. This material is a standard intermediate level part of undergrad computing programs, providing an understanding of the interaction between an operating system, its resources, and the programs it runs.
Students will need a computer (Windows, Linux, MacOS) onto which software and modules may be installed. Some cloud-based computing resources may be provided.
Delivery Method: Entirely remote (asynchronous)
Prerequisites:Permission of the instructor. Two previous computer science courses such as Introduction to Computer Science and a Data Structures course, or the equivalent are required. Students who wish to register for this class should email firstname.lastname@example.org .
Course Level: 4000-level
Asynchronously Remote (2nd seven weeks)
Maximum Enrollment: 12
Course Frequency: Every 2-3 years
Categories: Computer Science , All courses