Syllabus

Instructor

Frank Mueller
mueller @ cs.ncsu.edu

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

  1. Processes and Threads. describe states and transitions of processes/threads; explain non-local transfers of control; determine context switching details.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Protection and Security. list different protection mechanisms; explain security measures in operating systems such as access control.
  7. 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.