Computer Systems (CS4312.02)

Jim Mahoney

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.


Learning Outcomes:



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 acencini@bennington.edu .
Course Level: 4000-level
Credits: 4
Asynchronously Remote (2nd seven weeks)
Maximum Enrollment: 12
Course Frequency: Every 2-3 years

Categories: All courses , Computer Science
Tags: