CS 232 introduces students to the basic problems that
operating systems and networks must solve,
and common techniques for solving them.
Instructor:
Professor Joel Adams.
Resources: For sale in the bookstore...
-
Operating Systems and Middleware:
Supporting Controlled Interaction,
by Max Hailperin
-
Course Notes for Operating Systems and Networking (CS 232),
by Adams.
On Reserve in the Library:
- Practical Unix, by Morisugu
- Unix Shell Programming, by Arthur and Burns
- Unix Programming: Methods and Tools, by Peters
Course Outcomes: Students successfully completing this course
will demonstrate that they:
-
Understand different ways operating systems can be organized.
-
Understand the issues in process and thread management,
synchronization, and scheduling.
-
Understand the issues in memory management and virtual memory systems,
-
Understand the basic protocols of TCP/IP networking.
-
Can write programs that run at varying levels in the system,
including:
-
the user-level (using system calls).
-
the shell-level (using a shell-script).
-
the kernel level.
-
the network level (a client-server application).
Grading.
Your grade in this course will be based upon the number of points you earn on
(i) tests and (ii) projects,
which will be weighted at 45% and 55%, respectively.
There will be three tests, weighted at 15% each.
Course Organization.
This course consists of two components:
-
The lectures and tests, that emphasize the principles
and concepts that underly operating systems; and
-
The projects, that provide practical, hands-on experience
in systems programming.
By presenting both of these aspects of operating systems
in a single course,
the theoretical and practical aspects will supplement each other,
leading to a deeper appreciation of each.
Other Policies: Please see my
General Course Policies
page for policies that all of my courses have in common.
Tentative Test Dates: