CS625 01 Operating Systems Design – Summer I, 2016

More materials will be posted on the Bradley Sakai website.

You can open the Sakai web site at http://sakai.bradley.edu/, login with your Bradley login/password,

and select the “CS625_01_16S1 – Operating Systems Design” resources to access the course materials.

Contents

General Information

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.

Course Materials

Topic Schedule

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 
- Operating Systems History 
- Operating Systems Kernel and API 
- Operating Systems Structures

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
Process model and thread model 
(user and kernel mode, interrupt/exception/trap) 
Process transaction diagrams 
(Example: UNIX 4-state diagram) 
IPC 
- Race conditions 
- Critical region 
- Semaphores, Monitors, Message passing. 
Process/thread Scheduling 
- Context Switching 
- Round Robin, Priority, FCFS, Shortest Job First 
UNIX/LINUX/ANDROID and Window OS Process, System Task, and Clock Task. 

 

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 
- Basic Memory Management 
- Swapping 
- Memory allocation 
(First fit, Next fit, Best fit, Worst fit, Quick fit) 
- Virtual memory with paging 
  Page Tables (single level, multiple level) 
  TLBs (Associated Memory, Cache memory) 
  Page Replacement Algorithms 
  (Optimal, NRU, FIFO, 2rd change, LRU) 
- Virtual memory with segmentation 
  Segment with paging

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
- File attributes and operations 
- Directory systems and operations
- File system implementation (Example: UNIX inode
- Security

- 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 
- Hardware (RAM/Disk, Device controller, DMA) 
- Software (Layered software, Disk arms scheduling)

- RAM disks and Disks 
- Clocks and Terminals
UNIX/LINUX/ANDROID and Window OS I/O, Block Devices

 

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 
- Deadlock conditions
- Deadlock detection & Recovery
- Deadlock avoidance (Bank algorithms) 
- Deadlock Prevention 

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
- Multiprocessors
- Multicomputers
- Distributed Systems

 

Learning outcomes:

- Understand the basic architecture of the multiple processor systems.

Ch. 8

Unit 9

Security

- Operating Systems Security and Security Models
- Basics of Cryptography
- User authentication
- Attacks from inside and outside the system
- Protection Mechanisms

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

Assignments

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.

Grading

·         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)

Communication

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.