CSC 256/456 explores the principles underlying the design and
implementation of modern computer systems with emphasis on operating
Fundamental topics in computer architecture and parallel/distributed
computing are also covered.
Prerequisite: CSC 252 or equivalent.
Topics to be covered include:
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
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.
Concurrency and Processes: Co-routines and processes. Synchronization.
Resource management: Deadlock.
Memory management: Address translation; TLBs. Segmentation and paging.
Device management: Device drivers. File systems. Access control; protection
Networks and Distributed Systems: Communication protocols. Distributed
Web programming: The Java virtual machine. Just-in-time
Back to the course home page