Course Description
CSC 256/456 explores the principles underlying the design and
implementation of modern computer systems with emphasis on operating
systems.
Fundamental topics in computer architecture and parallel/distributed
computing are also covered.
Prerequisite: CSC 252 or equivalent.
Topics to be covered include:
-
Concurrency and Processes: Co-routines and processes. Synchronization.
Scheduling.
-
Resource management: Deadlock.
-
Memory management: Address translation; TLBs. Segmentation and paging.
Virtual memory.
-
Device management: Device drivers. File systems. Access control; protection
and authorization.
-
Networks and Distributed Systems: Communication protocols. Distributed
file systems.
-
Web programming: The Java virtual machine. Just-in-time
compilation.
Theoretical topics will be addressed in lecture, in readings, and possibly
in written homework assignments. Programming assignments will focus on
the more pragmatic aspects of operating systems and distributed
applications.
In a departure from recent practice, this year's
assignments will not employ a pedagogical OS; we'll mostly be writing
real programs on top of Solaris.
Back to the course home page