Operating Systems: Virtualization, Concurrency & Persistence

Operating Systems: Virtualization, Concurrency & Persistence

Intermediate

477 Lessons

40h

Certificate of Completion

AI-POWERED

Explanations
Adaptive Learning

AI-POWERED

Explanations
Adaptive Learning

This course includes

116 Playgrounds
39 Quizzes

This course includes

116 Playgrounds
39 Quizzes

Course Overview

When it comes to operating systems, there are three main concepts: virtualization, concurrency, and persistence. These concepts lay the foundation for understanding how an operating system works. In this extensive course, you'll cover each of those in its entirety. You'll start by covering the basics of CPU virtualization and memory such as: CPU scheduling, process virtualization, and API virtualization. You will then move on to concurrency concepts where you’ll focus heavily on locks, semaphores, and how ...Show More

TAKEAWAY SKILLS

C

Operating Systems

Virtualization

Concurrency

Course Content

1.

Introduction

This chapter lays the foundation for understanding operating systems by introducing core concepts such as virtualization, concurrency, and persistence.
2.

Virtualization: Processes

This chapter explores process virtualization in operating systems, including process creation, states, the API, and the data structures used to manage them.
3.

Virtualization: Process API

This chapter dives into the UNIX system Process API and examines crucial system calls like fork(), wait(), and exec(), and their roles in process management.
4.

Virtualization: Direct Execution

In this chapter, you will learn about direct execution in operating systems and explore its basic techniques, limitations, and concurrency concerns.
5.

Virtualization: CPU Scheduling

This chapter explores CPU scheduling in operating systems, covering algorithms like FIFO, SJF, STCF, and Round Robin, and their effects on responsiveness.
6.

Virtualization: Multi-Level Feedback

10 Lessons

This chapter covers the Multi-Level Feedback Queue (MLFQ) algorithm, how it manages processes, handles starvation, and potential tuning opportunities.
7.

Virtualization: Lottery Scheduling

13 Lessons

This chapter teaches you about lottery scheduling, its ticketing mechanisms, implementation details, and how it compares to stride scheduling and Linux CFS.
8.

Virtualization: Multi-CPU Scheduling

12 Lessons

This chapter explores multi-CPU scheduling, architectures, synchronization, and cache affinity and compares single-queue vs. multi-queue scheduling approaches.
9.

Virtualization: Address Space

8 Lessons

This chapter covers the concept of address space in operating systems, its historical context, and the goals of memory virtualization in modern systems.
10.

Virtualization: Memory API

10 Lessons

Learn about the Memory API and how it interacts with the operating system. This chapter covers common errors and other essential calls for memory management.
11.

Virtualization: Address Translation

10 Lessons

Discover how address translation works with a practical example, and learn about dynamic relocation and the crucial role of hardware support in this process.
12.

Virtualization: Segmentation

11 Lessons

This chapter covers segmentation as a memory management technique, covering base/bounds logic, hardware support, code sharing, and operating system challenges.
13.

Virtualization: Free Space Management

9 Lessons

Discover the role of free space management in virtualization. This chapter explores key assumptions, memory allocation methods, and management strategies.
14.

Virtualization: Introduction to Paging

10 Lessons

This chapter introduces paging, a fundamental memory management scheme, and explores its mechanics, page table structure, and performance considerations.
15.

Virtualization: Translation Lookaside Buffers

11 Lessons

In this chapter, you will learn about Translation Lookaside Buffers (TLBs) and explore their operation, contents, and challenges, such as context switches.
16.

Virtualization: Advanced Page Tables

10 Lessons

This chapter dives into advanced page table techniques such as larger pages, hybrid approaches, multi-level structures, inverted page tables, and disk swapping.
17.

Virtualization: Swapping: Mechanisms

11 Lessons

This chapter teaches you about swapping mechanisms, space utilization, page faults, memory pressure handling, and the page fault control flow.
21.

Concurrency: Thread API

10 Lessons

This chapter explores the Thread API, covering thread creation and completion, along with key synchronization mechanisms like locks and condition variables.
23.

Concurrency: Locked Data Structures

8 Lessons

Learn to design and implement thread-safe data structures, including concurrent counters, linked lists, queues, and hash tables, using locking mechanisms.
24.

Concurrency: Conditional Variables

10 Lessons

This chapter explores conditional variables for thread synchronization, covering their routines, classic producer/consumer problems, and common use cases.
26.

Concurrency: Concurrency Bugs

11 Lessons

This chapter focuses on concurrency bugs, including deadlocks and non-deadlock issues, highlighting prevention, detection, and effective programming strategies.
29.

Persistence: Hard Disk Drives

13 Lessons

In this chapter, you will learn how hard disk drives work, the underlying architecture, interface, performance factors, and disk scheduling algorithms.
30.

Persistence: Redundant Disk Arrays (RAID)

14 Lessons

This chapter dives into RAID technology, covering different RAID levels, their fault tolerance mechanisms, performance trade-offs, and parity techniques.
32.

Persistence: File System Implementation

12 Lessons

This chapter explores file system implementation, organization, key data structures (inodes, directories), free space management, and data access.
33.

Persistence: Fast File System

11 Lessons

The chapter details the development and innovations of the Fast File System (FFS) in optimizing disk performance and file management within operating systems.
34.

Persistence: FSCK and Journaling

10 Lessons

Learn how operating systems maintain file system integrity. You will also explore the File System Checker and the benefits of journaling for data protection.
38.

Distribution: Distributed Systems

10 Lessons

This chapter introduces distributed systems, covering communication basics, building reliable communication, and high-level abstractions like RPC.
40.

Distribution: Andrew File System (AFS)

13 Lessons

This chapter explores the Andrew File System (AFS) and its evolution from Version 1 to 2, addressing challenges like cache consistency and crash recovery.

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Souvik Kundu

Front-end Developer

Eric Downs

Musician/Entrepeneur

Anthony Walker

@_webarchitect_

Evan Dunbar

ML Engineer

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath