Introduction to OS

Operating Systems - In-Depth Notes

Course Goals

  • Fundamental Concepts: Understand and demonstrate fundamental operating systems concepts.
  • Process and Thread Management: Apply CPU scheduling algorithms, understand process synchronization, mutual exclusion, and deadlock.
  • Memory Management: Discuss and apply memory management techniques and page replacement algorithms.
  • File Management: Grasp concepts of file management by operating systems.
  • I/O Devices Management: Understand how the OS manages I/O devices.

Reference Books

  • Modern Operating System, 4th Edition - Andrew S. Tanenbaum & Herbert Bos (Pearson)
  • Operating System Concepts, 9th Edition - Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (Wiley)
  • Operating System: Internals and Design Principles, 8th Edition - William Stallings (Prentice Hall)
  • Operating Systems, 2nd Edition - A Godbole (Tata McGraw Hill)
  • The Design of the Unix Operating System, 1st Edition - Maurice J. Bach (Prentice Hall)

Tentative Topics

  • Introduction to Operating Systems
    • Processes
    • Inter-process Communication and Synchronization
    • Deadlocks
    • Memory Management
    • File System
    • I/O Systems

Roadmap of Chapter

  • Introduction & Need: Explain the necessity for operating systems.
  • Evolution: Overview of the evolution of operating systems.
  • Layered Architecture: Logical structure of an operating system.
  • OS Services: Types and functionalities of OS.
  • Types of OS: Discuss different types of operating systems.
  • Introduction to UNIX OS.

Introduction to Computers

  • Definition: An electronic device that performs high-speed arithmetic operations, and serves as a data processor that can store, process, and retrieve data.

Data Processing

  • Definition: Activity of processing data using a computer.
    • Data: Raw material serving as input.
    • Information: Processed data is output of data processing.

Operating System Overview

  • Definition: A set of programs acting as an interface between users and hardware, controlling the execution of programs.
  • Basic Functions:
    • File Management
    • Memory Management
    • Process Management
    • I/O Management
    • Security and Error Detection
    • Coordination between software and users.

Roles of Operating System

  • User View:

    • Focused on usability and resource utilization.
  • System View:

    • Manages hardware resources, acting as a resource allocator and control program.

Important Terms

  • System Program: Associated with but not part of the OS kernel.
  • Application Program: Programs not linked to system operations.
  • Kernel: Core component of the OS running at all times.

Advantages of Operating Systems

  • Convenience: Easier to use due to interfaces and usability designs.
  • Efficiency: Optimal resource management with corrective actions.

Evolution of Operating Systems

  • Generations:
    1. First Generation (1940-1950s): Vacuum tubes, no OS needed.
    2. Second Generation (1955-1965): Introduction of GMOSIS, batch processing on transistors.
    3. Third Generation (1965-1980): Multi-programming, integrated circuits.
    4. Fourth Generation (1980-present): Windows development, personal computing advancements.

Types of Operating Systems

  • Batch Operating System: Processes similar jobs in groups; relatively less idle time but hard to debug.
  • Multi-Programming Operating System: Executes multiple programs in memory; increases efficiency but lacks user interaction.
  • Multi-Tasking Operating System: Like multi-programming but allows simultaneous execution; may lead to performance issues.
  • Time-Sharing Operating Systems: Allocates CPU time to tasks; improves resource sharing but is complex.
  • Multi-Processing Operating Systems: Utilizes multiple CPUs, increasing throughput but adds complexity.
  • Real-Time Operating Systems: Strict time constraints; critical in applications like missiles. Elements include hard and soft real-time systems.
  • Distributed Operating Systems: Components are on multiple machines; allows fast computation but complex management.
  • Network Operating Systems: Centralized servers manage security, but higher costs and maintenance required.

Operating System Structure

  • Various structures include:
    • Simple Structure: MS-DOS, small and limited.
    • Monolithic Structure: All services reside in one kernel (e.g., UNIX).
    • Layered Structure: Different OS functions are in layers, simplifying debugging but may degrade performance.
    • Micro-Kernel: Small kernel with non-essential functions as user services.
    • Modular Structure: A flexible approach with dynamically loadable modules.
    • Hybrid-Kernel Structure: Combines properties of monolithic and micro-kernel structures for better performance and security.

OS Services

  • Program Execution: Manages programs in memory, scheduling their execution.
  • Input/Output Operations: Manages I/O operations, facilitating communication between users and devices.
  • Process Communication: Handles data transfer and communication between processes.
  • File Management: Controls file access, permissions, and storage decisions.
  • Memory Management: Allocates and deallocates memory based on program needs.
  • Process Management: Schedules CPU time among various processes, ensuring efficient execution.
  • Security and Privacy: Protects against unauthorized access, providing safeguards.
  • Resource Management: Shares resources among processes effectively.
  • User Interface: Provides interfaces for user interaction (CLI vs GUI).
  • Networking: Manages device communications within networks.
  • Error Handling: Detects and manages errors occurring within the system.
  • Time Management: Ensures smooth operation through scheduling.

Conclusion

  • Operating systems play a crucial role in managing hardware and software resources, providing the necessary structure for effective program execution and user interaction.

Thank You!