You are on page 1of 4

KENYA METHODIST UNIVERSITY

NAIROBI CAMPUSS

BACHELOR OF BUSINESS INFORMATION TECHNOLOGY

ASSIGNMENT I: DISRIBUTED SYSTEMS

NAME: KIGATHI IAN NDERITU

ADNO: BIT-1-1971-3/07

UNIT CODE: BBIT 4

LECTURER: MR. BERNARD OSERO


1. What is the difference between a computer network and a
distributed system?

Computer networks
Interconnected collection of autonomous computers, capable of exchanging
information. The word autonomous computers refer to the fact that there must be
no master/slave relation between the computers in the network.
Computer Networks Computers are connected generally in the same physical location,
using different styles e.g. Token ring, Star, Serial connection, etc. Also called as LAN,
Local Area Network. U will find it in a library, small offices, in the same building, cyber
cafe's etc.
Distributed systems
A distributed system is a collection of independent computers that appear to the users of
the system as a single computer. The computers are connected at different physical
locations across cities, states, etc. Using distributed systems, various computer programs
can be run or executed remotely irrespective of physical locations, so as to use the more
memory and processing power of other computers.
Distributed Systems also can be considered as a type of computer network but in a much
large scale. Generally called as WAN or Wide Area Network. Different computers are
connected at different physical locations across cities, states, etc.

1. With clear explanations explain the various distributed systems model.


Parallel algorithms in shared-memory model
• All computers have access to a shared memory. The algorithm designer chooses the
program executed by each computer.
• One theoretical model is the parallel random access machines (PRAM) are used.
However, the classical PRAM model assumes synchronous access to the shared memory.
• A model that is closer to the behavior of real-world multiprocessor machines and takes
into account the use of machine instructions such as Compare-and-swap (CAS) is that of
asynchronous shared memory. There is a wide body of work on this model, a summary of
which can be found in the literature.
Parallel algorithms in message-passing model
• The algorithm designer chooses the structure of the network, as well as the program
executed by each computer.
• Models such as Boolean circuits and sorting networks are used. A Boolean circuit can be
seen as a computer network: each gate is a computer that runs an extremely simple
computer program. Similarly, a sorting network can be seen as a computer network: each
comparator is a computer.
Distributed algorithms in message-passing model
• The algorithm designer only chooses the computer program. All computers run the same
program. The system must work correctly regardless of the structure of the network.
• A commonly used model is a graph with one finite-state machine per node.
Cluster:

A type of parallel or distributed processing system, which consists of a collection of


interconnected stand-alone computers cooperatively working together as a single,
integrated computing resource.
Grid:

A type of parallel and distributed system that enables the sharing, selection, and
aggregation of geographically distributed autonomous resources dynamically at runtime
depending on their availability, capability, performance, cost, and users' quality-of-
service requirements.
1. Discuss the challenges of designing a distributed system.

Building and operating large-scale information retrieval systems used by hundreds


of millions of people around the world provides a number of interesting
challenges. Designing such systems requires making complex design tradeoffs in a
number of dimensions, including
(a) The number of user queries that must be handled per second and the response
latency to these requests,
(b) The number and size of various corpora that are searched,
(c) The latency and frequency with which documents are updated or added to the
corpora,
(d) The quality and cost of the ranking algorithms that are used for retrieval.

System Architectures - Object-oriented methods such as the UML are insufficient


to describe complex distributed architectures. Objects, subsystems and
associations are too general and too low-level to concisely capture complex
distributed system properties and component interactions. In addition, object
models of multi-threaded architectures tend to be imprecise and incomprehensible
except for the most simple of examples.
Development - Server development, typically the middle tier in 3 tier
architectures, is normally the most complex part of a system construction. Multi-
threaded, high performance servers are difficult to write and test, especially as
they usually rely on low-level operating systems and middleware application
programming interfaces (APIs).
Testing and Debugging - Testing distributed systems is extremely time-consuming
and troublesome. The basic reason is their inherent concurrent and non-
deterministic behavior.
Scalability - System should work efficiently with an increasing number of users,
System performance should increase with inclusion of additional resources. This
are two challenges the designer faces too.