Course Syllabus

Welcome to CS401: Operating Systems

Specific information about this course and its requirements can be found below. For more general information about taking Saylor Academy courses, including information about Community and Academic Codes of Conduct, please read the Saylor Student Handbook.

 

Course Description

This course is an examination of the evolution of operating systems and design, focusing on hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction; algorithms for CPU scheduling, memory and general resource allocation; process coordination and management.

 

Course Introduction

This course will introduce you to modern operating systems. We will focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. The course will begin with an overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and explore more advanced topics in the field, including memory management and file input/output. The class will conclude with a discussion of various system-related security issues.

This course is comprised of the following units:

  • Unit 1: Introduction to Operating Systems
  • Unit 2: Processes and Threads
  • Unit 3: Synchronization
  • Unit 4: CPU Scheduling
  • Unit 5: Deadlock
  • Unit 6: Memory Management
  • Unit 7: File System
  • Unit 8: Security
  • Unit 9: Networking

 

Course Learning Outcomes

Upon successful completion of this course, you will be able to:

  • explain what an operating system does and how it is used;
  • identify the various components of a computer system and how they interact with an operating system;
  • describe the differences between a 32-bit and 64-bit operating system;
  • explain the different types of operating systems and the major ones in use today;
  • discuss the importance and use of threads and processes in an operating system;
  • describe concurrency;
  • explain the difference between a thread and a process;
  • discuss context switching and how it is used in an operating system;
  • describe synchronization;
  • explain a race condition;
  • discuss interprocess communication;
  • describe how semaphores can be used in an operating system;
  • discuss three of the classic synchronization problems;
  • explain the alternatives to semaphores;
  • discuss CPU scheduling and its relevance to operating systems;
  • explain the general goals of CPU scheduling;
  • describe the differences between pre-emptive and non-preemptive scheduling;
  • discuss four CPU scheduling algorithms;
  • explain what deadlock is in relation to operating systems;
  • discuss deadlock prevention, avoidance, and their differences;
  • describe deadlock detection and recovery;
  • explain the memory hierarchy;
  • discuss how the operating system interacts with memory;
  • describe how virtual memory works;
  • discuss three algorithms for dynamic memory allocation;
  • explain methods of memory access;
  • describe paging and page replacement algorithms;
  • describe a file system and its purpose;
  • discuss various file allocation methods;
  • explain disk allocation and associated algorithms;
  • discuss types of security threats;
  • describe the various types of malware;
  • explain basic security techniques;
  • explain basic networking principles;
  • discuss protocols and how they are used; and
  • explain reference models, particularly TCP/IP and OSI.

Throughout this course, you'll also see related learning outcomes identified in each unit. You can use the learning outcomes to help organize your learning and gauge your progress.

 

Course Materials

The primary learning materials for this course are readings, lectures, video tutorials, and other resources.

All course materials are free to access, and can be found through the links provided in each unit and subunit of the course. Pay close attention to the notes that accompany these course materials, as they will instruct you as to what specifically to read or watch at a given point in the course, and help you to understand how these individual materials fit into the course as a whole. You can also access a list all of the materials used in this course by clicking on Resources in the course's "Activities" menu.

 

Evaluation and Minimum Passing Score

Only the final exam is considered when awarding you a grade for this course. In order to pass this course, you will need to earn a 70% or higher on the final exam. Your score on the exam will be tabulated as soon as you complete it. If you do not pass the exam on your first attempt, you may take it again as many times as needed, following a 7-day waiting period between each attempt. Once you have successfully passed the final exam you will be awarded a free Saylor Certificate of Completion.

There is also 1 unit assessment and other types of quizzes in this course. These are intended to help you to gauge how well you are learning and do not factor into your final course grade. You may retake all of these as many times as needed to feel that you have an understanding of the concepts and material covered. You can locate a full list of these sorts of assessments by clicking on Quizzes in the course's "Activities" menu.

 

Earning College Credit

This course provides students the opportunity to earn actual college credit. It has been reviewed by Brandman University and can applied as credit towards a degree by students who are currently enrolled or plan to enroll at Brandman. You can read more about this special program here.

If you are seeking to earn college credit at Brandman, you must take and pass the version of the exam titled "Proctored Final Exam." That exam will be password protected.

Note: There is a 14-day waiting period between attempts of the Direct Credit final exam. There is no imposed wait period between attempting the non-credit certificate-bearing exam and the credit exam. Some credit exams have a maximum number of attempts allowed, which will be detailed on the exam's instructions page.

 

Tips for Success

CS401: Operating Systems is a self-paced course in which you the learner determines when you will start and when you will complete the course. There is no instructor or predetermined schedule to follow. While learning styles can vary considerably and any particular student will take more or less time to learn or read, we estimate that the "average" student will take 120 hours to complete this course. We recommend that you work through the course at a pace that is comfortable for you and allows you to make regular (daily, or at least weekly) progress. It's a good idea to also schedule your study time in advance and try as best as you can to stick to that schedule.

Learning new material can be challenging, so below we've compiled a few suggested study strategies to help you succeed:

  • Take notes on the various terms, practices, and theories as you read. This can help you differentiate and contextualize concepts and later provide you with a refresher as you study.
  • As you progress through the materials, take time to test yourself on what you have retained and how well you understand the concepts. The process of reflection is important for creating a memory of the materials you learn; it will increase the probability that you ultimately retain the information.
  • Although you may work through this course completely independently, you may find it helpful to connect with other Saylor Academy students through the discussion forums. You may access the discussion forums at https://discourse.saylor.org.


Suggested Prerequisites

In order to take this course, you should:

  • have completed the following courses, paying close attention to CS301:
    • CS101: Introduction to Computer Science I,
    • CS102: Introduction to Computer Science II,
    • CS107: C++ Programming,
    • CS201: Elementary Data Structures,
    • CS202: Discrete Structures,
    • CS301: Computer Architecture,
    • CS302: Software Engineering, and
    • CS303: Algorithms.
 

Technical Requirements

This course is delivered fully online. You will be required to have access to a computer or web-capable mobile device and have consistent access to the internet to either view or download the necessary course resources and to attempt any auto-graded course assessments and the final exam.

  • To access the full course including assessments and the final exam, you will need to be logged into your Saylor Academy account and enrolled in the course. If you do not already have an account, you may create one, free of charge, here. Although you can access some course resources without being logged into your account, it's advised that you log in to maximize your course experience. For example, some of the accessibility and progress tracking features are only available when you are logged in.
  • If you plan to attempt the optional credit recommended final exam that accompanies this course, then you will also need access to a webcam enabled computer. A webcam is needed so that our remote proctoring service can verify your identity, which will allow Saylor Academy to issue an official transcript to schools on your behalf.

For additional technical guidance check out Saylor Academy's tech-FAQ and the Moodle LMS tutorial.

 

Fees

There is no cost to access and enroll in this course. All required course resources linked throughout the course, including textbooks, videos, webpages, activities, etc are accessible for no charge. This course also contains a free final exam and course completion certificate.

This course does contain an optional final exam that will provide students an opportunity to earn college credit. Access to the exam itself is free, though it does require the use of a proctoring service for identity verification purposes. The cost for proctoring is $25 per session.



Last modified: Wednesday, August 8, 2018, 5:09 PM