Distributed Programming – Exam Crash Notes
1. Definition of Distributed Systems
A distributed system is a collection of independent computers that appear to users as a single coherent system.
2. Characteristics of Distributed Systems
Resource sharing, concurrency, scalability, fault tolerance, transparency.
3. Goals of Distributed Programming
High performance, reliability, scalability, resource sharing.
4. Types of Distributed Systems
Client-Server, Peer-to-Peer, Cluster Computing, Cloud Computing.
5. Client-Server Architecture
Clients request services, servers provide services over a network.
6. Communication Models
Message passing and Remote Procedure Call (RPC).
7. Sockets
Sockets provide endpoints for communication between processes over a network.
8. TCP vs UDP
TCP: Reliable, connection-oriented.
UDP: Fast, connectionless, unreliable.
9. Remote Procedure Call (RPC)
Allows a program to execute a procedure on a remote system as if it were local.
10. Middleware
Software layer that enables communication and data management in distributed systems.
11. Synchronization
Ensures correct ordering of events in distributed processes.
12. Deadlock
Occurs when processes wait indefinitely for resources.
13. Fault Tolerance
Ability of system to continue operating despite failures.
14. Distributed File Systems
Provide access to files stored across multiple machines.
15. Applications of Distributed Systems
Web services, cloud computing, online banking, distributed databases.