Distributed OS Concepts
ডিস্ট্রিবিউটেড অপারেটিং সিস্টেম একাধিক কম্পিউটারকে একসাথে কাজ করার সুযোগ দেয় যাতে তারা একটি সিঙ্গেল সিস্টেম হিসেবে কাজ করে।
1. Client-Server Model
Client-Server Model হলো একটি আর্কিটেকচার যেখানে ক্লায়েন্ট রিকোয়েস্ট পাঠায় এবং সার্ভার রেসপন্স দেয়।
Real-life Example: রেস্টুরেন্টে আপনি (Client) ওয়েটারকে (Server) খাবার অর্ডার দেন। ওয়েটার কিচেনে গিয়ে খাবার এনে আপনাকে দেয়।
Characteristics:
- Centralized: সার্ভারে ডেটা এবং লজিক থাকে।
- Scalability: একাধিক ক্লায়েন্ট একই সার্ভার ব্যবহার করতে পারে।
- Examples: Web servers, Database servers, Email servers।
2. Distributed File Systems
Distributed File System (DFS) একাধিক মেশিনে ছড়িয়ে থাকা ফাইলকে একটি সিঙ্গেল ফাইল সিস্টেম হিসেবে দেখায়।
NFS (Network File System)
- Unix/Linux-এ ব্যবহৃত।
- রিমোট ফাইল লোকাল ফাইলের মতো এক্সেস করা যায়।
HDFS (Hadoop Distributed File System)
- বিগ ডেটা প্রসেসিংয়ের জন্য ডিজাইন করা।
- ফাইলকে ছোট ব্লকে ভাগ করে একাধিক নোডে স্টোর করে।
- Fault Tolerance: ডেটা রেপ্লিকেট করা হয় যাতে একটি নোড ফেইল হলেও ডেটা হারিয়ে না যায়।
3. Consensus in OS
Consensus হলো একাধিক নোড একটি ভ্যালুতে একমত হওয়ার প্রক্রিয়া। ডিস্ট্রিবিউটেড সিস্টেমে এটি অত্যন্ত গুরুত্বপূর্ণ।
Paxos
- জটিল কিন্তু শক্তিশালী consensus অ্যালগরিদম।
- নোডদের মধ্যে ভোটিং করে সিদ্ধান্ত নেওয়া হয়।
Raft
- Paxos-এর চেয়ে সহজ এবং বোঝা সহজ।
- Leader Election: একটি নোড লিডার হয় এবং সিদ্ধান্ত নেয়।
- Log Replication: লিডার লগ এন্ট্রি অন্যদের কাছে পাঠায়।
Use Cases: Distributed databases (etcd, Consul)।
4. Process Migration
Process Migration হলো একটি চলমান প্রসেসকে এক মেশিন থেকে অন্য মেশিনে সরানো।
কেন প্রয়োজন?
- Load Balancing: ওভারলোডেড মেশিন থেকে প্রসেস সরিয়ে অন্য মেশিনে নেওয়া।
- Fault Tolerance: মেশিন ফেইল হলে প্রসেস অন্যত্র চালানো।
- Resource Utilization: বেটার রিসোর্স ব্যবহার।
Challenges:
- প্রসেসের স্টেট সেভ এবং ট্রান্সফার করা।
- নেটওয়ার্ক কানেকশন মেইনটেইন করা।
5. Clock Synchronization
ডিস্ট্রিবিউটেড সিস্টেমে প্রতিটি মেশিনের নিজস্ব ঘড়ি থাকে যা সিঙ্ক্রোনাইজড নাও হতে পারে। ইভেন্টের অর্ডার ঠিক রাখতে ক্লক সিঙ্ক্রোনাইজেশন প্রয়োজন।
Lamport Clocks
- Logical Clock: ফিজিক্যাল টাইম নয়, ইভেন্টের অর্ডার ট্র্যাক করে।
- প্রতিটি ইভেন্টে একটি টাইমস্ট্যাম্প দেওয়া হয়।
- Rule: যদি A → B (A হ্যাপেন্স বিফোর B), তাহলে timestamp(A) < timestamp(B)।
Vector Clocks
- Lamport-এর চেয়ে শক্তিশালী।
- প্রতিটি নোডের জন্য একটি কাউন্টার রাখে।
- Causality Detection: দুটি ইভেন্ট concurrent নাকি causal সেটা বোঝা যায়।
Real-life Example: তিনজন বন্ধু আলাদা শহরে থাকে এবং চিঠি আদান-প্রদান করে। Vector Clock দিয়ে বোঝা যায় কোন চিঠি কার আগে লেখা হয়েছিল।