CS 431 - Operating Systems Analysis/Design: Syllabus

Instructor Information

Refer to Discussion Forum, Facilitator Introduction and Expectations

Course Title

CS 431 - Operating Systems Analysis/Design

Course Description

CS 431 – OPERATING SYSTEMS ANALYSIS/DESIGN (3). Studies basic facilities provided in modern operating systems including processor scheduling, memory management, and file systems. Topics include: deadlock detection, paging, concurrency, thread, disk scheduling, caching, and virtual machines.

Prerequisite Courses

CS310 – Data Structures

or

CS362 – Data Structures

or

CS435 – Data Structures (traditional Regis College students only)

Course Overview

An operating system (OS) is a set of programs on a computer that provide services to the user and to user processes, and acts as the interface between the hardware and the user. CS431 examines how operating systems work in general, rather than concentrating on a specific operating system or coding an operating system. Consequently, the course focuses on tradeoffs encountered in designing an operating system, and how those tradeoffs impact various types of applications running under the operating system.

The course will start with a brief historical perspective of the evolution of operating systems, and then cover the major components of most operating systems. Particular emphasis will be given to OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems, and operating system support for virtualization and distributed systems.

Course Outcomes

Upon completion of this course, learners should be able to:

  1. Identify and list the goals and major elements of an operating system.
  2. Explain the implications of concurrent processing on an operating system.
  3. Define and explain the difference between buffering and spooling.
  4. Define multi-programming and explain how it is accomplished.
  5. Evaluate the need for protection and describe where and how it can be accomplished.
  6. Describe the implications of CPU scheduling and evaluate the performance of alternative algorithms for scheduling different types of applications.
  7. Define deadlock; list methods to identify system deadlock; and identify and distinguish between the pros and cons of deadlock prevention, avoidance, and detection.
  8. Identify the purposes behind, and distinguish between methods of, memory management.
  9. Explain virtual memory and its relationship to paging.
  10. Describe methods of secondary file management and the effects on the performance of the operating system.
  11. Explain the interaction between the operating system and the structure used for file systems.
  12. List the implications of distributed hardware on the operating system.
  13. Evaluate the tradeoffs in placing the burden of supporting system functions in hardware, the operating system, the application software, and on the user.
  14. Describe the basics of an operating system and determine the environment in which this operating system would best perform.

Course Materials

Required Texts

Silberschatz, A., Galvin, P., & Gagne, G. (2013). Operating System Concepts. (9th edition). New York, NY: Wiley & Sons. ISBN: 978-1-118-06333-0

Technology Tools

  1. A PC-compatible computer system running Windows with putty or ssh applications loaded (for remote access to the Regis Unix server).
  2. Microsoft Office or similar suite
  3. Microsoft PowerPoint® (part of Microsoft Office) or the free PowerPoint Viewer

technical specifications

Pre-Assignment

Read the following chapters in your text: Chapters 1 and 2

Be prepared to ask questions on unclear areas and to respond to questions about information in the assigned reading.

Online Format: Sign on to worldclass.regis.edu and become familiar with the course navigation of the Web Curriculum. Complete assignments above.

Classroom-based Format: Complete assignments above by the first night of class.

Course Assignments and Activities

Assignments for Online Course
Week Topic Readings Graded Assignments or Assessments (Percentage)
1
  • Operating Systems Overview
  • Operating System Components & Services
Ch. 1 & 2

Chapter Exercises 30% for entire course

Participation in Discussions 10% for entire course

2
  • Process Concepts
  • Threads
  • Job and Processor Scheduling
Ch. 3, 4, & 6

Chapter Exercises

Discussions

Programming Assignment #1 (7.5%) 

3
  • Concurrent Process Synchronization
  • Process Deadlocks
Ch. 5 & 7

Chapter Exercises

Discussions 

Quiz #1 (10%)

4
  • Memory Organization and Management
  • Virtual Memory Management
Ch. 8 & 9

Chapter Exercises

Discussions

Programming Assignment #2 (7.5%)

5
  • File System Interface
  • File System Implementation
Ch. 11 & 12

Chapter Exercises

Discussions 3.125%

Quiz #2 (10%)

6
  • I/O Subsystems
  • Secondary Storage Organization & Management
Ch. 10 & 13

Chapter Exercises

Discussions

Programming Assignment #3 (7.5%)

7
  • Protection Concepts
  • Operating System Security
Ch. 14 & 15

Chapter Exercises

Discussions

8
  • Virtual Machines
  • Distributed Systems
Ch. 16 & 17

Chapter Exercises

Quiz #3 (10%)

Programming Assignment #4 (7.5%)

TOTAL:

Summary of Assignments and Percentage Weight:

Assignments Weighted Percentage
Weekly Discussion Threads 10%
Programming Assignments (4) 30%
Quizzes (3) 30%
Weekly Assignments 30%
TOTAL 100 %

CCIS Policies

Review the CCIS Policies on the Regis University website.

OTHER INFORMATION

NOTE TO LEARNERS: On occasion, the course facilitator may, at his or her discretion, alter the Learning Activities shown in this Syllabus. The alteration of Learning Activities may not, in any way, change the Learner Outcomes or the grading scale for this course as contained in this syllabus. Examples of circumstances that could justify alterations in Learning Activities could include number of learners in the course; compelling current events; special facilitator experience or expertise; or unanticipated disruptions to class session schedule.