Principles of Parallel and Distributed Computing
Principles of Parallel and Distributed Computing
• Sequential Computing:
o One task at a time, step-by-step execution.
o Limited efficiency for large-scale problems.
• Parallel Computing:
o Multiple computations happening simultaneously.
o Increases processing speed and efficiency.
System Architectures
• Client/Server Models:
o Thin Client Model: Minimal processing on client, heavy processing on server.
o Fat Client Model: Processing distributed between client and server.
• Multi-Tier Architectures:
o Two-Tier Architecture: Direct communication between client and server.
o Three-Tier & N-Tier Architectures: Intermediate layers for processing and
database management.
• Peer-to-Peer (P2P) Systems: No central server, direct communication between nodes.
• Remote Procedure Call (RPC): A process can request services from another computer.
• Service-Oriented Computing (SOC): A paradigm for designing and integrating
distributed applications.
What is a Service?
Virtualization
• Concept that allows multiple virtual instances to run on a single physical machine.
• Key in cloud computing for resource efficiency and flexibility.
• Advantages:
o Sandboxed execution environment prevents security breaches.
o Resource partitioning allows fine-tuned allocation.
• Disadvantages:
o Performance Overhead: Managing virtual processors and privileged instructions.
o Memory Management Challenges: Paging and console functions impact
performance.
• Xen (Paravirtualization)
o Domain 0: First loaded VM, manages hypervisor.
o Domain U: Runs guest OS in Ring 1.
o Requires OS Modification: Not all OSes are compatible.
• VMware (Full Virtualization)
o Type I: Server Virtualization.
o Type II: Desktop Virtualization.
o Binary Translation & Direct Execution:
§ Direct execution for non-privileged tasks.
§ Translates sensitive instructions.