2.6 Major Design Issues
Download
Report
Transcript 2.6 Major Design Issues
Shuman Guo
CSc 8320 Advanced Operating Systems
Outlines
Design & Implementation Issues
Object Models and Naming Schemes
Distributed Coordination
Interprocess Communication
Distributed Resources
Fault Tolerance and Security
Summary
References
A distributed system consists of three
major components:
Coordination of distributed processes
management of distributed resources
implementation of distributed algorithms
These components may be unreliable.
Thus raise the design and implementation
issues, in particular how to support
transparency.
Design & Implementation Issues
Object Models and Naming Schemes
Distributed Coordination
Interprocess Communication
Distributed Resources
Fault Tolerance and Security
Object Models and Naming Schemes [1]
Objects in a computer system :
processes, data files, memory, devices, processors,
and networks.
Objects are encapsulated in servers
process servers, file servers, memory servers
A client is a null server that accesses object servers.
Cont’d
Three possible ways to identify a server
Identification by name (name server)
Identification by either physical or logical address
(network server)
Identification by service that the servers provide
Distributed Coordination [1]
Processes require coordination to achieve
synchronization
Types of synchronization:
Barrier synchronization
Condition coordination
Mutual exclusion
Types of Synchronization
Barrier synchronization
Process must reach a common synchronization point before
they can continue.
Condition coordination
A process must wait for a condition that will be set
asynchronously by other interacting processes to maintain
some ordering of execution.
Mutual exclusion
Concurrent processes must have mutual exclusion when
accessing a critical shared resource.
Example: Logical Clocks
Deadlock Handling[5]
Deadlock handling is a major process
coordination tool for building distributed
services.
Four conditions must hold for deadlock to
occur:
Exclusive use
Hold and wait.
No preemption
Cyclical wait
Deadlock Cont’d
The problem of deadlocks can be handled in
following ways
Prevention
Ensure that deadlock is not possible.
Avoidance
require decisions by the system while it is running in
order to insure that deadlocks will not occur
Detection
When detected, decide which process to rollback or
abnormally terminate.
Deadlock Prevention
Schemes that guarantee the deadlocks can never
happen because of the way the system is
structured.
One of the four conditions is prevented, thus
preventing deadlocks.
For example, to impose an order on the resources
and require processes to request resources in
increasing order. This prevents cyclical wait and
thus makes deadlocks impossible.
Interprocess Communication[1]
Lower level: Interprocess communication can
be accomplished by using simple message
passing primitives.
Higher level logical communication methods
provides the transparency:
Hide the physical details of message passing
Two important concepts :
The client/server model
Remote Procedure Call (RPC)
The Client/Server Model[1]
The client/ server model is a programming
example for structuring processes in distributed
systems.
logical communication
request
server
client
reply
kernel
actual communication
network
kernel
The RPC Model
[3]
The remote procedure call model is similar
to that of the local model:
The caller places arguments to a procedure in a
specific location (such as a result register).
The caller temporarily transfers control to the
procedure.
When the caller gains control again, it obtains the
results of the procedure from the specified location.
The caller then continues program execution.
RPC Cont’d
On the server side, a process is dormant
(inactive, sleeping)-- awaiting the arrival of a
call message. When one arrives, the server
process computes a reply that it then sends back
to the requesting client. After this, the server
process becomes dormant again.
How RPC works?
Basic network communication with Remote Procedure Call
Other Examples: (1)CORBA[4]
The Common Object Request Broker
Architecture (CORBA) is a standard defined by
the Object Management Group (OMG) that
enables software components written in multiple
computer languages and running on multiple
computers to work together.
CORBA defines commonly needed services
(such as transactions and security, events, time,
and other domain-specific interface models)
CORBA Cont’d
The diagram illustrates how the generated code is used within
the CORBA infrastructure:
Other Examples: (2) JAVA RMI
[4]
The Java Remote Method Invocation API , or Java
RMI is a Java application programming interface for
performing the equivalent of remote procedure calls
A typical implementation model of Java RMI using
Stub and Skeleton objects.
Distributed Resources[1]
Load Distribution
multiprocessor scheduling (Static)
load sharing (Dynamic)
Distributed shared memory
Distributed file systems
Load Distribution
Multiprocessor scheduling
Minimize communication overhead with efficient
scheduling.
Load sharing
Process migration strategy & mechanism
Distributed File Systems and
Distributed Shared Memory
Distributed file systems
Issues are based on a file point of view
Distributed shared memory
Issues are based on a process perception of the
system.
The common issues central to them:
Sharing and replication of data
Fault Tolerance and Security[1]
Security threats and failures are both
system faults.
The problem of failures can be alleviated if
there is redundancy in the system.
The system should transparently handle failures
or removal of machines, network links, and other
resources without loss of data or functionality.
This should hold true for both the system itself
and for its applications.
Security Cont’d
Security
Authentication -- clients and also servers and
messages must be authenticated.
Authorization-- access control has to be
performed across a physical network with
heterogeneous components under different
administrative units using different security models.
Security examples[4]
Extensible Authentication Protocol (EAP) is
a universal authentication framework
frequently used in wireless networks and P2P
connections
EAP is not a wire protocol; instead it only
defines message formats.
More Info about EAP
EAP Authentication Protocols for
WLANs [6]
The relationship between 802.1X and
EAP(introduction)[7]
EAP Methods for 802.11 Wireless LAN
Security[8]
Summary
[1]
Given the system architectures, we summarized
the important design and implementation issues.
These issues include object models and naming
schemes, interprocess communication and
synchronization, data sharing and replication,
and failure and recovery.
These problems are unique to distributed
systems.
References
[1] Randy Chow & Theodore Johnson, 1997,“Distributed
Operating Systems & Algorithms”, (Addison-Wesley), p.
45 to 50, 61 to 63.
[2] Suresh Sridharan, 2006, “Distributed Operating Systems “,
(University of Wisconsin, Madison).
http://pages.cs.wisc.edu/~dusseau/Classes/CS739/Writeups
/Survey.pdf
[3]http://h30097.www3.hp.com/docs/base_doc/DOCUMENTA
TION/HTML/AA-Q0R5B-TET1_html/onc-rpc2.html
[4]Wikipedia. http://en.wikipedia.org/wiki
[5] JoAnne L. Holliday and Amr El Abbadi, ”Distributed
Deadlock Detection”,
http://www.cse.scu.edu/~jholliday/dd_9_16.htm
References
[6]Krishna Sankar, Andrew Balinsky, Darrin Miller, Sri
Sundaralingam. (Feb 18, 2005)” EAP Authentication
Protocols for WLANs”.
http://www.ciscopress.com/articles/article.asp?p=369223
&seqNum=3&rl=1
[7] “802.1X Port-Based Authentication HOWTO”
http://tldp.org/HOWTO/8021X-HOWTO/intro.html
[8]” EAP Methods for 802.11 Wireless LAN Security”
http://www.iec.org/online/tutorials/eap_methods/topic01.h
tml
Any Questions?