### Introduction to Operating Systems
1. **Definition**:
An Operating System (OS) is software that manages hardware and software resources in a
computer.
It acts as an intermediary between users and hardware.
2. **Functions of Operating Systems**:
- **Process Management**: Scheduling, creating, and terminating processes.
- **Memory Management**: Allocating and deallocating memory space.
- **File Management**: Organizing, storing, and retrieving files.
- **Device Management**: Controlling I/O devices.
- **Security and Protection**: Ensuring data safety and access control.
- **User Interface**: Providing interfaces like CLI (Command-Line Interface) or GUI (Graphical
User Interface).
3. **Types of Operating Systems**:
- **Batch Processing OS**: Executes batches of tasks without user interaction.
- **Multi-Programmed OS**: Runs multiple programs by sharing CPU time.
- **Time-Sharing OS**: Allows multiple users to access the system interactively.
- **Real-Time OS**: Processes tasks immediately, critical for time-sensitive applications.
- **Distributed OS**: Manages multiple systems working together as a network.
- **Parallel OS**: Utilizes multiple processors for simultaneous computation.
---
### System Structure
1. **Computer System Operation**:
The OS ensures efficient operation by managing interactions between hardware and software
components.
It controls processes, memory, and device interactions.
2. **I/O Structure**:
Manages input and output operations. Includes device controllers and drivers for communication
between devices and the system.
3. **Storage Structure**:
- Main memory (RAM): Volatile storage for current tasks.
- Secondary storage (HDD/SSD): Non-volatile for long-term data storage.
4. **Storage Hierarchy**:
Faster and more expensive storage at the top:
- Registers > Cache > Main Memory > Secondary Storage > Tertiary Storage.
5. **Types of Protections**:
Mechanisms to protect system resources:
- Memory protection, file access control, and authentication methods.
6. **Operating System Structures**:
- **Simple Structure**: Minimal and direct (e.g., MS-DOS).
- **Layered Structure**: Organized into layers, each handling specific functionalities.
- **Virtual Machine**: Creates multiple isolated environments on the same hardware.
7. **OS Services**:
Key services provided by an OS include:
- Program execution, I/O operations, file management, error detection, and resource allocation.
8. **System Calls**:
Interface provided by the OS for user-level processes to request services.
Examples:
- File operations (open, read, write).
- Process control (create, terminate).
- Communication (send, receive).
- Memory management (allocate, free).
---
### Expanded Notes: Types of Operating Systems
1. **Batch Processing OS**:
- **Definition**: Executes a series of jobs (tasks) without user interaction during processing.
- **Characteristics**:
- Jobs are collected, grouped, and processed sequentially.
- Users do not interact directly with the system once a job is submitted.
- **Advantages**:
- Efficient resource utilization for repetitive tasks.
- Suitable for large-volume processing.
- **Disadvantages**:
- No real-time interaction.
- Errors in jobs might go unnoticed until execution is complete.
- **Example**: Early IBM systems.
2. **Multi-Programmed OS**:
- **Definition**: Allows multiple programs to reside in memory and share CPU time.
- **Characteristics**:
- When one program waits (e.g., for I/O), another is executed.
- Increases CPU utilization.
- **Advantages**:
- Better resource utilization compared to batch systems.
- **Disadvantages**:
- Complexity in managing processes and memory.
- **Example**: UNIX.
3. **Time-Sharing OS**:
- **Definition**: Enables multiple users to interact with the system simultaneously by sharing CPU
time in quick intervals.
- **Characteristics**:
- Each user gets a time slice (quantum) for execution.
- Rapid switching between users gives the illusion of parallelism.
- **Advantages**:
- Interactive system; users receive quick responses.
- **Disadvantages**:
- May face CPU overloading with many users.
- **Example**: Modern Linux and Windows systems.
4. **Real-Time OS (RTOS)**:
- **Definition**: Processes and responds to inputs immediately, making it suitable for time-critical
tasks.
- **Types**:
- **Hard Real-Time**: Guarantees task completion within strict deadlines (e.g., airbag systems).
- **Soft Real-Time**: Focuses on timely task execution but allows minor delays (e.g., multimedia
systems).
- **Advantages**:
- Ensures timely execution.
- **Disadvantages**:
- Complex to design and implement.
- **Example**: VxWorks, FreeRTOS.
5. **Distributed OS**:
- **Definition**: Manages a collection of independent systems connected via a network, working as
a single cohesive system.
- **Characteristics**:
- Resources (files, devices) are shared across the network.
- Fault tolerance and load distribution.
- **Advantages**:
- Scalability and resource sharing.
- **Disadvantages**:
- Dependency on network connectivity.
- **Example**: Apache Hadoop, Google File System.
6. **Parallel OS**:
- **Definition**: Utilizes multiple processors or cores to perform tasks concurrently.
- **Characteristics**:
- Designed for high-speed computing.
- Tasks are divided into smaller subtasks for simultaneous execution.
- **Advantages**:
- Increased processing power and efficiency.
- **Disadvantages**:
- Requires specialized hardware and software.
- **Example**: Cray Operating System.