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?