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-4About 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
Interactive Lessons
19+ Interactive Lessons | 6+ Exercises | 72+ Quizzes | 1346+ Flashcards | 1346+ Glossary of terms
Gamified TestPrep
40+ Pre Assessment Questions | 40+ Post Assessment Questions |
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
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
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
Threads & Concurrency
- Overview
- Multicore Programming
- Multithreading Models
- Thread Libraries
- Implicit Threading
- Threading Issues
- Operating-System Examples
- Summary
- Practice Exercises
- Exercises
- Further Reading
- Bibliography
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
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
Synchronization Examples
- Classic Problems of Synchronization
- Synchronization within the Kernel
- POSIX Synchronization
- Synchronization in Java
- Alternative Approaches
- Summary
- Practice Exercises
- Exercises
- Further Reading
- Bibliography
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
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
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
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
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
File-System Interface
- File Concept
- Access Methods
- Directory Structure
- Protection
- Memory-Mapped Files
- Summary
- Practice Exercises
- Exercises
- Further Reading
- Bibliography
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
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
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
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
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
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 NowYou 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.