Top Banner
Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. [email protected] Mr. Colin Zhang [email protected] With Thanks to Prof. G. Coulouris, Prof. A.S. Tanenbaum and Prof. S.C Joo
34

Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. [email protected]@uic.edu.hk Mr. Colin Zhang.

Jan 17, 2016

Download

Documents

Loreen Blair
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

1

Distributed Systems : Operating System Support

Dr. Sunny Jeong. [email protected]. Colin Zhang [email protected]

With Thanks to Prof. G. Coulouris, Prof. A.S. Tanenbaum and Prof. S.C Joo

Page 2: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

2

Overview

Functionality of the Operating System (OS) resource management (CPU, memory, …)

Processes and Threads Similarities V.S. differences multi-threaded servers and clients

Implementation of... communication primitives Invocations

Page 3: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

3

Functionality of OS

Resource sharing CPU (single/multiprocessor machines)

concurrent processes/threads communication/synchronization primitives process scheduling

memory (static/dynamic allocation to programs) memory manager

file storage and devices file manager, printer driver, etc

OS kernel implements CPU and memory sharing abstracts hardware

Page 4: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

4

OS System layers with Middleware

Applications, services

Computer &

Platform

Middleware

OS: kernel,libraries & servers

network hardware

OS1

Computer & network hardware

Node 1 Node 2

Processes, threads,communication, ...

OS2Processes, threads,communication, ...

Page 5: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

5

Core OS functionality

Communication

manager

Thread manager Memory manager

Supervisor

Process manager

Page 6: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

6

Core OS components

Process manager creation and operations on processes (= address space+threads)

Threads manager threads creation, synchronization, scheduling

Communication manager communication between threads (sockets, semaphores)

in different processes(concurrency) on different computers(parallel)

Memory manager physical (RAM) and virtual (disk) memory

Supervisor hardware abstraction (dispatching of interrupts, exceptions, system call traps) control of memory managements and hardware cache

Page 7: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

7

Why middleware again...

Page 8: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

8

Why middleware again...

Network OS ex) UNIX, Windows NT network transparent access for remote files (NFS) no task/process scheduling across different nodes services

rlogin, telnet, ftp, WWW

Page 9: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

9

Why middleware again...ctd

Page 10: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

10

Why middleware again...ctd

Distributed OS (Amoeba, Mach, CHORUS, Sprite…etc) transparent process scheduling across nodes load balancing none in use widely: cost of switching OS too high, load balancing not always easy to achieve

Page 11: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

11

Why middleware again... ctd

NOS?

: DOS

NOS?

Distributed Operating System Services

Page 12: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

12

Why middleware again... ctd

Middleware built on top of different NOSs offers distributed resource sharing

via remote invocations Similar to functionalities of DOS possible

Page 13: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

13

Why middleware again... ctd

Page 14: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

14

Why middleware again... ctd

Page 15: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

15

DOS tasks

OS mechanisms are needed for middleware Encapsulation Protection illegitimate Concurrent control

Concurrent processing of client/server processes creation, execution, etc data encapsulation protection against illegal access

Implementation of invocation communication (parameter passing, local or remote) Scheduling of invoked operations

Page 16: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

16

Protection

Kernel complete access privileges to all physical resources executes in supervisor mode sets up address spaces to protect processes, and provides virtual memory Another process executes in user mode

Application programs have own address space, separate from kernel and others(=user mode) execute in user mode

Access to resources calls to kernel (system call trap), interrupts(exception) switch to kernel address space can be expensive in terms of time

Monolithic Kernel Microkernel

Server: Dynamically loaded server program:Kernel code and data:

.......

.......

Key:

S4

S1 .......

S1 S2 S3

S2 S3 S4

Page 17: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

17

Processes and threads

Processes historically first abstraction of single thread of activity can run concurrently, CPU sharing if single CPU need own execution environment

address space, registers, synchronization resources (semaphores) scheduling requires switching of environment

Threads (=lightweight processes) can share an execution environment

no need for expensive switching can be created/destroyed dynamically

multi-threaded processes increased parallelism of operations (=speed up)

Page 18: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

18

Process/thread address space

Unit of virtual memory One or more regions

contiguous non-overlapping gaps for growth

Allocation new region for each thread sharing of some regions

shared libraries, data,...

Stack

Text

Heap

AuxiliaryRegions(Threads allocated)

0

2NN=32 or 64

Growth in

opposite

direction: Stack (extend to lower)

: program code

:share memory region(shared region)

Libraries

Kernel

Data sharing and communication

Page 19: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

19

Process/thread concepts

ProcessThread activations

Activation stacks(parameters, local variables)

'text' (program code)Heap (dynamic storage, objects, global variables)

system-provided resources(sockets, windows, open files)

Page 20: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

20

Process/thread creation

OS kernel operation (cf UNIX fork, exec)

Varying policies for choice of host

clusters, single- or multi-processors load balancing

creation of execution environment allocate address space initialize or copy from parent?

Page 21: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

21

Choosing a host...

Local or remote? migrate process if load on local host is high

Load sharing to optimize throughput? static: choose host at random/deterministically adaptive: observe state of the system, measure load & use heuristics

Many approaches simplicity preferred load measuring expensive.

Page 22: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

22

Creating execution environment

Allocate address space

Initialize contents fill with values from file or zeroes

for static address space but time consuming copy-on-write

allow sharing of regions between parent & child physical copying only when either attempts to modify (hardware page

fault)

Page 23: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

23

Copy-on-write

a) Before write b) After write (when it modified or changed)

Sharedframe

A's pagetable

B's pagetable

Process A’s address space Process B’s address space

Kernel

RA RB

RB copiedfrom RA

RA, parent region RB, inherited region

new copy

Page 24: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

24

Role of threads in clients/servers

On a single CPU system threads help to logically decompose a given problem(program) not much speed-up from CPU-sharing

In a distributed system, more waiting for remote invocations (blocking of invoker) for disk access (unless caching) But, obtain better speed up with threads

Page 25: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

25

Multi-threaded client/server

Server

N threads

Input-output

Client

Thread 2 makes

T1

Thread 1

requests to server

generates results

Requests

Receipt &queuing

Page 26: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

26

Threads within clients

Separate data production RMI calls to server

Pass data via buffer Run concurrently Improved speed, throughput

Thread 1 Thread 2

Item 1

Item 2 & 3

Item 4

RMI

Caller blocked

Page 27: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

27

Server threads and throughput

Assume stream of client requests, (each client request time : =2ms for processing + 8ms for I/O ) * 1 sec = 1000ms

Single thread max client requests per second ? =1000ms/(2+8)ms = 100 requests/sec

n threads (disk requests are serialized and take 8ms, no disk caching max client requests per second ? =1000ms/(8, 8+2)ms = 125 requests/sec

n threads, with disk caching (75% hit rate) max client requests per second ? =1000ms/(0.25*8)ms=500 requests/sec In practice?

8ms

2ms

Page 28: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

28

Multi-threaded server architectures

Worker pool Architecture fixed pool of worker threads, size does not change can accommodate priorities but inflexible, I/O switching

Alternative server threading architectures thread-per-request architecture thread-per-connection architecture thread-per-object architecture

Physical parallelism multi-processor machines (cf. Casper, SoCS file server; noo-noo)

Server

N threads

Input-output

Client

Thread 2 makes

T1

Thread 1

requests to server

generates results

Requests

Receipt &queuing

Page 29: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

29

Thread-per-request

Spawns A new worker(thread) creates for each

request worker destroys itself when finished

Allows max throughput no queuing no I/O delays(caching)

But, overhead of creation & destruction of threads is high

Server

remote

workers

I/O

objects

Page 30: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

30

Thread-per-connection

Create a new thread for each connection Multiple requests Destroy thread on close Lower overheads but, unbalanced load

Server

remote

per-connection threads

objects

Page 31: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

31

Thread-per-object

As per-connection, but, a new thread created for each object. As thread-per-connection, lower thread management Per-object queue

At thread-per-connection and thread-per-object, each server has lower thread management overhead compared with thread-per-request , but client may be delayed due to higher priority requests

Remoteobject

I/O

per-object threads

Page 32: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

32

Why threads, not multi-processes?

Process context switching requires save/restore of execution environment

Threads within a process V.S. multi-processes(why Multi-threads?) Creating a thread is (much) cheaper than a process (~10-20 times). Switching to a different thread in same process is (much) cheaper (5-50

times). Threads within same process can share data and other resources more

conveniently and efficiently (without copying or messages). Threads within a process are not protected from each other.

Page 33: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

33

Storing execution environment

Execution environment(=process) ThreadAddress space tables Saved processor registersCommunication interfaces, open files Priority and execution state (such as

BLOCKED )Semaphores, other synchronizationobjects

Software interrupt handling information

List of thread identifiers Execution environment identifier

Page 34: Distributed System and Middleware 1 Distributed Systems : Operating System Support Dr. Sunny Jeong. spjeong@uic.edu.hkspjeong@uic.edu.hk Mr. Colin Zhang.

Distributed System and Middleware

34

Thread scheduling

Non-preemptive scheduling A thread runs until it makes a call to the threading system. Easy to synchronize. Be careful to write long-running sections of code that do not contain calls to

the threading system. Unsuited to real-time applications.

Preemptive scheduling A thread may be suspended at any point to make way for another thread,