Operating System Concepts - Full Detailed Notes
Introduction to Operating System (OS)
What is an Operating System?
An Operating System (OS) is a system software that manages computer hardware and software resources
and provides services for computer programs. It acts as a bridge between the user and the computer
hardware.
Basic Roles:
• Controls hardware components like CPU, memory, disk drives, printers, etc.
• Provides a user interface (Command Line or GUI).
• Manages files and folders.
• Provides security and protection.
Examples of Operating Systems:
• Windows
• Linux (Ubuntu, Fedora, Arch)
• macOS
• Android
• iOS
• Unix
Operating System Structure
1. Layered Structure:
• The OS is designed in layers, each built on top of the lower one.
• Each layer performs specific functions and hides its implementation from the higher layers.
Layers (from bottom to top): 1. Hardware 2. CPU Scheduling and Memory Management 3. I/O
Management 4. File System 5. User Interface
Advantages: - Easy to debug and update - Modularity: easier to understand and maintain
Disadvantages: - Slower execution due to overhead of layer communication
Example: - THE Operating System
1
2. System Components:
1. Process Management: Handles creation, scheduling, and termination of processes.
2. Main Memory Management: Tracks memory usage, allocates/deallocates memory.
3. Secondary Storage Management: Manages disk storage.
4. File Management: Organizes, stores, retrieves, and manages data files.
5. I/O System Management: Buffers and manages I/O operations.
6. Protection and Security: Controls access to resources and defends against malicious software.
7. Networking: Manages communication between computers.
Operating System Functions
1. Process Management
2. Handles multitasking and multiprocessing
3. Context switching
4. Deadlock prevention
5. Memory Management
6. Allocation strategies (First-fit, Best-fit, etc.)
7. Virtual memory using paging/segmentation
8. Storage Management
9. File systems (FAT, NTFS, ext3, ext4)
10. Disk scheduling algorithms (FCFS, SSTF, LOOK, etc.)
11. Device Management
12. I/O scheduling
13. Device drivers
14. Security and Protection
15. Authentication and authorization
16. Encryption
17. User Interface
18. CLI (e.g., Bash Shell)
19. GUI (e.g., Windows Desktop)
2
Classification of Operating Systems
1. Batch Operating System
• No interaction between user and process
• Jobs are processed in batches
• Input jobs using punch cards or other offline media
Example: IBM 1401, early mainframe computers
Advantages: - Good for large jobs
Disadvantages: - No real-time interaction - Hard to debug
2. Interactive Operating System
• Users interact directly with the system
• Quick response time
Examples: Windows, Linux, macOS
3. Time-Sharing Operating System
• Multiple users use the system simultaneously
• CPU time is divided among users (time slices)
Example: UNIX
Advantages: - Better response time - Resource sharing
Disadvantages: - Overhead of switching
4. Real-Time Operating System (RTOS)
• Responds to inputs immediately
• Used in systems with strict time constraints
Types: - Hard RTOS: Must meet deadlines (e.g., pacemaker) - Soft RTOS: Can tolerate some delay (e.g., live
streaming)
Examples: QNX, VxWorks, RTLinux
5. Multiprocessor Systems
• More than one CPU working together
• Types: Symmetric (SMP) and Asymmetric (ASMP)
Advantages: - Increased throughput - High reliability
3
Examples: High-end servers, mainframes
6. Multiuser Systems
• More than one user can use the system at the same time
Examples: UNIX servers, mainframes
7. Multiprogramming Systems
• Several programs are kept in memory at the same time
• CPU switches from one to another to increase utilization
Advantages: - Efficient CPU usage - Increased throughput
8. Multithreaded Systems
• Programs are divided into multiple threads that can run concurrently
Advantages: - Faster execution - Better resource sharing
Examples: Modern web browsers, servers
Operating System Services
1. Program Execution
2. I/O Operations
3. File System Manipulation
4. Communication (Interprocess Communication)
5. Error Detection
6. Resource Allocation
7. Protection and Security
Reentrant Kernels
Definition: A reentrant kernel allows multiple processes to execute the same kernel code simultaneously.
Key Points: - No data is modified during execution - Kernel can be shared among processes safely
Benefits: - Efficient memory usage - Enables multitasking
Examples: Linux, Windows NT
4
Kernel Types
1. Monolithic Kernel
• All OS services run in kernel space
Advantages: - Faster due to fewer context switches
Disadvantages: - Large and difficult to maintain - One bug can crash the whole system
Examples: Linux, UNIX
2. Microkernel
• Only essential services run in kernel mode (IPC, basic scheduling)
• Rest runs in user mode
Advantages: - More secure and stable - Easier to extend
Disadvantages: - Slightly slower due to user-kernel communication
Examples: Minix, QNX
Summary Chart
OS Type Interaction Speed Use Case Example
Batch No Slow Data processing IBM 1401
Interactive Yes Medium General use Windows
Time-Sharing Yes Fast Multi-user tasks UNIX
Real-Time Minimal Very Fast Embedded systems QNX
Multiuser Yes Medium Servers UNIX
Multiprocessor Yes Fast HPC servers Linux
Multithreaded Yes Fast Apps, browsers Windows, Chrome
Let me know if you'd like this content in PDF format or with diagrams!