This course is an introduction to the design, use, and
implementation of operating systems. An operating system (OS)
has
two basic functions. First, it provides an abstraction of the
computer hardware for software applications to use. Second,
it
manages the sharing of resources (such as the CPU and memory) among
different applications.
We will also investigate strategies for designing parallel algorithms,
which exploit the computational resources of multiple CPUs to solve
problems faster.
YES!
Seriously, you will find this course invaluable if you plan to go on to work or advanced study in computer science, if you want to build high performance computing applications someday, or if you just have a burning curiousity about how your computer can walk and chew gum at the same time (metaphorically speaking, of course). Plus, programming with concurrency is fun and challenging---it will stretch your mind.
This course assumes you have taken CSC 201 and are reasonably adept at C programming. It fulfills the Computer Systems requirement for CS majors and is recommended for all CS majors.
Janet Davis (davisjan@cs.grinnell.edu)
Created August 4, 2006