Operating System Concepts

Discover how operating systems power our digital world to take innovative initiatives, optimize processes, and lead the computer architecture & algorithms-related discussion.

(OP-SYS-CPTS.AE1) / ISBN : 978-1-64459-256-4
This course includes
Interactive Lessons
Gamified TestPrep
Lab
AI Tutor (Add-on)
193 Reviews
Get A Free Trial

About This Course

Our operating system course opens with an introduction to what OS do and how they are organized and structured. It explains the computer-system architecture, details the applications of various operations, and teaches about security and protection. It progresses towards advanced concepts such as virtualization, distributed systems, deadlocks, virtual memory, and kernel data structures. Each module of our operating system course is carefully crafted to include test preps, hands-on labs, and other interactive items to reinforce your concepts for the interview.

Skills You’ll Get

  • Develop skills in resource management techniques
  • Implement robust security and protection measures
  • Proficiency in virtualization and distributed systems integration
  • Expertise in process management, including scheduling and interprocess communication
  • Manage multithreading and synchronization issues effectively
  • Apply CPU scheduling algorithms and memory management techniques 
  • Administer storage management, including mass-storage structures and RAID configurations
  • Execute file system management tasks, including file-system interfaces, implementation, and protection methods
  • Troubleshoot and debug operating systems to ensure optimal performance 
  • Design and implement system calls and understand their implications 

1

Introduction

  • What Operating Systems Do
  • Computer-System Organization
  • Computer-System Architecture
  • Operating-System Operations
  • Resource Management
  • Security and Protection
  • Virtualization
  • Distributed Systems
  • Kernel Data Structures
  • Computing Environments
  • Free and Open-Source Operating Systems
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
2

Operating-System Structures

  • Operating-System Services
  • User and Operating-System Interface
  • System Calls
  • System Services
  • Linkers and Loaders
  • Why Applications Are Operating-System Specific
  • Operating-System Design and Implementation
  • Operating-System Structure
  • Building and Booting an Operating System
  • Operating-System Debugging
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
3

Processes

  • Process Concept
  • Process Scheduling
  • Operations on Processes
  • Interprocess Communication
  • IPC in Shared-Memory Systems
  • IPC in Message-Passing Systems
  • Examples of IPC Systems
  • Communication in Client–Server Systems
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
4

Threads & Concurrency

  • Overview
  • Multicore Programming
  • Multithreading Models
  • Thread Libraries
  • Implicit Threading
  • Threading Issues
  • Operating-System Examples
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
5

CPU Scheduling

  • Basic Concepts
  • Scheduling Criteria
  • Scheduling Algorithms
  • Thread Scheduling
  • Multi-Processor Scheduling
  • Real-Time CPU Scheduling
  • Operating-System Examples
  • Algorithm Evaluation
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
6

Synchronization Tools

  • Background
  • The Critical-Section Problem
  • Peterson's Solution
  • Hardware Support for Synchronization
  • Mutex Locks
  • Semaphores
  • Monitors
  • Liveness
  • Evaluation
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
7

Synchronization Examples

  • Classic Problems of Synchronization
  • Synchronization within the Kernel
  • POSIX Synchronization
  • Synchronization in Java
  • Alternative Approaches
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
8

Deadlocks

  • System Model
  • Deadlock in Multithreaded Applications
  • Deadlock Characterization
  • Methods for Handling Deadlocks
  • Deadlock Prevention
  • Deadlock Avoidance
  • Deadlock Detection
  • Recovery from Deadlock
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
9

Main Memory

  • Background
  • Contiguous Memory Allocation
  • Paging
  • Structure of the Page Table
  • Swapping
  • Example: Intel 32- and 64-bit Architectures
  • Example: ARMv8 Architecture
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
10

Virtual Memory

  • Background
  • Demand Paging
  • Copy-on-Write
  • Page Replacement
  • Allocation of Frames
  • Thrashing
  • Memory Compression
  • Allocating Kernel Memory
  • Other Considerations
  • Operating-System Examples
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
11

Mass-Storage Structure

  • Overview of Mass-Storage Structure
  • HDD Scheduling
  • NVM Scheduling
  • Error Detection and Correction
  • Storage Device Management
  • Swap-Space Management
  • Storage Attachment
  • RAID Structure
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
12

I/O Systems

  • Overview
  • I/O Hardware
  • Application I/O Interface
  • Kernel I/O Subsystem
  • Transforming I/O Requests to Hardware Operations
  • STREAMS
  • Performance
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
13

File-System Interface

  • File Concept
  • Access Methods
  • Directory Structure
  • Protection
  • Memory-Mapped Files
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
14

File-System Implementation

  • File-System Structure
  • File-System Operations
  • Directory Implementation
  • Allocation Methods
  • Free-Space Management
  • Efficiency and Performance
  • Recovery
  • Example: The WAFL File System
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
15

File-System Internals

  • File Systems
  • File-System Mounting
  • Partitions and Mounting
  • File Sharing
  • Virtual File Systems
  • Remote File Systems
  • Consistency Semantics
  • NFS
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
16

Security

  • The Security Problem
  • Program Threats
  • System and Network Threats
  • Cryptography as a Security Tool
  • User Authentication
  • Implementing Security Defenses
  • An Example: Windows 10
  • Summary
  • Exercises
  • Further Reading
  • Bibliography
17

Protection

  • Goals of Protection
  • Principles of Protection
  • Protection Rings
  • Domain of Protection
  • Access Matrix
  • Implementation of the Access Matrix
  • Revocation of Access Rights
  • Role-Based Access Control
  • Mandatory Access Control (MAC)
  • Capability-Based Systems
  • Other Protection Improvement Methods
  • Language-Based Protection
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography
18

Virtual Machines

  • Overview
  • History
  • Benefits and Features
  • Building Blocks
  • Types of VMs and Their Implementations
  • Virtualization and Operating-System Components
  • Examples
  • Virtualization Research
  • Summary
  • Exercises
  • Further Reading
  • Bibliography
19

Networks and Distributed Systems

  • Advantages of Distributed Systems
  • Network Structure
  • Communication Structure
  • Network and Distributed Operating Systems
  • Design Issues in Distributed Systems
  • Distributed File Systems
  • DFS Naming and Transparency
  • Remote File Access
  • Final Thoughts on Distributed File Systems
  • Summary
  • Practice Exercises
  • Exercises
  • Further Reading
  • Bibliography

Introduction

  • Understanding the Storage-Device Hierarchy
  • Understanding the Transition from User to Kernel Mode
  • Understanding Types of Linked Lists

Operating-System Structures

  • Understanding the System Calls
  • Understanding the Procedure of Executing a Program
  • Understanding the Structure of Darwin

Processes

  • Learning the Process State Diagram

Threads & Concurrency

  • Understanding the Multithreading Models

CPU Scheduling

  • Understanding Dispatch Latency

Deadlocks

  • Understanding the Safety Algorithm

Virtual Memory

  • Understanding Steps in Handling a Page Fault
  • Understanding Page Replacement Algorithms

Mass-Storage Structure

  • Understanding the Types of Disk Scheduling Algorithms

File-System Implementation

  • Understanding the Allocation Methods

Any questions?
Check out the FAQs

Still have unanswered questions and need to get in touch?

Contact Us Now

You must sign up to our uCertify platform to access the library and course dashboard, including lesson plans, hands-on labs, test preps, videos, flashcards, glossary, and more. 

The operating system concepts course primarily uses programming languages such as C and C++ for system-level programming and examples. Also, it includes exercises and labs in Java and Python to illustrate various concepts of operating systems in practice. 

To take this course, you should have a foundational knowledge of computer science principles, proficiency in at least one programming language (C or C++), and familiarity with computer architecture. 

Yes, the course includes practical assignments and projects designed to reinforce the theoretical concepts covered. These practical activities typically involve: 

  • Hands-on lab activities
  • Programming projects
  • Simulations
  • Debugging exercises 

Yes, the course includes assessments and exams to evaluate your understanding of the material. It consists of quizzes, test preps, and mid-lesson exercises.

Related Courses

All Course
scroll to top