Outline • Review of Classical Operating Systems • Distributed Systems - continued

advertisement
Outline
• Review of Classical Operating Systems - continued
• Distributed Systems
5/29/2016
COP5611
1
Announcement
• The class email list
– I created a class email list using ACNS’ service
– If you do not receive an email from me this morning, you need to
send me an email to add your email address to the list
• Materials to make up
– In general, the technical issues in distributed operating systems are
different to the ones in classical operating systems
– For this class, the following undergraduate topics may be helpful
•
•
•
•
•
5/29/2016
Mutual exclusion (Process synchronization)
Deadlock detection
File systems
Memory management
Scheduling
COP5611
2
Operating System
• An operating system is a layer of software on
a bare machine that performs two basic
functions
– Resource management
• To manage resources so that they are used in an
efficient and fair manner
– User friendliness
5/29/2016
COP5611
3
Distributed Systems
• A distributed system is a collection of
independent computers that appears to its
users as a single coherent system
– Independent computers mean that they do not
share memory or clock
– The computers communicate with each other by
exchanging messages over a communication
network
5/29/2016
COP5611
4
Distributed Systems – cont.
5/29/2016
COP5611
5
Distributed Systems – cont.
• Is each of the following systems a distributed
system according to our definition?
– Workstations at the Computer Science
department
– World wide web
5/29/2016
COP5611
6
Distributed Systems – cont.
• Motivations
– The availability of powerful microprocessors
– Significant advances in communication
technology
– A group of people working together need to share
data and expensive resources
5/29/2016
COP5611
7
Distributed Systems – cont.
• Advantages
– The computing power of a group of cheap
workstations can be enormous
• Decisive price/performance advantage over traditional
time-sharing systems
–
–
–
–
Resource sharing
Enhanced performance
Improved reliability and availability
Modular expandability
5/29/2016
COP5611
8
Distributed System Architecture
• The minicomputer model
– Consists of several minicomputers, each supports
multiple users and provides access to remote
resources
• The workstation model
– Consists of a number of workstations, each
supports a single user in general
• The processor model
– The ratio of the number of processors to the
number of users is greater than one
5/29/2016
COP5611
9
Distributed System Architecture – cont.
• The classification given above does not
consider the underlying hardware
– Distributed systems are often classified based on
the hardware
• Multiprocessor systems
• Homogenous multi-computer systems
• Heterogeneous multi-computer systems
5/29/2016
COP5611
10
Basic Distributed Systems
1.6
5/29/2016
COP5611
11
Multiprocessor Systems – cont.
• Multiprocessor systems are often divided into
two categories
– In tightly coupled systems, all processors share the
same memory address space and all processors can
directly access a global main memory
– In loosely coupled systems, not only is the main
memory partitioned and attached to processors, but
each processor has its own address space
• A processor cannot directly access memory attached to
other processors
5/29/2016
COP5611
12
Multiprocessor Systems – cont.
• Based on the vicinity and accessibility of the
main memory to the processors, there are
three main types of multiprocessor system
architectures
– UMA – Uniform memory access
– NUMA – Non-uniform memory access
– NORMA – no remote memory access
5/29/2016
COP5611
13
Multiprocessor Systems – cont.
• A bus-based multiprocessor system
5/29/2016
COP5611
14
Multiprocessors Systems – cont.
a) A crossbar switch
b) An omega switching network
5/29/2016
COP5611
15
Homogeneous Multicomputer Systems
• Compared to multiprocessor systems,
building multicomputer systems is relatively
easy
– Each CPU has a direct connection to its own
local memory
– The problem is how the CPUs communicate with
each other
• There are kinds of multi-computer systems
– Bus-based / switch-based
5/29/2016
COP5611
16
Bus-Based Multicomputer Systems
5/29/2016
COP5611
17
Homogeneous Multicomputer Systems – cont.
a) Grid
b) Hypercube
1-9
5/29/2016
COP5611
18
Heterogeneous Multicomputer Systems
• Most of the distributed systems are built on
top of a heterogeneous multicomputer
systems
– Computers can vary widely
• Some of them can be even multiprocessor or
homogeneous multicomputer systems
– The interconnection network may be highly
heterogeneous as well
5/29/2016
COP5611
19
Distributed Operating Systems
• Hardware for distributed systems is
important, but the software largely
determines what a distributed system looks
like to a user
• Distributed operating systems are much like
the traditional operating systems
– Resource management
– User friendliness
– The key concept is transparency
5/29/2016
COP5611
20
Distributed Operating Systems – cont.
• In a truly distributed operating system, the
user views the system as a virtual
uniprocessor system even though physically
it consists of multiple computers
– In other words, the use of multiple computers
and accessing remote data and resources should
be invisible to the user
5/29/2016
COP5611
21
Distributed Operating Systems – cont.
Transparency
Description
Access
Hide differences in data representation and how a resource is
accessed
Location
Hide where a resource is located
Migration
Hide that a resource may move to another location
Relocation
Hide that a resource may be moved to another location while
in use
Replication
Hide that a resource may be shared by several competitive
users
Concurrency
Hide that a resource may be shared by several competitive
users
Failure
Hide the failure and recovery of a resource
Persistence
Hide whether a (software) resource is in memory or on disk
5/29/2016
COP5611
22
Distributed Operating Systems – cont.
• Degree of transparency and performance
– There is a trade-off between a high degree of
transparency and the performance of the system
• Three categories
– Distributed Operating System (DOS)
– Network Operating System (NOS)
– Middleware
5/29/2016
COP5611
23
Overview of Different Kinds of Distributed Systems
System
Description
Main Goal
DOS
Tightly-coupled operating system for multiprocessors and homogeneous
multicomputers
Hide and manage
hardware
resources
NOS
Loosely-coupled operating system for
heterogeneous multicomputers (LAN and
WAN)
Offer local
services to remote
clients
Middleware
Additional layer atop of NOS implementing
general-purpose services
Provide
distribution
transparency
5/29/2016
COP5611
24
Uniprocessor Operating Systems
• Separating applications from operating system
code through a microkernel.
1.11
5/29/2016
COP5611
25
Multicomputer Operating Systems
• General structure of a multicomputer operating system
5/29/2016
COP5611
26
Distributed Shared Memory Systems
a)
b)
c)
Pages of address
space distributed
among four
machines
Situation after
CPU 1 references
page 10
Situation if page
10 is read only
and replication is
used
5/29/2016
COP5611
27
Network Operating System
1-19
5/29/2016
COP5611
28
Network Operating System – cont.
• Two clients and a server in a network operating system.
5/29/2016
COP5611
29
Network Operating System – cont.
• Different clients may mount the servers in different places.
5/29/2016
COP5611
30
Positioning Middleware
• General structure of a distributed system as middleware.
5/29/2016
COP5611
31
Middleware and Openness
1.23
• In an open middleware-based distributed system, the protocols
used by each middleware layer should be the same, as well as
the interfaces they offer to applications.
5/29/2016
COP5611
32
The Global Architecture of CORBA
5/29/2016
COP5611
33
Object Model in CORBA
• The general organization of a CORBA system.
5/29/2016
COP5611
34
CORBA Services
Service
Description
Collection
Facilities for grouping objects into lists, queue, sets, etc.
Query
Facilities for querying collections of objects in a declarative manner
Concurrency
Facilities to allow concurrent access to shared objects
Transaction
Flat and nested transactions on method calls over multiple objects
Event
Facilities for asynchronous communication through events
Notification
Advanced facilities for event-based asynchronous communication
Externalization
Facilities for marshaling and unmarshaling of objects
Life cycle
Facilities for creation, deletion, copying, and moving of objects
Licensing
Facilities for attaching a license to an object
Naming
Facilities for systemwide name of objects
Property
Facilities for associating (attribute, value) pairs with objects
Trading
Facilities to publish and find the services on object has to offer
Persistence
Facilities for persistently storing objects
Relationship
Facilities for expressing relationships between objects
Security
Mechanisms for secure channels, authorization, and auditing
Time
Provides the current time within specified error margins
5/29/2016
COP5611
35
Comparison Between Systems
Distributed OS
Multiproc.
Multicomp.
Network
OS
Degree of transparency
Very High
High
Low
High
Same OS on all nodes
Yes
Yes
No
No
Number of copies of OS
1
N
N
N
Basis for
communication
Shared
memory
Messages
Files
Model specific
Resource management
Global,
central
Global,
distributed
Per node
Per node
Scalability
No
Moderately
Yes
Varies
Openness
Closed
Closed
Open
Open
Item
5/29/2016
COP5611
Middlewarebased OS
36
Issues in Distributed Operating Systems
• Absence of global knowledge
– In a distributed system, due to the unavailability
of a global memory and a global clock and due to
unpredictable message delays, it is practically
impossible to for a computer to collect up-to-date
information about the global state of the
distributed system
– Therefore a fundamental problem is to develop
efficient techniques to implement a decentralized
system wide control
– Another problem is how to order all the events
5/29/2016
COP5611
37
Issues in Distributed Operating Systems – cont.
• Naming
– Plays an important role in achieving location
transparency
– A name service maps a logical name into a
physical address by making use of a table lookup,
an algorithm, or a combination of both
– In distributed systems, the tables may be
replicated and stored at many places
• Consider naming in a distributed file system
5/29/2016
COP5611
38
Issues in Distributed Operating Systems – cont.
• Scalability
– Systems generally grow with time, especially
distributed systems
– Scalability requires that the growth should not
result in system unavailability or degraded
performance
– This puts additional constraints on design
approaches
5/29/2016
COP5611
39
Scalability – cont.
• Consider the scalability of centralized design
approaches
Concept
Example
Centralized services
A single server for all users
Centralized data
A single on-line telephone book
Centralized algorithms
Doing routing based on complete information
5/29/2016
COP5611
40
Scaling Techniques
The difference between letting:
a) a server or
b) a client check forms as they are being filled
5/29/2016
COP5611
41
Scalability – cont.
An example of dividing the DNS name space into zones.
5/29/2016
COP5611
42
Issues in Distributed Operating Systems – cont.
• Compatibility
– Refers to the interoperability among the
resources in a system
– Three different levels
• Binary level
– All processors execute the same binary instruction repertoire
– Virtual binary level
• Execution level
– Same source code can be compiled and executed properly
• Protocol level
5/29/2016
COP5611
43
Issues in Distributed Operating Systems – cont.
• Process synchronization
– The synchronization of processes in distributed
systems is difficult because of the unavailability
of shared memory
• It needs to synchronize processes running on different
computers when they try to concurrently access a
shared resource
• This is the mutual exclusion problem as in classical
operating systems
5/29/2016
COP5611
44
Issues in Distributed Operating Systems – cont.
• Resource management
– Resource management needs to make both local
and remote resources available to uses in an
effective manner
– Data migration
• Distributed file system
• Distributed shared memory
– Computation migration
• Remote procedure call
– Distributed scheduling
5/29/2016
COP5611
45
Issues in Distributed Operating Systems – cont.
• Security and protection
– The same two issues as in classical operating
systems need to be considered
• Authentication
• Authorization
5/29/2016
COP5611
46
Issues in Distributed Operating Systems – cont.
• Structuring
– The distributed operating system requires some
additional constraints on the structure of the
underlying operating system
– The collective kernel structure
• An operating system is structured as a collection of
processes that are largely independent of each other
– Object-oriented operating system
• The operating system’s services are implemented as
objects
5/29/2016
COP5611
47
The Client-Server Model
• The client-server model provides one
organization for a distributed system
– The processes are organized into clients and
servers
– Clients request services from servers which
provide services
• A server is a process implementing a specific service
• A client is a process that requests a service from a
server by sending it a request and subsequently
waiting for the server’s reply
5/29/2016
COP5611
48
Clients and Servers
• General interaction between a client and a server.
5/29/2016
COP5611
49
An Example Client and Server (1)
5/29/2016
COP5611
50
An Example Client and Server (2)
• A sample server.
5/29/2016
COP5611
51
An Example Client and Server (3)
• A client using the server to copy a file.
5/29/2016
COP5611
52
Application Layering
• A main issue in the client-server model is
there is no clear distinction between a client
and a server
• Especially in the context of databases, the
entire system is divided into three levels
– The user-interface level
– The processing level
– The data level
5/29/2016
COP5611
53
Processing Level
• The general organization of an Internet
search engine into three different layers
1-28
5/29/2016
COP5611
54
Multitiered Architectures
• Plausible client-server organizations
5/29/2016
COP5611
55
Multitiered Architectures – cont.
• An example of a server acting as a client.
5/29/2016
COP5611
56
Modern Architectures
• An example of horizontal distribution of a Web service.
5/29/2016
COP5611
57
Summary
–
–
–
–
Definition of a distributed system
Motivations
Distributed system architectures
Distributed operating systems
• DOS / NOS / Middleware
– Technical issues in a distributed operating system
– The client-server model
• Next time
– Communication in distributed systems
5/29/2016
COP5611
58
Download