What is a distributed system
What is middleware
Access, location, migration( source has been relocated, but it is not visible for† you, you act as normal), relocation (copy of the same resource several times, same name for all the copies), concurrency (another user is accessing the resource at the same time), failure (you donít see that the system has a failure, the system is still working and recovering from this failure), persistence (memory and disk, this set-up is hidden, the object is put into memory and then put back to disk)
What is an open distributed system and what benefits does openness provide?
Either its number of components, geographical size or number and size of administrative domains, if it can grow in one or more of these dimensions without an unacceptable loss of performance.
Add more components and the system goes slower, then the system is not scalable.
Switch bar network or Omega network.
The difference between a multiprocessor and a multicomputer (what are the problem with these?).
Multiprocessor:† CPUs have access to a shared main memory (the bus is a problem, problem is scalability.† If you add more, the performance go down.† Cash problem.† Solution:† Bus and switch).
Multicomputer:† CPUs can communicate only through message passing.
CHECK THE DRAWING IN THE BOOK page 16.
Difference between distributed OS and network OS.
Handles multiprocessors and Homogeneous (have the same speed) multicomputers.
Different independent computers (not the same, not homogeneous).†
Second difference:† Each have their own OS sytem (unix, Microsoft, Linux).† Using middleware.
Scalability can be achieved by applying different techniques.† What are these?
Distribution (how it should be done is not easy), replication (consistency problem) and chaching (when and how often should I update, tool to reduce communication which will reduce performance)
Buffers are allocated by various processes to use as input queues, etc. Most time, buffers are some processes' output, and they are file buffers. A simplistic explanation of buffers is that they allow processes to temporarily store input in memory until the process can deal with it.
Cache is typically frequently requested disk I/O. If multiple processes are accessing the same files, much of those files will be cached to improve performance (RAM being so much faster than hard drives), it's disk cache.
Chapter 4 Naming
Share resources, uniquely identify entities, refer to locations
Name resolution: allows a process to access the named entity
In distributed systems, the naming is also distributed.
Key role in scalability, naming has to be done efficiently.
Multiple name servers, all is distributed.
Global level:† Jointly managed by different administrators.† Like the unix system you can not change the VAR or system directories.
Image page 196.
Makes your search easier, scalable.
Image page 198† Interative Name Resolution.
Image page 199 Recursive Name Resolution (info sent to the next server.† Only one communication line between the client and the server, here you can also use cashing.
All about replication and the problems involved.
Scalability (performance)† VERSUS consistency
Alfa times consistency plus beta performance (different weight in you system, it depends on what you think is important).
Communication is costly.
Replication gives me the possibility to continue working if the other copy goes down.
Multiple copies may lead to consistency problems.
Consistency = equal
Strict Consistency (page 298):
It does not make sense to talk about the most recent in a distributed system.
See image page 300.
Respect of the sequential order.
See image page 301
Have to be seen by all processes in the same order.
Image page 306
Update by a single process.† Received in the order they were issued.
See image 6-11 page 307
Weak, release, entry
Two local copies, one process.
Take with you all the updates.
A write operation must finish before the next write operation from one process on the same data.
The difference in distributed systems and single systems and the faults you can see.
Dependability (slide nr 7)
How can my system tolerant faults.† Can tolerate some faults before it brakes down.
Fault forecasting:† How can I compute in the future, how one failure can have impact on others parts and how low can the distributed system run until it brakes down.
This is based on statistics for the whole system.
Flat groups versus Hierarchical groups:
If the coordinator fails in the Hierarchical groups, everything stops.† With a flat group, this does not happen.† Flat group needs to vote for a decision.†
Image page 377
Byzantine:† recursive agreement.†† VECTOR
Image page 373
Slide 24.† RELIABLE COMMUNICATION (Byzantine generals)
If you have not a reliable communication, you can never get an agreement.
Image page 394† Figure 7-17
2 phase COMMIT is enough, do not read 3 phase.