Instructor:
Jiang B. Liu, jiangbo@bradley.edu
Professor of Computer Science &
Information Systems
Phone: (309) 677-2386
Prerequisites:
CS 321 or equivalent
Lecture:
Arr
Office Hours:
by appointment.
This
is an advanced course in operating systems for computer science graduate
students. The goals of the course are to provide students with a foundation of
operating systems design and to implement operating system process controls,
memory management, file systems management, and input/output controls. The
project assignments will be coded in C/C++ and tested in UNIX/Window
environment.
Unit
1 |
Introduction
to Operating Systems History
of UNIX/LINUX/ANDROID and Window OS Learning
outcomes: -
Knowledgeable in how operating systems have evolved over time from primitive
batch systems to sophisticated multiuser systems. -
Understand the objectives and functions of modern operating systems and be
able to contrast kernel and user mode in an operating system. -
Understand the various ways of structuring an operating system such as
object-oriented, modular, micro-kernel, and layered. -
Know a typical set of system commands provided by an operating system. -
Have a basic understanding of UNIX/LINUX/ANDROID and Window OS Internal
structure and be able to analyze the tradeoffs inherent in operating system
design. |
Ch.
1, 10.1-2, 10.8, 11.1-3 |
Unit
2 |
Processes
and Threads Learning
outcomes: -
Be able to describe the difference between processes and threads models and
the major resource used. -
Understand the reasons for using interrupts, dispatching, and context
switching. -
Knowledgeable of the different states that a task may pass through and be
able to create state and transition diagrams for simple problem domains. -
Have a thorough understanding of the potential run-time problems arising from
the concurrent operation of many separate tasks. -
Be able to summarize the various approaches to solving the problem of mutual
exclusion in an operating system. -
Be able to compare and contrast the common algorithms used for process
scheduling of tasks, such as priority, performance comparison, and fair-share
schemes. -
Understand the relationships between scheduling algorithms and application
domains. -
Be able to describe the UNIX/LINUX/ANDROID and Window OS process management
design issues. |
Ch.
2, Ch. 10.3, 11.4 |
Unit
3 |
Memory
Management UNIX/LINUX/ANDROID
and Window OS Process Manager Learning
outcomes: -
Be able to describe the memory hierarchy and cost-performance trade-offs. -
Understand the concept of virtual memory and how it is realized in hardware
and software. -
Be able to describe the principles of virtual memory as applied to caching
and paging. -
Understand basic memory management concepts, know
the different ways of allocating memory to tasks. -
Be able to describe the UNIX/LINUX/ANDROID and Window OS memory management
design issues. |
Ch.
3, 10.4, 11.5-6 |
Unit
4 |
File
System -
Protection Mechanisms UNIX/LINUX/ANDROID
and Window OS File System Learning
outcomes: -
Be able to describe the full range of considerations that support file
systems. -
Be able to compare and contrast different approaches to file organization and
implementation. -
Knowledgeable in File security access and protection mechanisms. -
Be able to describe the UNIX/LINUX/ANDROID and Window OS file system design
issues. |
Ch
4, 10.6, 11.8 |
Unit
5 |
I/O
-
RAM disks and Disks Learning
outcomes: -
Understand the relationship between the physical hardware and the virtual
devices and device-independent I/O software. -
Understand the advantages and disadvantages of major I/O devices. -
Be able to describe the UNIX/LINUX/ANDROID and Window OS Device Driver
operations. |
Ch.
5, Ch 10.5, 11.7 |
Unit
6 |
Deadlocks
Learning
outcomes: -
Understand the conditions that lead to deadlock and deadlock detection &
recovery, avoidance, and prevention. |
Ch.
6 |
Unit
7 |
Virtualization
and The Cloud -
Virtualization: Type 1 and Type 2 Hypervisors -
Techniques for Efficient Virtualization -
Memory and I/O Virtualization -
Virtual Machines -
Clouds and VMWare Learning
outcomes: -
Understand the basic concepts of the virtualization and cloud as a service. |
Ch.
7 |
Unit
8 |
Multiple Processor Systems Learning
outcomes: -
Understand the basic architecture of the multiple processor systems. |
Ch.
8 |
Unit
9 |
Security - Operating Systems Security and Security Models UNIX/LINUX/ANDROID and Window OS Security implementation Learning
outcomes: -
Understand the basic issues of the operating systems security. -
Understand the UNIX/LINUX/ANDROID and Window OS Security implementations. |
Ch.
9, 10.7, 11.10 |
There
will be three group project assignments. Each group of 2 or 3 students will share
the same grade.
Final Exam: Take home exam from noon, July 07 (Thursday) to noon, July 09 (Saturday), 2016.
All
assignments are due at the class on the due day. Later homework will have 10%
subtracted from the score for each late day.
·
Assignments:
50%
·
Class
Sakai Site Participation 10%
·
Final
Exam: 40%
(100-90
A; 89-80 B; 79-70 C; 69-60 D; below 60 F)
This
class home page is posted at "http://hilltop.bradley.edu/~jiangbo/" and will be used to post the assignments and
other class information.
You are also encouraged email me about
your questions related to the course or share related information with the
class.