Shuman Guo CSc 8320 Advanced Operating Systems. Outlines Design & Implementation Issues Object...

31
2.6 Major Design Issues Shuman Guo CSc 8320 Advanced Operating Systems

Transcript of Shuman Guo CSc 8320 Advanced Operating Systems. Outlines Design & Implementation Issues Object...

2.6 Major Design Issues

Shuman Guo

CSc 8320 Advanced Operating Systems

Outlines

Design & Implementation IssuesObject Models and Naming SchemesDistributed CoordinationInterprocess CommunicationDistributed ResourcesFault Tolerance and Security

SummaryReferences

A distributed system consists of three major components:Coordination of distributed processesmanagement of distributed resourcesimplementation 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 SchemesDistributed CoordinationInterprocess CommunicationDistributed ResourcesFault 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 serversA client is a null server that accesses object servers.

Cont’d

Three possible ways to identify a serverIdentification 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 synchronizationCondition coordinationMutual exclusion

Types of SynchronizationBarrier synchronization

Process must reach a common synchronization point before they can continue.

Condition coordinationA process must wait for a condition that will be set

asynchronously by other interacting processes to maintain some ordering of execution.

Mutual exclusionConcurrent 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 useHold and wait.No preemption Cyclical wait

Deadlock Cont’dThe problem of deadlocks can be handled in

following waysPrevention

Ensure that deadlock is not possible.

Avoidancerequire decisions by the system while it is running in order to

insure that deadlocks will not occurDetection

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 passingTwo 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’dThe 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 memoryDistributed file systems

Load Distribution

Multiprocessor schedulingMinimize communication overhead with efficient

scheduling.

Load sharingProcess migration strategy & mechanism

Distributed File Systems and Distributed Shared Memory

Distributed file systemsIssues 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

Any Questions?