Syllabus
Instructor
Course prerequisites:
CSC 230 and CSC 236.
Course purpose: This class prepares you to
understand fundamental issues in operating systems. You will be
introduced to multi-threading, synchronization, scheduling, virtual
memory, security and communication/networking. The material will be covered in terms of operating systems
services exported by the operating systems interface. Current
trends will be discussed to give a better understanding of future
developments likely to be included in operating systems.
Course objectives:
Upon successful completion of this course, a student will be able to
- Processes and Threads. describe states and transitions
of processes/threads; explain non-local transfers of control;
determine context switching details.
- Synchronization. list different synchronization
models; explain operational characteristics of these models;
use these facilities in concurrent programming models; contrast
these models; utilize synchronization for contemporary
architectures; select a suitable synchronization paradigm for a
given problem.
- Virtual Memory. reiterate the principles of hardware
and software support for virtual memory; express operational
properties of address translation; perform the calculations of
address translation; predict the impact on TLB misses; judge the merits and
shortcomings of virtual memory usage.
- Scheduling. recite different scheduling paradigms;
paraphrase qualitative and quantitative properties of these paradigms;
derive a schedule for given parameters; model quantitative
properties of scheduling paradigms; exploit existing scheduling
models support by systems; contrast different scheduling approaches.
- I/O and File Management. reiterate the
principles of file systems in terms of data structures; understand
access control; interface with directory services on the system API
level; judge the merits and shortcomings of contemporary file
systems.
- Protection and Security. list different
protection mechanisms; explain security measures in operating
systems such as access control.
- Communication and Networking. reiterate basic
communication paradigms and networking protocols in terms of their
functionality; explain differences and functionalities of
communication modes and layers;
design and implement communicating client-server applications.