Syllabus
Instructor
Frank Mueller |
mueller @ cs.ncsu.edu |
Office Hours: W 9:00-10:00 |
452 EGRC |
Textbook: Textbook: Operating System Concepts with Java, Sixth Edition by Abraham Silberschatz and Peter Baer Galvin and Greg Gagne.
Course prerequisites:
CSC 116 (Intro to Computing), and MA 121 (Calculus).
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:
By the end of the course, you should be able to do the
following things:
-
Processes and Threads.To reiterate states and
transitions of processes/threads; to explain non-local transfers of
control; to determine context switching details; to analyze
process/thread performance; to design and implement utilities querying
process/thread states.
-
Synchronization. To list different synchronization
models; to explain to operational characteristics of these models; to
use these facilities in concurrent programming models; to contrast
these models; to utilize synchronization for contemporary
architectures; to select a suitable synchronization paradigm for a
given problem.
-
Virtual Memory. To reiterate the principles of
hardware and software support for virtual memory; to express
operational properties of address translation; to perform the
calculations of address translation; to predict the impact on TLB
misses; to apply virtual address in runtime systems; to judge the
merits and shortcomings of virtual memory usage.
-
Scheduling. To recite different scheduling
paradigms; to paraphrase qualitative and quantitative properties of
these paradigms; to derive a schedule for given parameters; to model
quantitative properties of scheduling paradigms; to exploit
existing scheduling models support by systems; to contrast
different scheduling approaches.
-
I/O and File Management. To reiterate the
principles of file systems in terms of data structures; to understand
access control; to interface with directory services on the system API
level; to judge the merits and shortcomings of contemporary file
systems.
-
Protection and Security. To list different
protection mechanisms; to explain security measures in operating
systems; to recite common security attacks to systems and detail their
exploitation of security holes; to contrast
these attacks; to demonstrate by example how a selected exploit functions;
to select suitable counter-measurements for exploits.
-
Communication and Networking. To reiterate basic
communication paradigms and networking protocols in terms of their
functionality;to explain differences and functionalities of
communication modes and layers; to analyze networking performance; to
design and implement communicating client-server applications.
!li>