Chapter (1)
Distributed System
A distributed system is one in which hardware or software components located at networked computers
communicate and coordinate their actions only by passing messages.
Firewall
The role of a firewall is to protect an intranet by preventing unauthorized messages from leaving or entering.
Middleware
The term middleware applies to a software layer that provides a programming abstraction as well as masking
the heterogeneity of the underlying networks, hardware, operating systems and programming languages.
Location transparency
Location transparency enables resources to be accessed without knowledge of their physical or network
location (for example, which building or IP address).
Mobility transparency
Mobility transparency allows the movement of resources and clients within a system without affecting the
operation of users or programs.
Chapter (2)
Client - Server Architecture
Server refers to a running program on a networked computer that accepts requests from programs running
on other computers to perform a service and responds appropriately. The requesting processes are referred to
as clients, and the overall approach is known as client-server computing. In this approach, requests are sent
in messages from clients to a server and replies are sent in messages from the server to the clients. When the
client sends a request for an operation to be carried out, we say that the client invokes an operation upon the
server.
Peer-to-peer Architecture
In this architecture all of the processes involved in a task or activity play similar roles, interacting
cooperatively as peers without any distinction between client and server processes or the computers on
which they run. The aim of the peer-to-peer architecture is to exploit the resources (both data and hardware)
in a large number of participating computers for the fulfilment of a given task or activity. Peer-to-peer
applications and systems have been successfully constructed that enable tens or hundreds of thousands of
computers to provide access to data and other resources that they collectively store and manage.
Send-omission
A process completes a send operation but the message is not put in its outgoing message buffer.
Receive-omission
A message is put in a process’s incoming message buffer, but that process does not receive it.
Arbitrary
Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times or
commit omissions; a process may stop or take an incorrect step.
Validity
Any message in the outgoing message buffer is eventually delivered to the incoming message buffer.
Integrity
The message received is identical to one sent, and no messages are delivered twice.
Chapter (3)
Application Layer
Protocols at this level are designed to meet the communication requirements of specific applications, often
defining the interface to a service. Examples: HTTP, FTP
Presentation Layer
Protocols at this level transmit data in a network representation that is independent of the representations
used in individual computers, which may differ. Encryption is also performed in this layer, if required.
Examples: TLS security, CORBA data representation
Transport Layer
This is the lowest level at which messages (rather than packets) are handled. Messages are addressed to
communication ports attached to processes. Protocols in this layer may be connection-oriented or
connectionless. Examples: TCP, UDP
UDP Features
UDP is almost a transport-level replica of IP. A UDP datagram is encapsulated inside an IP packet. It has a
short header that includes the source and destination port numbers.
TCP Features
It provides reliable delivery of arbitrarily long sequences of bytes via a stream-based programming
abstraction. TCP is connection-oriented. Before any data is transferred, the sending and receiving processes
must cooperate in the establishment of a bidirectional communication channel.
TCP layer includes additional mechanisms to meet reliability guarantees.
Retransmission
The sender records the sequence numbers of the segments that it sends. When it receives an
acknowledgement, it notes that the segments were successfully received, and it may then delete them from
its outgoing buffers. If any segment is not acknowledged within a specified timeout, the sender retransmits it.
Buffering
The incoming buffer at the receiver is used to balance the flow between the sender and the receiver. If the
receiving process issues receive operations more slowly than the sender issues send operations, the quantity
of data in the buffer will grow. Usually it is extracted from the buffer before it becomes full, but ultimately
the buffer may overflow, and when that happens incoming segments are simply dropped without recording
their arrival. Their arrival is therefore not acknowledged and the sender is obliged to retransmit them.
Chapter (4)
Asynchronous Communication
In the asynchronous form of communication, the use of the send operation is non-blocking in that the
sending process is allowed to proceed as soon as the message has been copied to a local buffer, and the
transmission of the message proceeds in parallel with the sending process. The receive operation can have
blocking and non-blocking variants. In the non-blocking variant, the receiving process proceeds with its
program after issuing a receive operation, which provides a buffer to be filled in the background. In the
blocking variant, whenever a receive is issued by a process (or thread), it blocks until a message arrives.
Marshalling and Unmarshalling
Marshalling is the process of taking a collection of data items and assembling them into a form suitable for
transmission in a message. Unmarshalling is the process of disassembling them on arrival to produce an
equivalent collection of data items at the destination. Thus marshalling consists of the translation of
structured data items and primitive values into an external data representation. Similarly, unmarshalling
consists of the generation of primitive values from their external data representation and the rebuilding of
the data structures.
Chapter (5)
RPC (Remote Procedure Calls)
RPC aimed to make remote procedure calls as much like local procedure calls as possible, with no
distinction in syntax between a local and a remote procedure call.
RMI (Remote Method Invocation)
Remote method invocation (RMI) is closely related to RPC but extended into the world of distributed
objects. In RMI, a calling object can invoke a method in a potentially remote object. As with RPC, the
underlying details are generally hidden from the user.
The commonalities between RMI and RPC are as follows:
- They both support programming with interfaces.
- They are both typically constructed on top of request-reply protocols.
- They both offer a similar level of transparency.
Chapter (7)
Difference between network operating systems and distributed operating systems
Network Operating Systems
Both UNIX and Windows are examples of network operating systems. They have a networking capability
built into them and so can be used to access remote resources. There are multiple system images, one per
node. A user can remotely log into another computer, using ssh.
Distributed Operating Systems
There is a single system image. The operating system has control over all the nodes in the system.
Execution Environment
An execution environment primarily consists of:
- an address space
- thread synchronization and communication resources
- higher-level resources such as open files and windows
The central aim of having multiple threads
The central aim of having multiple threads of execution is to maximize the degree of concurrent execution
between operations, thus enabling the overlap of computation with input and output, and enabling
concurrent processing on multiprocessors. For example, one thread can process a client's request while a
second thread servicing another request waits for a disk access to complete.
Server Threading Architectures
The thread-per-connection architecture associates a thread with each connection. The server
creates a new worker thread when a client makes a connection and destroys the thread when the client closes
the connection. In between, the client may make many requests over the connection, targeted at one or more
remote objects.
The thread-per-object architecture associates a thread with each remote object. An I/O thread
receives requests and queues them for the workers, but this time there is a per-object queue.
In each of these last two architectures the server benefits from lower thread-management overheads
compared with the thread-per-request architecture. Their disadvantage is that clients may be delayed while a
worker thread has several outstanding requests but another thread has no work to perform.
MCQ
Ubiquitous computing
Ubiquitous computing is the harnessing of many small, cheap computational devices that are present in
users’ physical environments.
Webcasting
Webcasting is an application of distributed multimedia technology. It is the ability to broadcast continuous
media, typically audio or video, over the Internet.
Threads can be created and destroyed dynamically, as needed.
Fail-stop: Process halts and remains halted. Other processes may detect this state.
Crash: Process halts and remains halted. Other processes may not be able to detect this state.
client → stub (marshalling)
server → skeleton (unmarshalling)
Parallel AA
Solution of Parallel Computing
To reduce the processing time of uniprocessor computer
What is Parallel Computer?
- A computer with many processing units or processors.
- Breaks a given problem into a number of sub problems to be solved.
- Solve all sub problems simultaneously each on a different processor.
Why need Parallel Computers?
- Process vast amounts of data and a large number of calculations quickly.
- Remove part like one component is waiting to receive some input from another one in sequential process.
- Reduce computation time significantly by performing simultaneously the several operations.
Strength and Weakness of Parallel Computers
Strength
- Large Amount of Data
- Fast Processing
- Time Consuming
Weakness
- More Processors/Resources
Briefly explain Four Classes Models of computation.
Four Classes Models of computation
SISD: Single Instruction stream, Single Data stream
MISD: Multiple Instruction stream, Single Data stream
SIMD: Single Instruction stream, Multiple Data stream
MIMD: Multiple Instruction stream, Multiple Data stream
Single Instruction Stream, Single Data Stream (SISD)
- A computer consists of a single processing unit receiving a single stream of instructions that operate on a
single stream of data.
Example: sum of n consecutive numbers
Multiple Instruction Stream, Single Data Stream (MISD)
- N processors each with its own control unit share a common memory unit where data reside.
- N streams of instructions and one stream of data.
Example: z prime number
Single Instruction Stream, Multiple Data Stream (SIMD)
- Each of the N processors processes its own local memory where it can store both programs and data.
- N data streams, one per processor.
Example: merging two sequences
Multiple Instruction Stream, Multiple Data Stream (MIMD)
- Computers share a common memory are referred to as multiprocessors.
- Computers share using an interconnection network are known as multicomputer or distributed systems.
- N processors, N streams of instructions, and N streams of data.
Example: (a+b)*(c-d)/(e%f)
Explain Shared Memory (SM) SIMD Computers.
- Allows all processors to gain access to the shared memory simultaneously if the memory locations that
they are trying to read from or write into are different.
- Can be further divided into four subclasses according to whether two or more processors can gain access to
the same memory location simultaneously.
1. Exclusive-Read, Exclusive-Write (EREW) SM SIMD Computer
2. Concurrent-Read, Exclusive-Write (CREW) SM SIMD Computer
3. Exclusive-Read, Concurrent-Write (ERCW) SM SIMD Computer
4. Concurrent-Read, Concurrent-Write (CRCW) SM SIMD Computer
Four Subclasses of SM SIMD Computers
EREW (Exclusive-Read, Exclusive-Write)
- Access to memory locations is exclusive.
- No two processors are allowed simultaneously to read from or write into the same memory location.
CREW (Concurrent-Read, Exclusive-Write)
- Multiple processors are allowed to read from the same memory location.
- No two processors are allowed to write into the same location simultaneously.
ERCW (Exclusive-Read, Concurrent-Write)
- Multiple processors are allowed to write into the same memory location but read accesses are exclusive.
CRCW (Concurrent-Read, Concurrent-Write)
- Both multiple-read and multiple-write privileges are granted.
Different networks in SIMD computers
1. Fully Interconnected Network
2. Mesh Network (or) Two-dimensional Array
3. Tree Connection
4. Shuffle Connection
5. Cube Connection
Fully Interconnected Network
All processors can be busy communicating all the time in fully connected network.
Basic criteria
When analyzing parallel algorithms, the basic criteria are running time, number of processors used, and cost.