Syllabus

Instructor

Frank Mueller
mueller [a@t] cs.ncsu.edu
Office Hours: W 9:30-10:30 3266 EB2
Assistants
Prachi Gauriar
pgauria [a@t] ncsu.edu
Office Hours: MWF 11:00am-12:00pm 3224 EB2

Textbook: Textbook: Operating Systems: Internals and Design Principles, Fifth Edition by William Stallings.

Course prerequisites: CSC 244 (Operating Systems), CSC 314 (Data Structures) and MA 421 (Probability). Additional prerequisites include CSC 114 (Intro to C++), CSC 224 (Applied Discrete Mathematics), CSC 234 (Computer Organization & Assembly Language), and MA 121 (Calculus).

Course purpose: This class prepares you to understand advanced issues in operating systems. You will be introduced to multi-threading, synchronization, scheduling, virtual memory, and distributed systems including clusters. The material will be covered in terms of operating systems internals rather than the operating systems interface. Current research will be discussed to give a better understanding of open issues in operating systems.

Course objectives: Upon successful completion of this course, a student will be able to

  1. Processes and Threads. reiterate states and transitions of processes/threads; explain non-local transfers of control; determine context switching details; analyze process/thread performance; design and implement utilities querying process/thread states.
  2. Synchronization. list different synchronization models; explain to 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; apply virtual address in runtime systems; 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 direcry 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; recite common security attacks to systems and detail their exploitation of security holes; contrast these attacks; demonstrate by example how a selected exploit functions; select suitable counter-measurements for exploits.
  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; analyze networking performance; design and implement communicating client-server applications.