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
-
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.
-
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.
-
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.
-
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 direcry 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; 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.
-
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.
!li>