- OS - Home
- OS - Overview
- OS - History
- OS - Evolution
- OS - Functions
- OS - Components
- OS - Structure
- OS - Architecture
- OS - Services
- OS - Properties
- Process Management
- Processes in Operating System
- States of a Process
- Process Schedulers
- Process Control Block
- Operations on Processes
- Process Suspension and Process Switching
- Process States and the Machine Cycle
- Inter Process Communication (IPC)
- Remote Procedure Call (RPC)
- Context Switching
- Threads
- Types of Threading
- Multi-threading
- System Calls
- Scheduling Algorithms
- Process Scheduling
- Types of Scheduling
- Scheduling Algorithms Overview
- FCFS Scheduling Algorithm
- SJF Scheduling Algorithm
- Round Robin Scheduling Algorithm
- HRRN Scheduling Algorithm
- Priority Scheduling Algorithm
- Multilevel Queue Scheduling
- Lottery Scheduling Algorithm
- Starvation and Aging
- Turn Around Time & Waiting Time
- Burst Time in SJF Scheduling
- Process Synchronization
- Process Synchronization
- Solutions For Process Synchronization
- Hardware-Based Solution
- Software-Based Solution
- Critical Section Problem
- Critical Section Synchronization
- Mutual Exclusion Synchronization
- Mutual Exclusion Using Interrupt Disabling
- Peterson's Algorithm
- Dekker's Algorithm
- Bakery Algorithm
- Semaphores
- Binary Semaphores
- Counting Semaphores
- Mutex
- Turn Variable
- Bounded Buffer Problem
- Reader Writer Locks
- Test and Set Lock
- Monitors
- Sleep and Wake
- Race Condition
- Classical Synchronization Problems
- Dining Philosophers Problem
- Producer Consumer Problem
- Sleeping Barber Problem
- Reader Writer Problem
- OS Deadlock
- Introduction to Deadlock
- Conditions for Deadlock
- Deadlock Handling
- Deadlock Prevention
- Deadlock Avoidance (Banker's Algorithm)
- Deadlock Detection and Recovery
- Deadlock Ignorance
- Resource Allocation Graph
- Livelock
- Memory Management
- Memory Management
- Logical and Physical Address
- Contiguous Memory Allocation
- Non-Contiguous Memory Allocation
- First Fit Algorithm
- Next Fit Algorithm
- Best Fit Algorithm
- Worst Fit Algorithm
- Buffering
- Fragmentation
- Compaction
- Virtual Memory
- Segmentation
- Paged Segmentation & Segmented Paging
- Buddy System
- Slab Allocation
- Overlays
- Free Space Management
- Locality of Reference
- Paging and Page Replacement
- Paging
- Demand Paging
- Page Table
- Page Replacement Algorithms
- Second Chance Page Replacement
- Optimal Page Replacement Algorithm
- Belady's Anomaly
- Thrashing
- Storage and File Management
- File Systems
- File Attributes
- Structures of Directory
- Linked Index Allocation
- Indexed Allocation
- Disk Scheduling Algorithms
- FCFS Disk Scheduling
- SSTF Disk Scheduling
- SCAN Disk Scheduling
- LOOK Disk Scheduling
- I/O Systems
- I/O Hardware
- I/O Software
- I/O Programmed
- I/O Interrupt-Initiated
- Direct Memory Access
- OS Types
- OS - Types
- OS - Batch Processing
- OS - Multiprogramming
- OS - Multitasking
- OS - Multiprocessing
- OS - Distributed
- OS - Real-Time
- OS - Single User
- OS - Monolithic
- OS - Embedded
- Popular Operating Systems
- OS - Hybrid
- OS - Zephyr
- OS - Nix
- OS - Linux
- OS - Blackberry
- OS - Garuda
- OS - Tails
- OS - Clustered
- OS - Haiku
- OS - AIX
- OS - Solus
- OS - Tizen
- OS - Bharat
- OS - Fire
- OS - Bliss
- OS - VxWorks
- Miscellaneous Topics
- OS - Security
- OS Questions Answers
- OS - Questions Answers
- OS Useful Resources
- OS - Quick Guide
- OS - Useful Resources
- OS - Discussion
Distributed in Operating System
So far in this tutorial, we discussed operating systems that runs on a single computer. However, in today's interconnected world, there are scenarios where multiple computers need to work together to achieve a common goal. This is where distributed operating systems play an important role.
Read this chapter to understand more about distributed operating systems, its working, advantages, disadvantages, and examples.
- What is Distributed Operating System?
- Structure of Distributed Operating System
- How it Works?
- Client-Server Architecture
- Peer-to-Peer Architecture
- Advantages of Distributed Operating System
- Disadvantages of Distributed Operating System
What is Distributed Operating System?
A distributed operating system is a type of operating system that runs on a network of interconnected computers, to make them appear as a single unit to the users. The each computer in the network is called a node of the distributed system. These nodes works together to share resources, data, and processing power to provide a better computing experience. In the other words, a distributed operating system can be called as an operating system for a network of computers.
The image below shows an example of a distributed operating system −
A user in a distributed operating system does not care about which node is executing their task or where the resources are stored. It is all managed by the distributed operating system itself. The main goal of a distributed operating system is to provide transparency, scalability, fault tolerance, and resource sharing across the network.
Structure of Distributed Operating System
The structure of a distributed operating system can be divided into the following layers −
- Workstation − A workstation is a general-purpose computer used by users to perform tasks. It provides user interface and local computing resources used by the user.
- Terminal − A terminal is a simple input/output device that relies on the processing power of remote computers. It acts as an interface to communicate with the distributed system.
- File Server − A file server is responsible for centralized storage of files. It manages file access, storage and retrieval for all nodes in the distributed system.
- Database (DB) Server − A database server handles centralized database services. It manages data consistency, transactions and concurrency for the distributed system.
- Computer Node − A computer node is a general-purpose compute node in the distributed system. It executes tasks, runs processes and performs calculations as part of the distributed applications.
- Communication Network − The communication network is the backbone that interconnects all components of the distributed operating system. It ensures reliable data transmission between nodes, servers, terminals and workstations.
How it Works?
The distributed operating system works on the principle of loose coupling between the nodes in the network. Meaning, each node in the system works independently, but they communicate and coordinate with each other.
- No Shared Memory − In a distributed operating system, there is no shared memory between the nodes. Every node has its own memory and resources.
- Communication − The nodes in a distributed operating system communicate with each other using high speed LAN or WAN networks.
- Task Distribution − The distributed operating system distributes tasks among the nodes based on their availability and processing power. So it appers that a single node connected to the network is executing a task that is larger than its capacity.
- Fault Tolerance − In case of a node failure, the distributed operating system can still function. It can redistribute the tasks to other available nodes in the network.
Arhitecture Types
There are mainly two types of architectures used in distributed operating systems −
- Client-Server Architecture
- Peer-to-Peer Architecture
Client-Server Architecture
In client-server architecture of distributed operating system, there are dedicated servers that provide services to multiple clients. The clients request services from the servers, and the servers process those requests and send back the results. This architecture is commonly used in web applications, file sharing systems, and database systems.
The image below shows an example of client-server architecture −
Here, you can see that there are multiple clients such as mobile devices, laptops, and desktops that are connected to a central server. The server provides services such as file storage, database access, and web hosting to the clients.
Peer-to-Peer Architecture
In peer-to-peer architecture of distributed operating system, there are no any dedicated servers. Instead, all nodes in the network act as both clients and servers. Each node can request services from other nodes and also provide services to other nodes. This architecture is commonly used in file sharing systems, distributed computing systems, and blockchain networks.
The image below shows an example of peer-to-peer architecture −
Here, you can see that all nodes in the network are connected to each other. The mobile devices can share files directly with each other without the need for a central server.
Advantages of Distributed Operating System
The distributed operating system is widely used in various applications because it is very beneficial. Some of the advantages of distributed operating systems are −
- Fault Tolerance − In case of a node failure, the distributed operating system can still function by redistributing tasks to other available nodes.
- Big Task Exection − It allows the execution of large tasks by distributing it among multiple nodes.
- Resource Sharing − It enables resource sharing among multiple nodes, leading to better resource utilization.
- Scalability − It can easily scale by adding more nodes to the network as the demand increases.
- Transparency − It provides transparency to users by hiding the complexity of the distributed system.
Disadvantages of Distributed Operating System
The drawbacks of distributed operating systems are −
- Complexity − The design and implementation of distributed operating systems are complex due to the need for communication and coordination between nodes.
- Security Risks − The distributed nature of the system can lead to security vulnerabilities, as data is transmitted over networks.
- Network Dependency − The performance of a distributed operating system is heavily dependent on the network's speed and reliability.
- Cost − Setting up and maintaining a distributed operating system can be expensive due to the need for multiple computers and networking infrastructure.
Conclusion
Distributed operating systems are designed to manage a network of interconnected computers, making them appear as a single unit to users. They offer advantages such as fault tolerance, resource sharing, and scalability, but also come with challenges like complexity and security risks.