Operating Systems (saylor.org)

Offered by Saylor.org,
Operating Systems  (saylor.org)

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.

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.

Upon successful completion of this course, the student 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.
  • Explain reference models, particularly TCP/IP and OSI.
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Embedded Systems Software and Development Environments (Coursera) Coursera
University of Colorado Boulder

Introduction to Embedded Systems Software and Development Environments (Coursera)

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine.

Nov 9th 2026
4 Weeks
Internet of Things: Setting Up Your DragonBoard™ Development Platform (Coursera) Coursera
University of California, San Diego

Internet of Things: Setting Up Your DragonBoard™ Development Platform (Coursera)

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In this course you will build a hardware and software development environment to guide your journey through the Internet of Things specialization courses. We will use the DragonBoard™ 410c single board computer (SBC).

Nov 16th 2026
5-12 Weeks
Bitcoin and Cryptocurrency Technologies (Coursera) Coursera
Princeton University

Bitcoin and Cryptocurrency Technologies (Coursera)

To really understand what is special about Bitcoin, we need to understand how it works at a technical level. We’ll address the important questions about Bitcoin, such as: How does Bitcoin work? What makes Bitcoin different? How secure are your Bitcoins? How anonymous are Bitcoin users? What determines the price of Bitcoins? Can cryptocurrencies be regulated? What might the future hold?

Nov 16th 2026
5-12 Weeks
Linux Fundamentals (Coursera) Coursera
LearnQuest

Linux Fundamentals (Coursera)

This course is the first of a series that aims to prepare you for a role working as an information technology professional. In this course, you will be introduced to the Linux operating system. You will learn about the licensing model and several Linux distributions. We will go through some services delivered in the Linux operating system. We will conclude this course by looking at how to search and analyze text using command line tools in the operating system.

Nov 9th 2026
4 Weeks
Securing Digital Democracy (Coursera) Coursera
University of Michigan

Securing Digital Democracy (Coursera)

In this course, you'll learn what every citizen should know about the security risks--and future potential — of electronic voting and Internet voting. We'll take a look at the past, present, and future of election technologies and explore the various spaces intersected by voting, including computer security, human factors, public policy, and more.

Nov 16th 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Nov 2nd 2026
4 Weeks
Internet of Things: Communication Technologies (Coursera) Coursera
University of California, San Diego

Internet of Things: Communication Technologies (Coursera)

Have you wondered how “Things” talk to each other and the cloud? Do you understand the alternatives for conveying latency-sensitive real time data versus reliable signaling data? Building on the skills from the Sensing and Actuation course, we will explore protocols to exchange information between processors.

Nov 2nd 2026
4 Weeks
Algorithmic Thinking (Part 2) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 2) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Nov 2nd 2026
4 Weeks