What is Distributed System?
It is a collection of autonomous computing elements(hardware devices eg.computers, or software processes) that appears to its users as a single coherent system.
The definition also is :
A distributed system is a network that consists of autonomous computers which are connected using a distribution middleware. They help in sharing different resources and capabilities to provide users with a single and integrated coherent network.
Some challenges in Distributed Systems.
1.Distributed reads and writes.
Write: Broadcast values after a write.
Read: Wait until all server apply the write operation.
2.How to build distributed systems --- Middleware
Middleware is software, in the context of distributed system, that provides services to enable various components of a distributed system to communicate and manage data.(wiki))
Middleware layer is the software layer that lies between operating system and the applicants on each side of a distributed computer network.(Quora)
It can be considered as the OS of Distributed Systems.
3.Two Generals Problem.
Two Roman Generals want to co-ordinate an attack on the enemy. Both must attack simultaneously. Otherwise, both will lose. Only way to communicate is via a messenger. But messengers can get captured/lost.
Is it possible to design a protocol that ensures the two generals always attack simultaneously?
The answer is NO.
Solving the Two Generals Problem requires common knowledge.
Common knowledge is a special kind of knowledge for a group of agents. There is common knowledge of p in a group of agents G when all the agents in G know p, they all know that they know p, they all know that they all know that they know p, and so on ad infinitum.
However, common knowledge cannot be achieved with unreliable communication channels.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。