40
Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

Embed Size (px)

Citation preview

Page 1: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

Dr. Kalpakis

CMSC621 Advanced Operating Systems

Introduction

Page 2: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

2

Distributed Systems

The development of low cost powerful microprocessors together with the invention of high speed networks enable us to construct computer systems by connecting a large number of computers

A distributed system is a collection of independent computers that appears to its users as a single coherent system.

Page 3: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

3

Distributed Systems

Often a distributed system is organized as a middleware.

1.1

Note that the middleware layer extends over multiple machines.

Page 4: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

4

Goals of distributed systems

When should we build a distributed system?

Make resources easily accessible

Provide distribution transparency

Should be open

Be scalable

Page 5: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

5

Forms of transparency

Transparency Description

AccessHide 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

RelocationHide that a resource may be moved to another location while in use

ReplicationHide that a resource may be shared by several competitive users

ConcurrencyHide 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

Sometimes, due to eg performance/comprehensibility, we prefer to expose distribution rather than hide it

Page 6: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

6

Openness

An open distributed system is a system that offers services

according to standard service syntax/semantic descriptions

(interfaces)

Interoperability

Portability

Extensibility

Separation of policy and mechanism

Page 7: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

7

Scalability

Scalability with respect to

Size

Geographic distribution

Administrative domains

Page 8: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

8

Scalability Limitations

Limitations to size scalability due to centralized solutions

- Limitations to geographic scalability due to assumptions on

communications (synchronous vs asynchronous)

- Limitations to administrative scalability due to conflicting usage,

management, and security policies

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

Page 9: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

9

Scaling techniques

Use asynchronous communication

Move computation from the servers to the clients

Use distribution, which is the splitting of a component into

smaller parts and spread across the system

Use replication

Need to handle replica consistency

Page 10: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

10

Example scaling techniques: Web forms

Page 11: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

11

Example scaling techniques: DNS

Page 12: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

12

Pitfalls in developing distributed systems

Peter Deutch identifies false assumptions made when building

distributed systems

The network is reliable

The network is secure

The network is homogeneous

The topology does not change

Latency is zero

Bandwidth is infinite

Transport cost is zero

There is one administrator

Page 13: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

13

Types of distributed systems

Cluster computing systemsBeowulf and MOSIX clusters

Grid computing systems4-layered architecture (fabric, connectivity, resource, and collective layers)

Transaction processing monitors

Pervasive systems

Systems with small, battery-powered, mobile, network capable

embedded devices

Home systems

Body-Area networks

Sensor networks (in-network data processing)

Page 14: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

14

Hardware Concepts

1.6

Different basic organizations and memories in distributed computer systems

Page 15: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

15

Multiprocessors

A bus-based multiprocessor.

1.7

Page 16: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

16

Multiprocessors

a) A crossbar switchb) An omega switching network (shuffle exchange network)

1.8

Page 17: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

17

Homogeneous Multicomputer Systems

a) Gridb) Hypercube

1-9

Page 18: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

18

Software Concepts

An overview of DOS (Distributed Operating Systems)NOS (Network Operating Systems)Middleware

System Description Main Goal

DOSTightly-coupled operating system for multi-processors and homogeneous multicomputers

Hide and manage hardware resources

NOSLoosely-coupled operating system for heterogeneous multicomputers (LAN and WAN)

Offer local services to remote clients

MiddlewareAdditional layer atop of NOS implementing general-purpose services

Provide distribution transparency

Page 19: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

19

Uniprocessor Operating Systems

Separating applications from operating system code through a microkernel.

1.11

Page 20: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

20

Multicomputer Operating Systems

General structure of a multicomputer operating system

1.14

Page 21: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

21

Multicomputer Operating Systems: communication

Alternatives for blocking and buffering in message passing.

1.15

Page 22: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

22

Multicomputer Operating Systems

Relation between blocking, buffering, and reliable communications.

Synchronization point Send bufferReliable comm. guaranteed?

Block sender until buffer not full Yes Not necessary

Block sender until message sent No Not necessary

Block sender until message received No Necessary

Block sender until message delivered No Necessary

Page 23: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

23

Distributed Shared Memory Systems

a) Pages of address space

distributed among four

machines

b) Situation after CPU 1

references page 10

c) Situation if page 10 is read

only and replication is used

Page 24: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

24

Distributed Shared Memory Systems

False sharing of a page between two independent processes.

1.18

Page 25: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

25

Network Operating System

General structure of a network operating system.

1-19

Page 26: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

26

Network Operating System

Two clients and a server in a network operating system.

1-20

Page 27: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

27

Network Operating System

Different clients may mount the servers in different places.

1.21

Page 28: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

28

Positioning Middleware

General structure of a distributed system as middleware.

1-22

Page 29: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

29

Middleware and Openness

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.

1.23

Page 30: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

30

Comparison between Systems

A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.

Item

Distributed OSNetwork OS

Middleware-based OSMultiproc

.Multicomp.

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 FilesModel specific

Resource management

Global, central

Global, distributed

Per node Per node

Scalability No Moderately Yes Varies

Openness Closed Closed Open Open

Page 31: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

31

System architectures

Architecture= components + connectors + configuration

Common architecturesLayered

Object-based

Data –centered

Event-based

Centralized architectures2-tier Client-server and application layering

Multi-tiered

Decentralized architecturesVertical and horizontal distribution

Peer-to-peer architectures (structured vs unstructured)

Hybrid architectures

Adaptive and self-managed systems

Page 32: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

32

Clients and Servers

General interaction between a client and a server.

1.25

Page 33: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

33

An Example Client and Server

The header.h file used by the client and server.

Page 34: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

34

An Example Client and Server

A sample server.

Page 35: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

35

An Example Client and Server

A client using the server to copy a file.

1-27 b

Page 36: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

36

Application layering example

The general organization of an Internet search engine into three

different layers

1-28

Page 37: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

37

Multitiered Architectures

Alternative client-server organizations (a) – (e).

1-29

Page 38: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

38

Multitiered Architectures

An example of a server acting as a client.in a 3-tiered architecture

1-30

Page 39: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

39

Modern Architectures

An example of horizontal distribution of a Web service.

1-31

Page 40: Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction

CMSC 621

40

Peer to Peer Systems

Structured P2P: Distributed Hash Tables

CHORD and CAN

Unstructured P2PRandom graphs: exchange of segments of partial views

Hybrid + Superpeers