1. Q: An alternative definition for a distributed system is that of a collection of
independent computers providing the view of being a single system, that is, it
is completely hidden from users that there even multiple computers. Give an
example where this view would come in very handy.
ANSWER: What immediately comes to mind is parallel computing. If one could
design programs that run without any serious modifications on distributed systems that
appear to be the same as nondistributed systems, life would be so much easier. Achieving
a single-system view is by now considered virtually impossible when performance is in play.
2. Q: What is the role of middleware in a distributed system?
ANSWER: To enhance the distribution transparency that is missing in network operating
systems. In other words, middleware aims at improving the single-system view that a
distributed system should have.
3. Q: Many networked systems are organized in terms of a back office and a
front office. How does organizations match with the coherent view we demand
for a distributed system?
ANSWER: A mistake easily made is to assume that a distributed system as operating
in an organization, should be spread across the entire organization. In practice,
we see distributed systems being installed along the way that an organization
is split up. In this sense, we could have a distributed system supporting backoffice procedures and processes, as well as a separate front-office system. Of
course, the two may be coupled, but there is no reason for letting this coupling
be fully transparent.
4. Q: Explain what is meant by (distribution) transparency, and give examples of
different types of transparency.
ANSWER: Distribution transparency is the phenomenon by which distribution aspects
in a system are hidden from users and applications. Examples include access
transparency, location transparency, migration transparency, relocation transparency,
replication transparency, concurrency transparency, failure transparency, and persistence transparency.
5. Q: Why is it sometimes so hard to hide the occurrence and recovery from failures in a distributed system?
ANSWER: It is generally impossible to detect whether a server is actually down, or
that it is simply slow in responding. Consequently, a system may have to
report that a service is not available, although, in fact, the server is just slow.
6. Q: Why is it not always a good idea to aim at implementing the highest degree
of transparency possible?
ANSWER: Aiming at the highest degree of transparency may lead to a considerable
loss of performance that users are not willing to accept.
7. Q: What is an open distributed system and what benefits does openness provide?
ANSWER: An open distributed system offers services according to clearly defined
rules. An open system is capable of easily interoperating with other open systems
but also allows applications to be easily ported between different implementations of the same system.
8. Q: Describe precisely what is meant by a scalable system.
ANSWER: A system is scalable with respect to 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.
9. Q: Scalability can be achieved by applying different techniques. What are
ANSWER: Scaling can be achieved through distribution, replication, and caching.
10. Q: Explain what is meant by a virtual organization and give a hint on how
such organizations could be implemented.
ANSWER: A virtual organization (VO) defines a group of users/applications that have
access to a specified group of resources, which may be distributed across many
different computers, owned by many different organizations. In effect, a VO
defines who has access to what. This also suggests that the resources should
keep an account of foreign users along with their access rights. This can often
be done using standard access control mechanisms (like the rwx bits in UNIX),
although foreign users may need to have a special account. The latter complicates
11. Q: When a transaction is aborted, we have said that the world is restored to its
previous state, as though the transaction had never happened. We lied. Give an
example where resetting the world is impossible.
ANSWER: Any situation in which physical I/O has occurred cannot be reset. For
example, if the process has printed some output, the ink cannot be removed
from the paper. Also, in a system that controls any kind of industrial process, it
is usually impossible to undo work that has been done.
12. Q: Executing nested transactions requires some form of coordination. Explain
what a coordinator should actually do.
ANSWER: A coordinator need simply ensure that if one of the nested transactions
aborts, that all other subtransactions abort as well. Likewise, it should
coordinate that all of them commit when each of them can. To this end, a
nested transaction should wait to commit until it is told to do so by the coordinator.
13. Q: We argued that distribution transparancy may not be in place for pervasice
systems. This statement is not true for all types of transparencies. Give an
ANSWER: Think of migration transparency. In mnay pervasive systems, components
are mobile and will need to re-establish connections when moving from one
access point to another. Preferably, such handovers should be completely
transparent to the user. Likewise, it can be argued that many other types of
transparencies should be supported as well. However, what should not be hidden is a
user is possibly accessing resources that are directly coupled to the
user’s current environment.
14. Q: We already gav e some examples of distributed pervasive systems: home
systems, electronic health-care systems, and sensor networks. Extend this list
with more examples.
ANSWER: There are quite a few other examples of pervasive systems. Think of
largescale wireless mesh networks in cities or neighborhoods that provide services
such as Internet access, but also form the basis for other services like a news
system. There are systems for habitat monitoring (as in wildlife resorts), electronic
jails by which offenders are continuously monitored, large-scale integrated sports
systems, office systems deploying active badges to know about
the whereabouts of their employees, and so on.
15. Q: Bob is given the job to write a program that will get a speedup of 3.8 on 4 processors. He
makes it 95% parallel, and goes home dreaming of a big pay raise. Using Amdahl’s law, and assuming
the problem size is the same as the serial version, and ignoring communication costs, what speedup will
Bob actually get?
ANSWER (using Amdahl’s Law):
Speedup = 1/(f – (1 – f)/P)
= 1/(.05 – .95/4) (1)
16. Q: A programmer has parallelized 99% of a program, but there is no value in increasing the
problem size, i.e., the program will always be run with the same problem size regardless of the number
of processors or cores used. What is the expected speedup on 20 processors? Show your work.
Answer (using Amdahl’s Law):
1/(.01 + (1-.01)/20
Again, full credit was given for setting up the fraction.
17. Q: Compare and contrast the shared memory and distributed memory programming
ANSWER: Difference Between Shared Memory and Distributed Memory
1. Distributed Memory (DM)
- In DSM the different physical memories are logically shared over a large address space( virtual memory).
- So the processes going on accesses the physical memory through these logically shared address space.
- DSM have no physical shared memory.
- The shared memory model provides a virtual address space shared between all nodes.
- The term “shared” does not mean that there is a single centralized memory but “shared” essentially means that the address space is shared (same physical address on two processors refers to the same location in memory).
2. Shared Memory (SM)
- In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies.
- Shared memory is an efficient means of passing data between programs.
- Depending on context, programs may run on a single processor or on multiple separate processors.
- In computer software, shared memory is either a method of inter-process communication (IPC), i.e. a way of exchanging data between programs running at the same time.
- One process will create an area in RAM which other processes can access; a method of conserving memory space by directing accesses to what would ordinarily be copies of a piece of data to a single instance instead, by using virtual memory mappings.
18. Q: Define Distributed System?
Answer : A distributed system is a collection of independent computers that appears to its users as a single coherent system. A distributed system is one in which components located at networked communicate and coordinate their actions only by passing message.
19. Q: List The Characteristics Of Distributed System?
Answer : Programs are executed concurrently
There is no global time
Components can fail independently (isolation, crash)
20. Q: Mention The Examples Of Distributed System?
Answer : The Internet
Mobile and ubiquitous computing
21. Q: What Is Mobile And Ubiquitous Computing?
Answer : Mobile: Computing devices are being carried around.
Ubiquitous: Little computing devices are all over the place.
21. Q: Mention The Challenges In Distributed System?
Answer : Heterogeneity
22. Q: What Are The Advantages Of Distributed Systems?
Answer : Performance
Reliability (fault tolerance)
Sharing of data/resources
23. Q: What Are The Disadvantages Of Disadvantages Of Distributed Systems?
Answer : Difficulties of developing distributed software
24. Q: Write The Difference Between Mobile And Ubiquitous Computing?
Answer : Ubiquitous computing used in single environment such as home or hospital.
Mobile computing has advantage when using different devices such as laptops and printers.
25. Q: Define Scalability?
Answer :System should work efficiently at many different scales, ranging from a small Intranet to the Internet.
Challenges of designing scalable distributed systems:
Cost of physical resources
Cost should linearly increase with system size
For example, in hierarchically structured data, search performance loss due to data growth should not be beyond O (log n), where n is the size of data.
Preventing software resources running out.
Numbers used to represent Internet address (32 bit->64bit), Y2K like problem. Avoiding performance bottlenecks.
Use decentralized algorithms (centralized DNS to decentralized).