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:
- First Generation (1940-1950s): Vacuum tubes, no OS needed.
- Second Generation (1955-1965): Introduction of GMOSIS, batch processing on transistors.
- Third Generation (1965-1980): Multi-programming, integrated circuits.
- 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.