CS625 01 Operating Systems Design -- fall, 2017

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:
        3:00-4:15 pm, Tue, Thur. at BR 120
Office Hours:
        2:30-5:00pm Mon, Wed at BR 177
        or 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

MINIX 3

 

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 MINIX OS Internal structure and be able to analyze the tradeoffs inherent in operating system design.

Ch. 1
Appendix B

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 
MINIX 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 MINIX process management design issues.

Ch. 2
Appendix B

Unit 3

I/O 
Hardware (RAM/Disk, Device controller, DMA) 
Software (Layered software, Disk arms scheduling)

Deadlocks 
- Deadlock conditions
- Deadlock detection & Recovery
- Deadlock avoidance (Bank algorithms) 
- Deadlock Prevention 
RAM disks and Disks 
Clocks and Terminals
MINIX 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.

- Understand the conditions that lead to deadlock and deadlock detection & recovery, avoidance, and prevention.

- Be able to describe the MINIX Device Driver operations.

Ch. 3

Appendix B

Unit 4

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

MINIX 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 MINIX memory management design issues.

Ch 4
Appendix B

Unit 5

File System
- File attributes and operations 
- Directory systems and operations
- File system implementation (Example: UNIX inode
- Security

- Protection Mechanisms

MINIX 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 MINIX file system design issues.

Ch. 5
Appendix B

Assignments

There will be three group project assignments. Each group will share the same grade.

 

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: 35%

·         Class Attendance: 10%

·         Tests: 20%

·         Final Exam: 35%

(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.