OS-1
1. Introduction to Operating Systems
Purpose of Operating Systems
Acts as an intermediary between users and computer hardware.
Facilitates running user applications and solving user problems.
Enhances efficient use of computer hardware.
Key Responsibilities
Managing resources, including CPU, memory, I/O devices.
Controlling execution of applications and users.
Providing a user-friendly interface and abstractions.
2. Computer System Organization
Components of a Computer System
Hardware: Basic computer resources (CPU, memory, I/O devices).
Operating System: Controls hardware usage among applications and users.
Application Programs: Specify how system resources are to be utilized (e.g., word processors, databases).
Users: Can be humans or other systems.
Structure of Computer Systems
Various hardware components connected through buses to share memory.
Control and management of competing processes for memory cycles through the OS.
3. Operating System Functions
Resource Management
Ensures efficient and effective use of hardware resources.
OS manages allocation and deallocation of resources to tasks.
User Interaction
Users demand ease of use; they do not focus primarily on resource utilization.
Systems like mainframes must optimize resource usage to satisfy multiple users.
Types of Systems
Dedicated Systems: Support users with specific resources.
Embedded Systems: Minimal or no user interfaces, running without user intervention.
Mobile Systems: Limited in resources, optimized for usability and battery life (e.g., smartphones).
Real-time Systems: Must perform operations within strict timing constraints.
4. Operating System Definitions
Broad Definitions
An OS is described variably; it can be viewed as a program managing hardware or a collective of system functionalities (like kernels and libraries).
Specific to context: can describe OS in embedded systems, personal computers, or general-purpose systems.
Kernel vs. System Software
The kernel is a critical part of the OS managing resources directly, while other software may just interact with it.
5. Process Management
Definition
A process is an instance of a program being executed, requiring resources (CPU, memory, I/O).
Process Lifecycle
Creation, execution, suspension, resumption, and termination.
Multi-threading
Multiple threads within a process can share resources and operate concurrently, enhancing performance and responsiveness.
6. Memory Management
Dynamic Allocation
Getting segments of memory for specific processes and managing allocation and deallocation.
Swapping
Transferring processes between main memory and disk storage to optimize CPU usage.
Virtual Memory
Allows processes to execute without being fully loaded into physical memory by using disk storage as an extension of RAM.
7. File System Management
File Operations
Creation, deletion, and manipulation of files on storage devices.
Directory Structure
Organizes files into a hierarchical format, allowing for efficient access and storage management.
Access Control
Ensures permissions for data safety and integrity across users and processes.
8. Input/Output Management
Device Drivers
Specialized programs that control specific hardware operations and provide a uniform interface for the OS.
Buffering and Caching
Temporarily storing data during I/O operations to optimize speed and efficiency of data transfer processes.
Error Handling
Detecting and managing hardware and software faults, ensuring system stability.
9. Security and Protection
Access Control Mechanisms
Identify users and control their access to system resources.
Protection Mechanisms
Protects system integrity against unauthorized access and attacks.
Security Threats
Includes malware, unauthorized access attempts, and data breaches.
10. Virtualization**
Types of Virtualization
Allowing multiple OS to run on a single hardware platform, improving resource utilization and management.
Guest Operating Systems
Operating systems running on virtual machines, managed by a Hypervisor (VMM).
Applications of Virtualization
Used in cloud computing, development/testing environments, and performance optimization, among others.
11. Distributed Systems
Definition
A collection of independent systems that communicate over a network, working together to perform tasks.
Networking Models
Client-Server and Peer-to-Peer architectures enable communication and resource sharing.
Operating System Roles
Manage the interactions between distributed components, providing a unified system view.