2. Distributed Shared Memory:
It implements the shared memory model in distributed
systems, which have no physical shared memory.
The shared memory model provides a virtual address space
shared between all nodes.
Data moves between main memory and secondary memory
(within a node) and between main memories of different
nodes
2
3. Central Server Algo:
Central server maintains all shared data.
Read request: returns data item
Write request: updates data and returns acknowledgement
message.
3
Data
Access
Requests
Clients
4. Migration Algo:
Ship (migrate) entire data object (page, block) containing
data item to requesting location
Allow only one node to access a shared data at a time
4
Node i Node j
Data Access Request
Data Migration
5. Algorithms of DSM
Read Replication Algo:
Replicates data objects to multiple nodes.
Multiple nodes can have read access or one node write access
(multiple readers-one writer protocol).
After a write, all copies are invalidated or updated
5
Node i Node j
Data Access Request
Data Replication
6. Algorithms of DSM
Full Replication Algo:
Extension of read-replication algorithm
Multiple nodes can read and multiple nodes can write
(multiple-readers, multiple-writers protocol)
6
Write
Requests
Clients
Update
Multicast
7. Memory Coherence:
Memory coherence is a desirable condition in which
corresponding memory locations for each processing
element in a multi-core processor always contain the same
cached data.
Without memory coherence, programs can be adversely
affected.
7
8. Coherence Protocols:
Coherence protocols apply cache coherence in multiprocessor systems.
The intention is that two clients must never see different values for the
same shared data.
Protocols can also be classified as snoopy or directory-based.
Early systems used directory-based protocols where a directory would
keep a track of the data being shared and the sharers.
In snoopy protocols, the transaction requests (to read, write, or upgrade)
are sent out to all processors.
8
9. Distributed File System:
Naming & Naming Resolution:
Name refers to an object such as file or a directory.
Example: Home, Public, Documents, Movies etc.
Name space is a collection of names.
Name Resolution refers to the process of mapping a name to
an object that is physical.
9
10. Distributed File System:
Caches on Disk or Main Memory:
Main Memory:
Faster than disks.
Enables diskless workstations.
Disks:
Caches larger files
Good when local usage dominates
10
11. Distributed File System:
Writing Policy:
Write through -- reliable, but not cache for write.
delayed write:
delay the writes to the server
write on close:
not much difference from delay write for short opens.
for long open: less write but more susceptible to losing data
11
12. Distributed File System:
Availability:
Overcome the failure of servers or network links.
Replication - Maintain copies of files at different servers.
Scalability:
Adaptation of distributed systems to accommodate more users.
Usually done by adding more and/or faster processors.
Design components to be scalable!
12
13. Distributed File System:
Cache Consistency:
server-initiated: the server inform cache managers whenever the
data in the client caches become stale
client-initiated: the client make sure the cache is clean before
returning the data to the application
not allow caching when concurrent-write sharing occurs.
sequential-write sharing may also cause problems: a client
opens a files that has recently modified and closed by another
client
13
14. Distributed File System:
Semantics:
What a user wants? strict consistency.
Users can usually tolerate a certain degree of errors in file
handling -- no need to enforce strict consistency.
14
16. Architecture of Distributed system:
Presented on different platforms and several components can
cooperate with one another over a communication network.
There are several technology frameworks to support
distributed architectures, including .NET, J2EE, CORBA, .NET
Web services, AXIS Java.
16
17. Monolithic Kernel
Is an operating system is an operating
system architecture where the entire
operating system is working in kernel space.
It holds all privileges to access input/output
devices, memory, hardware interrupts and
CPU stack.
Tends to be larger than other kernel.
17
18. Communication Primitives:
High level construct help the program in using underlying
communication network
Two types of communication primitive
Message passing
Remote procedure calls
18
19. Message passing:
SEND – Message and its destination
RECEIVER – source of message and buffer for storing the
message
Client server computing model:
Client sent message to server and waits
Server replies after computing
19
20. Remote procedure call
RPC is a protocol that one program can use to request a
service from a program located in other computer in a
network.
RPC use client server model
The main idea is to allow a local computer (client) to
remotely call procedure on a remote computer (server)
RPC is a interaction between a client and server
20
21. Message passing:
SEND – Message and its destination
RECEIVER – source of message and buffer for storing the
message
Client server computing model:
Client sent message to server and waits
Server replies after computing
21
22. Remote procedure call
RPC is a protocol that one program can use to request a
service from a program located in other computer in a
network.
RPC use client server model
The main idea is to allow a local computer (client) to
remotely call procedure on a remote computer (server)
RPC is a interaction between a client and server
22
23. Synchronization mechanism in shared
memory
Shared Memory Synchronization. In sharing memory, a
portion of memory is mapped into the address space of one
or more processes.
No method of coordinating access is automatically provided,
so nothing prevents two processes from writing to
the shared memory at the same time in the same place.
23
24. Communication sequential process:
CSP, is a language for describing patterns of interaction. It is
supported by an elegant, mathematical theory, a set of proof
tools, and an extensive literature.
It is a member of the family of mathematical theories of
concurrency known as process algebras,
24
25. Axiomatic verification of parallel programs
A language for parallel programming, with a primitive
construct for synchronization and mutual exclusion, is
presented. Hoare's deductive system for proving partial
correctness of sequential programs is extended to include the
parallelism described by the language.
The proof method lends insight into how one should
understand and present parallel programs.
25
26. The sprite file system
Unix file system developed for diskless workstations with
large memories at UCB.
Considers memory as a huge cache of disk blocks. Memory is
shared between file system and VM.
Files are stored on servers. Servers have a large memory that
acts as a cache as well.
If a file is being written by more than 1 machine, client
caching is turned off -- all requests go to the server.
26
27. Apollo domain distributed file system
The Apollo DOMAIN® system is a fully operational
distributed computing environment for a network of personal
workstations and network servers.
Its distributed system focus was on a file system that
provided users of autonomous workstations with the same
ease of file sharing.
27
28. X-kernel
X-kernel is an experimental distributed operating system which
allows uniform access to resource on a nationwide internet.
Provide a uniform interface with which to access heterogenous
physical file system.
Two unique features:
Each user define her or his own private file system out of the
existing physical file system.
Logical directories with physical directories, identifies the type pf
the physical file system and identifies the server (host)
28