Session 1.2: Operating System Types
Understanding different types of operating systems and their characteristics
Learning Objectives
By the end of this session, you will be able to:
- Classify different types of operating systems
- Explain batch, multiprogrammed, and time-sharing systems
- Understand distributed operating systems
- Analyze virtualization concepts and types
- Describe real-time embedded systems
Key Concept
Operating systems have evolved into various types, each optimized for specific computing environments and requirements, from simple batch processing to complex distributed and real-time systems.
Batch Operating Systems
Characteristics:
- Jobs processed in bulk with predetermined input
- No direct user interaction during execution
- Optimized for resource utilization when computing was scarce
- Multiple users shared time on expensive systems
- Jobs submitted via punch cards or magnetic tapes
Advantages:
- High throughput for large volumes of similar jobs
- Efficient resource utilization
- Minimal overhead from user interaction
Historical Context
Developed in the latter half of the 20th century when computing resources were extremely expensive and scarce.
Multiprogrammed Operating Systems
Core Principle
"CPU is never idle" - When one process waits for I/O, the OS switches to another process
Key Features:
- Multiple processes in memory simultaneously
- CPU switches between processes when one waits
- Increases CPU utilization and user satisfaction
- Requires robust memory management
- Needs effective CPU scheduling
Process Management:
A program in execution is called a process. The OS manages multiple processes by:
- Keeping several processes in memory
- Switching CPU between processes
- Ensuring CPU is never idle
- Managing memory allocation
Requirements
Requires sophisticated memory management (Chapters 9-10) and CPU scheduling (Chapter 5) to effectively manage multiple concurrent processes.
Time-Sharing Operating Systems
Evolution from Multiprogramming:
- Extension of multiprogramming with interactive capabilities
- Uses timer and scheduling algorithms for rapid process cycling
- Provides fast response time to users
- Creates illusion of simultaneous execution
- Foundation for modern desktop and mobile systems
Key Technologies:
- Virtual Memory: Programs larger than physical memory can execute
- CPU Scheduling: Rapid switching between processes
- Timer Interrupts: Ensure fair time allocation
- Interactive I/O: Real-time user interaction
Modern Usage
While traditional time-sharing systems are rare, the underlying scheduling techniques remain in use on:
- Desktop computers
- Laptops
- Servers
- Mobile devices
Distributed Operating Systems
Definition
A collection of physically separate, possibly heterogeneous computer systems networked to provide users access to various resources, creating the illusion of a single operating system controlling the network.
Data Migration
Transferring data to the accessing site for processing
Computation Migration
Moving code or processes to the data's location
Process Migration
Moving entire processes from one machine to another
Distributed File Systems (DFS):
Client-Server Model
Examples: NFS, OpenAFS
Centralized server manages file access
Cluster-Based Model
Examples: Lustre, GPFS
Distributed storage across multiple nodes
Real-Time Embedded Systems
Characteristics:
- Specialized computer systems with specific tasks
- Often with little or no user interface
- Designed to run without user intervention
- Found in home devices, automobiles, appliances
- May use standard OS (Linux) or specialized RTOS
Implementation Options:
- Standard OS: Linux with specialized applications
- RTOS: Special-purpose embedded operating systems
- ASIC: Application-specific integrated circuits
- Bare Metal: Single program execution (Arduino)
Time Constraints
Rigid time requirements placed on processor operation or data flow for control applications.
Real-Time Operating Systems (RTOS) Categories:
Soft Real-Time
- No guarantee on scheduling deadlines
- Preference given to critical processes
- Acceptable for multimedia applications
- Some deadline misses tolerable
Hard Real-Time
- Strict deadline requirements
- Service after deadline is useless
- Used in safety-critical systems
- Bounded interrupt and dispatch latencies
Session Summary
Key Takeaways:
- Operating systems evolved to meet different computing needs and environments
- Batch systems optimized for throughput in resource-constrained environments
- Multiprogramming introduced concurrent process execution for better CPU utilization
- Time-sharing systems enabled interactive computing with fast response times
- Distributed systems provide transparent access to networked resources
- Real-time systems meet strict timing requirements for control applications
Comparison Summary:
| OS Type | Primary Goal | User Interaction | Use Cases |
|---|---|---|---|
| Batch | Throughput | None during execution | Large-scale data processing |
| Multiprogrammed | CPU utilization | Limited | Server systems |
| Time-Sharing | Response time | Interactive | Desktop, mobile systems |
| Distributed | Resource sharing | Network-based | Cloud computing, clusters |
| Real-Time | Meeting deadlines | Minimal/None | Control systems, IoT |
Next Session
Session 1.3: System Calls & Virtualization
System calls overview, Types, Virtualization concepts, Open source OS
Study Tips:
- Create a comparison chart of different OS types with their characteristics
- Identify examples of each OS type in current technology
- Understand the evolution and reasons behind each OS type development
- Practice explaining the trade-offs between different approaches