CMPEN 441: Operating Systems

Textbook Information

  • Operating Systems: Internals and Design Principles (9th Edition) by William Stallings ISBN: 0134670957 

Published Remarks

  • None

Hardware Requirements

  • None

Software Requirements

  • AWS Cloud9 Educate

Proctored Exams

  • None

Course Description

In this day and age, almost everyone who used an electronic device came in contact with an operating system.  Operating systems like Windows, macOS, iOS, Linux, and Android are all around us, and sooner or later, you will have to interact with this essential piece of software. This course hopes to shed light on the inner workings of such software, provide their history and future outlook, and discuss some additional related topics.

In particular, C systems programming and UNIX operating systems will be covered. Students will work on assignments dealing with operating system functionalities by writing some programs that interact directly with UNIX operating systems and some that simply simulate them.

Prerequisite:  CMPSC360

Overview

This course will cover four overarching topics: Processes, Memory, Disk, and virtualization. Additional topics include UNIX Operating Systems, C Programming and advanced algorithms. This course requires students to have a solid programming background in C++ (CMPSC121 & CMPSC122), including topics like pointers, structs, and functions.

Course Outline: 

Module 0 – Orientation & Environment Setup Module 1 – Introduction to OS Module 2 – Introduction to Linux and Shell environment Module 3 – Processes Module 4 – Threads Module 5 – Inter-Process Communications (IPC) Module 6 – Process Scheduler Module 7 – Synchronization Module 8 – Deadlock Module 9 – Memory Management Module 10 – Virtual Memory Module 11 – I/O SubSystems Module 12 – File Systems Module 13 – Virtualization Module 14 – Cloud & IoT

Learning Goals

Upon completion of the course, students will understand:

  1. Key concepts related to operating systems
  2. A basic history of operating systems
  3. UNIX/Linux system programming
  4. The microprocessor and its role in modern computers
  5. Volatile memory and its role in modern computers
  6. Key algorithms used within Operating Systems
  7. Secondary storage and its role in modern computers
  8. Peripheral devices and how they interact with the rest of the computer
  9. Exploration of virtualization and cloud technologies.

Course Requirements and Grading

Grading Policy

Grading is based on midterm exams, quizzes, lab assignments, and course projects. The following weights are assigned to the different assessed components of the course:

Category Percentage
Reports and Discussions 10%
Quizzes and Homework 30%
Exam 1 20%
Exam 2 20%
Exam 3 20%

Grading Scheme

Assessments are based on 100 points with final letter grades being assigned as follows:

A A- B+ B B- C+ C D F
93-100 90-93 87-90 83-87 80-83 77-80 70-77 60-70 0-60