310 likes | 460 Views
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.
E N D
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.
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 waitand 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 reply actual communication network client server kernel 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/DOCUMENTATION/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.html