Distributed Operating System
Distributed Operating System
Outline
Introductory material
Distributed IPC
Distributed file systems Security for distributed systems
Why Bother?
Economics of hardware
Local autonomy
Resource sharing Effective use of networks
Reliability
Economics of Hardware
Cheaper to build many small machines than one
power
Local Autonomy
Single user machines better suited for most
Resource Sharing
But users need to share resources
Network Usage
Users often want to communicate With other local users And to make data available to world System needs to support user interactions Generally demands cooperation among multiple
machines
Reliability
Failure of a single machine no longer halts everyone
systems resources Ability to apply fault tolerance for important tasks at a high architectural level
task
malloc()?
autonomy
Security
Security problems much trickier when no centralized
control Data communications more subject to eavedropping Physical security measures typically infeasible for many problems In very wide distributed systems, very tricky problems
nontrivial
E.g., whats the difference between a slow network, a failed network, and a crashed machine?
Scaling Issues
Distributed systems control much larger pools of
resources So algorithms that scale well become much more important Scaling puts severe limits on close cooperation
Heterogeneity Problems
Most distributed systems must address problems of
differing hardware and software Problems with data formats, executable formats Problems with software versioning Problems with different OSes
Resource Sharing
Resource sharing helps with some of the problems
Motivations for resource sharing Information exchange Load distribution Computational parallelism The fundamental distributed system problem
Interprocess communications
File systems Security
Device management
SISD
SIMD
MISD
MIMD
remote access facilities Distributed OSes control a collection of machines Not a hard and fast distinction
Network OS Diagram
Network OS
Network OS Network OS
Network OS
Network OS
Distributed OS Diagram
Network OS
Distributed Operating system
NODE 2
Network OS
NODE 4
Network OS
NODE 3
Network OS
Network OS model
But many modern systems have distributed OS-
like capabilities
And they also support network OS operations Like rlogin and remote shell
Low delay
Shared by modest number of machines Covers modest geographical area
backplane
Longer delays
Shared by large numbers of machines Covers very wide area
Communication Protocols
Well defined methods of intermachine data exchange
control it So all machines involved can understand data exchange Fundamental choice
situation General protocols simplify everything Special purpose protocols may perform better
Process interaction
Transparency Heterogeneity
Autonomy
Consistency and transactions
How do processes interact in a distributed system? Pipe model Uninterpreted message model Client/server model Peer-to-peer model Integrated model RPC model Shared memory model
Pipe Model
Processes interact through pipes Named or unnamed Local or remote
among servers Examples: Name servers, IPC servers, file servers, WWW servers, etc.
Peer-to-Peer Model
A process serves as a client and a server
peers
RPC Model
Processes communicate through RPC Client/server often built on top of this But this model makes lower level more explicit
interprocess communication mechanism Emulating local shared memory as closely as possible Possibly without substantial hardware support
Transparency
Hiding machine boundaries From both users and system itself Transparent systems much easier to work with Providing at a low level has strong benefits
Kinds of Transparency
Data transparency
Control transparency
Execution transparency Performance transparency
Data Transparency
Allow transparent access to remote data
remote resources Benefit: user doesnt need to worry whats local and whats not NFS, RPC are process access transparent WWW is not process access transparent
Location Transparency
Where resources are located is invisible
Name Transparency
A given name has the same meaning throughout the
distributed system Benefit: same name gets to same resource from anywhere Fully qualified WWW names are name transparent /tmp in most distributed FSes is not
Control Transparency
Control of system resources is transparent to its
users (e.g., remote processes controlled like local) Benefit: easier control of distributed applications Locus provides control transparency on processes Typical UNIX network of workstation does not provide it on processes
Execution Transparency
Allows processes to execute on any machine in
system (and more, perhaps) Benefit: easier handling of distributed applications, load balancing Java is execution transparent (not load balancing, though) NFS provides no execution transparency
Performance Transparency
Users dont notice difference when something must
be done remotely Benefit: if achievable, frees user of worrying about costs of going remote NFS has high degree of performance transparency WWW often does not
Benefits of Transparency
Easier software development
In programming languages
In operating system itself
Heterogeneity
How transparent should heterogeneous networks
be? And at what cost? Generally, how does the network deal with heterogeneity?
Types of Heterogeneity
Computer heterogeneity
Network heterogeneity
Operating system heterogeneity
Computer Heterogeneity
Handling different types of computers
homogeneous
Network Heterogeneity
Handling different types of networks E.g., Ethernet vs. Appletalk Dominance of IP making network interoperability a
OS Heterogeneity
Different OSes are not generally prepared to work
together Prevents easy load sharing, migration of tasks Microsoft wants to crush this form of heterogeneity