0% found this document useful (0 votes)
3 views29 pages

Introduction

The document discusses various computer models including Minicomputer, Workstation, and Server models, explaining how they enable resource sharing and user interaction in distributed systems. It also covers the roles of operating systems in managing resources and facilitating communication between processes. Additionally, it highlights the differences between Network Operating Systems and Middleware, emphasizing the importance of transparency and fault tolerance in distributed computing.

Uploaded by

AJAY THAKUR
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views29 pages

Introduction

The document discusses various computer models including Minicomputer, Workstation, and Server models, explaining how they enable resource sharing and user interaction in distributed systems. It also covers the roles of operating systems in managing resources and facilitating communication between processes. Additionally, it highlights the differences between Network Operating Systems and Middleware, emphasizing the importance of transparency and fault tolerance in distributed computing.

Uploaded by

AJAY THAKUR
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Minicomputer 👉 Minicomputer = ek powerful computer jo

●​ multiple users ko ek saath allow karta hai


●​ network ke through dusre computers ke resources use kar sakta hai

🧠 Minicomputer model me kai computers network se connected hote hain,​


har user ek computer pe login karta hai,​
par dusre computers ke data/resources remotely use kar sakta hai.

●​ College me alag-alag labs (computers) hain


●​ Tu Lab A me baitha hai
●​ Par Lab B ke database / files access kar raha hai network se

Bas 💥 — yehi minicomputer model.


●​ 🔹 Multiple users at same time
●​ 🔹 Each user logs into one specific machine
●​ 🔹 Network se dusri machines ke resources access
●​ 🔹 Resource sharing ke liye use hota hai (databases etc.)

Minicomputer model is a distributed system where multiple interconnected


computers allow users to share remote resources over a network.

Workstation Model – ultra short 🔥


👉 Workstation model =​
network se connected personal computers,​
jahan idle (khaali) computers dusron ke heavy jobs run karte hain.

🧠 In the workstation model, users log into their own workstation, but if it lacks power, jobs are
migrated to idle workstations over the network.

Real-life ekdum seedha 😎


●​ Night me lab ke 20 PCs band / idle
●​ Tu ek PC pe heavy program chala raha
●​ System bolta: “chal bhai dusre khaali PCs help karenge”

🔹
●​ Kaam distribute → result wapas tere PC pe
●​ Single-user workstations
🔹 High-speed LAN
🔹 Idle CPU usage
●​

🔹 Process migration
●​
●​

Workstation Model – Problems

System ko teen dikkat aati hain:


1️⃣ Idle workstation kaise dhundhe?​
2️⃣ Process ko dusre workstation pe kaise bheje?​
3️⃣ Agar idle machine ka real user wapas aa jaye toh kya kare? ← MAIN EXAM POINT

Approach 1: Share karwa do

👉 Remote process local user ke saath saath chale


●​ ✅ Easy to implement
●​ ❌ Local user ko guaranteed performance nahi milti

🧠 Idea of personal workstation fail ho jata hai


Approach 2: Kill kar do

👉 Jaise hi local user aaya → remote process kill


●​ ❌ Saara kaam barbaad
●​ ❌ Files inconsistent ho sakti hain

😬 Isliye unattractive approach

Approach 3: Migrate back (BEST but hard)

👉 Remote process ko uske home workstation wapas bhej do


●​ ✅ Kaam continue hota hai
●​ ❌ Implement karna mushkil
●​ ❌ Preemptive process migration chahiye

🔥 Most logical but technically tough


When a logged-on user returns, the remote process may either share resources, be
killed, or be migrated back to its home workstation.

Workstation–Server Model 👉 Workstation–Server model =


●​ User ka personal PC (workstation) sirf login + normal kaam karta hai
●​ Heavy / shared kaam (files, database, print) special powerful machines (servers)
karti hain

Bas. 💥

Aur simple bolun toh 😎


●​ Tu apne PC pe baitha hai (home workstation)

📂
●​ Jab tujhe:

🗄️
○​ file chahiye

🖨️
○​ database access chahiye
○​ print karna hai

➡️ request server ko jaati hai​


➡️ server kaam karta hai​
➡️ result wapas tere PC pe
👉 tera process server pe migrate nahi hota, sirf request jaati hai.
In the workstation-server model, users work on their own workstations while
specialized servers provide shared services like file, database, and print services.

❌ Workstation model → idle PCs dusron ka kaam karte hain


✅ Workstation–Server model → servers hi kaam karte hain, PCs personal hi rehte
●​
●​
hain

1️⃣ Processor–Pool Model

👉 Kya hota hai:​


Sab processors (CPUs) ek common pool me rakhe hote hain.​
User koi fixed machine use nahi karta.​
Jab kaam aata hai → system pool se processors deta hai → kaam hota hai → processors
wapas pool me.
2️⃣ Hybrid Model

👉 Kya hota hai:​


Workstation–Server + Processor–Pool ka mix.​
Normal kaam → user ke workstation pe.​
Heavy computation → processor pool pe.

👉 Operating System =​
ek program jo computer ke resources control karta hai​
aur user ko hardware ke upar ek easy interface (virtual machine) deta hai.

OS ke sirf 2 kaam hote hain:


1️⃣ Virtual Machine dena

●​ Hardware direct use karna mushkil hota hai


●​ OS uske upar easy environment bana deta hai​
(files, processes, memory, commands, GUI etc.)

2️⃣ Resources manage karna

OS decide karta hai:

●​ kaunsa program CPU use kare


●​ kitni memory mile
●​ kaunsi file / device kaun use kare
●​ conflicts ko kaise handle kare

One-line yaad rakh:

OS hardware ko control karta hai aur users/programs ke liye usse easy aur safe
banata hai.

Bas.​
Isse zyada is paragraph me kuch hai hi nahi.
👍 seedha, clean, no bakchodi.​
Is diagram ka exact matlab bas itna hai 👇

Ye diagram kya dikha raha hai? (Microkernel idea)


1️⃣ User mode (upar wale boxes)

●​ User application
●​ Memory module
●​ Process module
●​ File module

👉 Ye sab user mode me chal rahe hain​


👉 Aapas me directly data share nahi kar sakte

2️⃣ Kernel mode (beech me)

●​ Microkernel

👉 Kernel ke andar sirf minimum cheezein hoti hain:


●​ basic communication
●​ scheduling
●​ low-level memory handling

👉 Baaki sab services kernel ke bahar rakhi jaati hain

3️⃣ Communication kaise hota hai?

●​ User application → system call


●​ System call → microkernel
●​ Microkernel → required module (memory / file / process)

👉 Sab kuch microkernel ke through​


👉 Direct shortcut ❌

4️⃣ Hardware (sabse neeche)


●​ Actual CPU, memory, devices
●​ Sirf kernel direct baat karta hai hardware se

👉 Microkernel architecture me OS ka core chhota hota hai, aur OS services user mode
me run karti hain, jo kernel se messages ke through baat karti hain.

Diagram ka caption kyun sahi hai?


Separating applications from operating system code through a microkernel

✔️ Apps aur OS services alag​


✔️ Crash safe (ek module mare toh pura OS nahi marta)​
❌ Thoda slow (extra communication)
Bas.​

👍
Is diagram se aur kuch nikalta hi nahi.​
Agar bole monolithic vs microkernel, tab alag shot maarenge

👍 seedha, short, zero bakchodi — is diagram ka matlab bas ye hai 👇

Multicomputer Operating System – kya hota hai?


👉 Multiple independent computers (Machine A, B, C)​
👉 Har machine ka apna kernel hota hai​
👉 Sab network se connected hote hain

Diagram ka breakdown (upar se neeche):


1️⃣ Distributed applications

●​ Applications multiple machines pe parts me run karti hain


●​ Ek hi program ka kaam A, B, C me banta hua hota hai

2️⃣ Distributed OS services


●​ Common services jo sab machines milkar provide karti hain
●​ Jaise:
○​ naming
○​ communication
○​ synchronization

👉 User ko lagta hai ek hi system hai, reality me multiple machines hain

3️⃣ Kernel (har machine ka alag)

●​ Har machine ka own OS kernel


●​ Kernel sirf local hardware control karta hai

4️⃣ Network


●​ Machines message passing se baat karti hain
●​ Shared memory

One-line idea 🧠
👉 Multicomputer OS me multiple computers apne-apne kernels ke saath network pe
connected hote hain aur milkar distributed applications aur services chalate hain.

Bas.​
Is diagram se aur kuch nikalta hi nahi.

👍 calm, seedha, connection bana ke batata hoon — is diagram ka context + meaning ek


saath 👇​
(no bakchodi, no extra theory)

Ye diagram kis topic se connected hai?


👉 Distributed systems / Multicomputer OS / Microkernel​
👉 Jab shared memory nahi hoti, tab processes baat kaise karte hain?​
➡️ Message Transfer se.
High-level idea (1 line):
👉 Message Transfer = ek process data bhejta hai, doosra receive karta hai, network ke
through, buffers ke saath.

Left side = Sender

●​ Sender process message bhejna chahta hai


●​ Message pehle Sender buffer me jaata hai
●​ S1, S2 = sender ke execution points
○​ S1: send call start
○​ S2: send complete (ya blocked)

Right side = Receiver

●​ Receiver process message lene ke liye ready hota hai


●​ Message Receiver buffer me aata hai
●​ S3, S4 = receiver ke execution points
○​ S3: receive call start
○​ S4: receive complete

Beech ka part = Network


●​ Message sender buffer → network → receiver buffer


●​ Direct memory sharing
●​ Sirf message passing

“Possible synchronization point” ka matlab kya hai?


👉 Sender aur Receiver wait bhi kar sakte hain:
●​ Sender tab tak ruk sakta hai jab tak receiver ready na ho
●​ Receiver tab tak ruk sakta hai jab tak message na aa jaye

➡️ Isliye ise synchronization point bola


Is diagram ka PURPOSE kya hai?
👉 Ye dikhata hai:
●​ Message passing buffered hota hai
●​ Send/Receive blocking ya non-blocking ho sakta hai
●​ Processes network ke through coordinate karte hain

One-line summary (dimaag me bitha le):


👉 This diagram shows how two processes communicate in a distributed system using
message passing with sender and receiver buffers and possible synchronization.

Agar tu bole:

●​ blocking vs non-blocking send


●​ sync vs async message passing
●​ RPC se kaise connect hota hai

toh wahi se next slide ka bridge bana deta hoon 👍


👍 theek hai bhai, ratta-free, base-clear mode ON.​
Main figure → idea → difference ke flow me samjhaata hoon, taaki dimaag me permanently

🌱
baith jaaye.​
Slow aur clear.

🔹 1️⃣ Network Operating System (NOS) — figure 1 & 2


Simple words me:

👉 Network OS = normal OS + network features


Har machine:

●​ apna kernel
●​ apna OS
●​ apni identity

Bas ye machines network ke through services share karti hain.

Figure ka matlab (Machine A, B, C):

●​ Har machine independent hai


●​ Upar distributed applications chal sakti hain
●​ Beech me Network OS services (file sharing, remote login, printing)
●​ Neeche kernel

⚠️ Important point:​
User ko pata hota hai:

“Main remote machine use kar raha hoon”

Second NOS figure (Client–Server):

●​ Client → request bhejta hai


●​ Server → reply karta hai
●​ Example:
○​ File server
○​ Print server

👉 Ye pure client–server model hai.

Key idea (NOS):

●​ Machines alag-alag hain


●​ OS alag-alag hain
●​ User ko difference dikhai deta hai

🔹 2️⃣ Distributed System as Middleware — third figure


Ab yahan game change hota hai 🧠
Middleware kya hota hai?
👉 Middleware = OS aur Application ke beech ka software layer
Iska kaam:

●​ multiple machines ko ek system jaisa feel karwana

Figure ka matlab:

Layer order:

1.​ Hardware
2.​ Kernel


3.​ Network OS services
4.​ Middleware services
5.​ Distributed applications

👉 Middleware sab machines ke upar ek common layer bana deta hai.

User ko kya dikhta hai?

❌ Ye nahi dikhta:
●​ kaunsa machine
●​ kaunsa OS

✅ Ye dikhta hai:
“Ek hi distributed system”

NOS vs Middleware (basic difference):


Point Network OS Middleware

Machine identity Visible Hidden

System feel Multiple systems Single


system

Abstraction Kam Zyada


🔹 3️⃣ Middleware and Openness — last figure
Ye figure compatibility samjhaata hai.

Open Middleware ka matlab:

👉 Agar 2 machines:
●​ alag OS pe ho
●​ alag hardware pe ho

phir bhi agar:

●​ same middleware API


●​ same protocol

➡️
use kar rahi hain​
applications bina change ke chal jaati hain

Figure ka breakdown:

●​ Dono side:
○​ Application
○​ Middleware
○​ Network OS

Beech me:

●​ Common protocol
●​ Same programming interface

👉 Isse system open + portable banta hai.


●​ Network OS → machines connected, but separate
●​ Middleware → machines hidden, system unified
●​ Openness → different systems still work together

Network OS connects machines, Middleware hides machines.

Middleware kya hai?


👉 Application aur Network OS ke beech ka software layer​
👉 Jo network + OS details hide karta hai

Openness kya hai?


👉 Same middleware interface + same protocol​
👉 Taaki applications bina change ke different machines / OS pe chal jaayein

Figure ka direct matlab:


●​ Dono machines pe:
○​ Application upar
○​ Middleware beech me
○​ Network OS neeche
●​ Middleware:
○​ Same API deta hai application ko
○​ Same protocol use karta hai communication ke liye

One-line me sab kuch:


👉 Open middleware = same interface + same protocol, so apps are portable across
systems.

1️⃣ System Image (user ko system kaisa dikhta hai)


NOS:

●​ User ko multiple computers clearly dikhte hain


●​ User jaanta hai kaunsa machine use ho raha hai
●​ Job normally local machine pe hi run hota hai
●​ Dusri machine chahiye → remote login karna padta hai

DOS:

●​ User ko sirf ONE system dikhai deta hai


●​ Multiple computers hide ho jaate hain
●​ Job automatically kisi bhi machine pe run ho sakta hai
●​ User ko location ka idea nahi hota

2️⃣ Autonomy (control kiske paas hota hai)


NOS:

●​ Har machine independent hoti hai


●​ Alag-alag OS ho sakte hain
●​ Sirf communication protocol common hota hai
●​ System calls same hona zaroori nahi

DOS:

●​ Single system-wide OS
●​ Har node same OS ka part run karta hai
●​ Same system calls har jagah
●​ Machines individually decide nahi karti

3️⃣ Fault Tolerance (failure handle karna)


NOS:

●​ Low fault tolerance


●​ Agar machine down → uske users affect
●​ System khud zyada recover nahi karta

DOS:

●​ High fault tolerance


●​ Ek machine fail ho jaaye → job dusri machine pe shift
●​ Users ko impact kam ya zero

Last 2 lines jo yaad rakhni hain:


●​ NOS → user knows machines → manual control
●​ DOS → user sees one system → automatic control
Transparency

Transparency means that the user should not know that the
system is made of many computers.​
The system should look like one single computer to the user.

1️⃣ Access Transparency


Access transparency means that a user accesses a remote resource in the same way as a
local resource.

The user uses the same commands and same system calls whether the resource is on the
local machine or on another machine.

The user should not have to learn different methods for local and remote access.

2️⃣ Location Transparency


Location transparency means that the user does not know where the resource is physically
located.

(a) Name Transparency

The name of a resource should not contain any information about its location.

If a resource (like a file) is moved from one machine to another, its name should not change.

(b) User Mobility

User mobility means that a user can log in from any machine and still access the same
resources using the same names.

The location of the user should not affect access to resources.


3️⃣ Replication Transparency
Replication transparency means that a resource may have multiple copies, but the user does
not know about them.

The system automatically selects the correct copy of the resource.

The user does not need to manage replicas or know where they are stored.

4️⃣ Failure Transparency


Failure transparency means that the system continues to work even if some components
fail.

In case of partial failure, the system may work slower, but it should not completely stop.

Complete failure transparency is not possible, especially when the network fails.

5️⃣ Migration Transparency


Migration transparency means that a process or object can move from one machine to
another without the user knowing.

The system automatically handles this movement.

The user continues working normally and does not notice the migration.

6️⃣ Concurrency Transparency


Concurrency transparency means that many users can use the system at the same time, but
each user feels like he is the only user.

The system ensures that shared resources are accessed safely.

Only one process accesses a shared resource at a time.

All requests are handled in a proper order.


No process waits forever, and deadlocks do not occur.

7️⃣ Performance Transparency


Performance transparency means that the system automatically improves performance
when the load changes.

If one machine becomes overloaded and another machine is idle, the system redistributes the
work.

The user should not notice any performance management actions.

8️⃣ Scaling Transparency


Scaling transparency means that the system can grow without affecting users.

New machines, users, or resources can be added without changing the way the system works.

The user experience remains the same even when the system becomes larger.

FINAL SIMPLE SUMMARY


●​ Access: Same way to use local and remote resources
●​ Location: Resource location is hidden
●​ Replication: Multiple copies are hidden
●​ Failure: System survives failures
●​ Migration: Movement is hidden
●​ Concurrency: Many users work safely together
●​ Performance: System optimizes itself
●​ Scaling: System grows without problems

Reliability
Reliability means that the system should keep working correctly even when failures
happen.
Distributed systems are expected to be more reliable than centralized systems because:

●​ They have multiple instances of resources


●​ If one resource fails, another copy can be used

Types of Failures
1️⃣ Fail-stop Failure

In a fail-stop failure, the system completely stops working.

After stopping, the failure can be detected easily by other parts of the system.

Example:​
A server crashes and stops responding completely.

2️⃣ Byzantine Failure

In a Byzantine failure, the system keeps running, but it produces wrong results.

This type of failure is very dangerous because the system looks normal, but the output is
incorrect.

Example:​
A server replies with incorrect data instead of stopping.

Methods to Handle Failures in Distributed Systems


There are four main methods to handle failures:

1.​ Fault Avoidance


2.​ Fault Tolerance
3.​ Fault Detection
4.​ Fault Detection and Recovery

1️⃣ Fault Avoidance


Fault avoidance means trying to prevent faults from happening.

This is done by:

●​ Using reliable hardware


●​ Performing intensive software testing

The goal is to reduce the chances of failure, not to handle failures after they occur.

2️⃣ Fault Tolerance


Fault tolerance means that the system continues to function even if part of the system
fails.

The system does not completely stop when a failure occurs.

Methods for Fault Tolerance

(a) Redundancy Techniques

Redundancy means keeping multiple copies of important components.

●​ Critical hardware and software are replicated


●​ This avoids a single point of failure

However:

●​ Extra storage and processing are required


●​ Maintaining consistency between replicas is difficult

(b) Distributed Control

Distributed control means no single machine controls everything.

Example:​
A highly available distributed file system should have:

●​ Multiple file servers


●​ Independent storage devices
If one server fails, others continue providing service.

3️⃣ Fault Detection


Fault detection means finding out that a failure has occurred.

The system monitors components to detect:

●​ Crashed servers
●​ Lost messages
●​ Unresponsive processes

4️⃣ Fault Detection and Recovery


Fault detection and recovery means:

●​ Detecting a failure
●​ Recovering from it so the system continues working

Techniques Used for Fault Detection and Recovery

(a) Atomic Transactions

Atomic transactions ensure that:

●​ Either all operations complete successfully


●​ Or none of them are applied

This prevents the system from reaching an inconsistent state.

(b) Stateless Servers

Stateless servers do not store client state information.

Because of this:

●​ If a server fails, another server can handle the request


●​ Recovery becomes easier

(c) History of Requests

The history of requests between client and server affects how services are executed.

Tracking request history helps:

●​ Detect duplicate requests


●​ Ensure correct execution after failures

(d) Acknowledgements and Timeouts

●​ The sender waits for an acknowledgement after sending a message


●​ If no reply is received within a timeout period, the message is retransmitted

This helps detect lost messages.

(e) Detecting Lost Messages in IPC

For inter-process communication (IPC):

●​ The system must detect lost messages


●​ Lost messages must be retransmitted

This ensures reliable communication between processes.

●​ Reliability means the system keeps working correctly


●​ Fail-stop failure stops the system
●​ Byzantine failure gives wrong results
●​ Fault avoidance tries to prevent failures
●​ Fault tolerance keeps the system running after failures
●​ Fault detection finds failures
●​ Fault recovery fixes failures and continues execution

That is exactly what this content is saying.​


If you want, I can now:

●​ compress this into exam answers, or


●​ give real-life examples, or
●​ make a one-page revision sheet.
👍 OK. Simple English. Full sentences. No half lines. No extra bakchodi.​
I will explain only this content, clearly, step by step.

Flexibility (basic meaning)


Flexibility means that a distributed operating system should be easy to change and easy to
improve.

A flexible system allows:

●​ Easy modification of existing features


●​ Easy enhancement by adding new features

Why flexibility is needed


A distributed operating system is complex and keeps evolving.​
So, its design should allow changes without breaking the whole system.

Role of the Kernel


The kernel is the most important part of an operating system.

●​ It runs in a separate address space


●​ User processes cannot directly access it
●​ Kernel design directly affects flexibility

Because of this, kernel structure decides how flexible the OS will be.

Kernel Design Models in Distributed Operating Systems


There are two common kernel design models:

1.​ Monolithic Kernel Model


2.​ Microkernel Model
1️⃣ Monolithic Kernel Model
In the monolithic kernel model:

●​ Most operating system services are inside the kernel


●​ These services include:
○​ Process management
○​ Memory management
○​ Device management
○​ File management
○​ Name management
○​ Inter-process communication

Result of this design

Because all services are inside the kernel:

●​ The kernel becomes very large


●​ It has a single big structure

This reduces:

●​ Flexibility
●​ Configurability

Advantage of monolithic kernel

Requests are serviced faster because:

●​ No message passing is required


●​ No context switching is required
●​ Everything runs inside the kernel

Disadvantage of monolithic kernel

●​ Changing or adding a service is difficult


●​ Often requires stopping the system and rebooting with a new kernel
●​ Large kernel makes the system hard to modify
2️⃣ Microkernel Model
The goal of the microkernel model is to keep the kernel as small as possible.

The microkernel provides only minimum essential services, such as:

●​ Inter-process communication (IPC)


●​ Low-level device management
●​ Basic memory management

Where are other OS services?

All other operating system services are:

●​ Implemented as user-level server processes


●​ Outside the kernel

Each server:

●​ Has its own address space


●​ Can be programmed and modified independently

Advantages of microkernel design

●​ The operating system is modular


●​ It is easy to:
○​ Design
○​ Implement
○​ Install
●​ New services can be added without stopping the system
●​ No need to boot a new kernel when changing services

This makes the system highly flexible.

Performance penalty in microkernel


Because services run as separate processes:
●​ Message-based IPC is required
●​ Communication between servers and kernel needs context switching

This causes:

●​ Additional performance overhead

But in practice

●​ The performance penalty is usually small


●​ Message passing overhead is often negligible
●​ The flexibility benefits outweigh the performance cost

Advantages of Microkernel over Monolithic Kernel


●​ Better flexibility
●​ Easier maintenance
●​ Better portability

FINAL SIMPLE SUMMARY


●​ Flexibility means easy modification and enhancement
●​ Monolithic kernel:
○​ Large kernel
○​ Fast execution
○​ Low flexibility
●​ Microkernel:
○​ Small kernel
○​ Modular design
○​ High flexibility
○​ Slight performance overhead

PERFORMANCE
Performance means that the distributed system should work fast and efficiently.
To improve performance, the following design principles are used:

1️⃣ Batch if possible

Requests or data should be sent together in batches instead of sending them one by one.

Sending large chunks of data is more efficient than sending individual pages because it
reduces communication overhead.

2️⃣ Caching whenever possible

Caching means storing frequently used data locally.

Caching:

●​ Saves a lot of time


●​ Saves network bandwidth​
because data does not need to be fetched again from the network.

3️⃣ Minimize copying of data

When a message is sent from sender to receiver, it is copied many times.

The message path is:

●​ From sender’s stack to sender’s message buffer


●​ From sender’s message buffer (user space) to kernel message buffer
●​ From kernel to NIC (network interface card)

The same copying happens again at the receiver side.

Because of this, six copy operations are required.

More copying means more delay, so copying should be minimized.

4️⃣ Minimize network traffic

Network communication is slow and expensive.

The system should reduce:


●​ Number of messages
●​ Unnecessary data transfers

5️⃣ Migrate process closer to resource

Instead of moving large data across the network, move the process closer to where the data
is stored.

This reduces network traffic and improves performance.

6️⃣ Use fine-grain parallelism

Fine-grain parallelism means dividing work into small parts and executing them
simultaneously on multiple processors.

This improves performance in multiprocessing systems.

7️⃣ Use threads in server processes

Threads allow a server to handle multiple requests at the same time.

This improves:

●​ CPU utilization
●​ Response time

8️⃣ Fine-grained concurrency control

Concurrency control ensures safe access to shared resources.

Fine-grained control means:

●​ Lock only what is necessary


●​ Avoid unnecessary blocking

This improves overall system performance.


SCALABILITY
Scalability means that the system can handle increased load such as:

●​ More users
●​ More requests
●​ More resources

without performance degradation.

Principles for scalability

●​ Centralized entities should be avoided.​


Examples:
○​ Central file server
○​ Centralized database
●​ Centralized algorithms should be avoided because they become bottlenecks.
●​ Most operations should be performed on client workstations to reduce load on servers.

HETEROGENEITY
Heterogeneity means that the distributed system consists of different hardware or
software systems.

Problems in heterogeneous systems

Incompatibilities can occur due to:

●​ Different internal data formats


●​ Different communication protocols
●​ Different network topologies
●​ Different servers at different nodes

Solution

Some form of data translation is required.


An intermediate standard data format can be used so that all systems can understand each
other.

SECURITY
Security is more difficult in distributed systems than in centralized systems because:

●​ There is no single point of control


●​ Data is transmitted over insecure networks

Security requirements

●​ The sender should be sure that the message reached the intended receiver.
●​ The receiver should be sure that the message came from the genuine sender.
●​ Both sender and receiver should be sure that the message was not altered during
transmission.

Solution

Cryptography is used to ensure:

●​ Authentication
●​ Message integrity
●​ Secure communication

You might also like