Operating System Concepts

(OP-SYS-CPTS.AE1)/ISBN:978-1-64459-256-4

This course includes
Lessons
TestPrep
Lab
AI Tutor (Add-on)

Use the Operating System Concepts course and lab to understand the operating system software. The course and lab cover several topics such as data structures used in operating systems, computing environments, open-source and free operating systems, file system implementation, and many more. The course comes with labs that provide a virtual environment for users to explore and learn. The Operating system course describes the general organization of a computer system and the role of interrupts.

Lessons

19+ Lessons | 6+ Exercises | 72+ Quizzes | 1346+ Flashcards | 1346+ Glossary of terms

TestPrep

40+ Pre Assessment Questions | 40+ Post Assessment Questions |

Here's what you will learn

Download Course Outline

Lessons 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

Lessons 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

Lessons 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

Lessons 4: Threads & Concurrency

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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 13: File-System Interface

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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Lessons 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

Hands-on LAB Activities (Performance Labs)

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