+ All Categories
Home > Documents > OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition,...

OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition,...

Date post: 31-Mar-2015
Category:
Upload: vincent-frogge
View: 231 times
Download: 7 times
Share this document with a friend
36
OPERATING SYSTEM SUPPORT 1 OPERATING SYSTEM SUPPORT From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison Wesley/Pearson Education June 2005
Transcript
Page 1: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

1

OPERATING SYSTEM SUPPORT

From Chapter 6 of Distributed Systems Concepts and Design,4th Edition,

By G. Coulouris, J. Dollimore and T. Kindberg

Published by Addison Wesley/Pearson Education June 2005

Page 2: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

2

Topics Introduction The Operating System Layer Processes and Threads Operating System Architecture

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 3: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

3

Introduction Many distributed operating systems have

been investigated, but there are none in general/wide use.

But network operating system are in wide use for various reasons both technical and non-technical.

Users have much invested in their application software; they will not adopt a new operating system that will not run their applications.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 4: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

4

Introduction The second reason against the adoption of

distributed operating system is that users tend to prefer to have a degree of autonomy for their machines, even in a organization.

Unix and Windows are two examples of network operating systems.

Those have a networking capability built into them and so can be used to access remote resources using basic services such as rlogin and telnet.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 5: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

5

Introduction The combination of middleware and

network operating systems provides an acceptance balance between the requirement of autonomy and network transparency.

The network operating systems allows users to run their favorite word processor and other standalone applications.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 6: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

6

Introduction Middleware enables users to take

advantage of services that become available in their distributed system.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 7: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

7

The Operating System Layer

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, ...

Figure 1. System layers

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 8: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

8

The Operating System Layer Figure 1 shows how the operating system

layer at each of two nodes supports a common middleware layer in providing a distributed infrastructure for applications and services.

Kernels and server processes are the components that manage resources and present clients with an interface to the resources.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 9: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

9

The Operating System Layer

The OS facilitates: Encapsulation Protection Concurrent processing

Invocation mechanism is a means of accessing an encapsulated resource.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 10: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

10

The Operating System Layer

Communication

manager

Thread manager Memory manager

Supervisor

Process manager

Figure 2. Core OS functionality

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 11: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

11

The Operating System Layer Figure 2 shows the core OS components:

Process manager Thread manager Memory manager Communication manager Supervisor

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 12: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

12

Processes and Threads Process

A process consists of an execution environment together with one or more threads.

A thread is the operating system abstraction of an activity.

An execution environment is the unit of resource management: a collection of local kernel managed resources to which its threads have access.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 13: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

13

Processes and Threads An execution environment consists of :

An address space Thread synchronization and communication

resources (e.g., semaphores, sockets) Higher-level resources (e.g., file systems,

windows)

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 14: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

14

Processes and Threads Threads

Threads are schedulable activities attached to processes.

The aim of having multiple threads of execution is :

To maximize degree of concurrent execution between operations

To enable the overlap of computation with input and output

To enable concurrent processing on multiprocessors.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 15: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

15

Processes and Threads Threads can be helpful within servers:

Concurrent processing of client’s requests can reduce the tendency for servers to become bottleneck.

• E.g. one thread can process a client’s request while a second thread serving another request waits for a disk access to complete.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 16: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

16

Processes and Threads Processes vs. Threads

Threads are “lightweight” processes, processes are expensive to create but

threads are easier to create and destroy.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 17: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

17

Processes and Threads Threads programming

Thread programming is concurrent programming.

Java provides methods for creating, destroying and synchronizing threads.

The Java thread class includes the constructor and management methods listed in Figure 3.

The thread and object synchronization methods are in Figure 4.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 18: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

18

Processes and ThreadsThread(ThreadGroup group, Runnable target, String name) Creates a new thread in the SUSPENDED state, which will belong to group and be identified as name; the thread will execute the run() method of target.setPriority(int newPriority), getPriority() Set and return the thread’s priority.run() A thread executes the run() method of its target object, if it has one, and otherwise its own run() method (Thread implements Runnable).start() Change the state of the thread from SUSPENDED to RUNNABLE.sleep(int millisecs) Cause the thread to enter the SUSPENDED state for the specified time.yield() Enter the READY state and invoke the scheduler.destroy() Destroy the thread.

Figure 3. Java thread constructor and management methods

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 19: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

19

Processes and Threadsthread.join(int millisecs) Blocks the calling thread for up to the specified time until thread has terminated.thread.interrupt() Interrupts thread: causes it to return from a blocking method call such as sleep().object.wait(long millisecs, int nanosecs) Blocks the calling thread until a call made to notify() or notifyAll() on object wakes the thread, or the thread is interrupted, or the specified time has elapsed.object.notify(), object.notifyAll() Wakes, respectively, one or all of any threads that have called wait() on object.

Figure 4. Java thread synchronization calls

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 20: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

20

Processes and Threads Programs can manage threads in groups. Every thread belongs to one group

assigned at thread creation time. thread groups are useful to shield various

applications running in parallel on one Java Virtual Machine (JVM).

A thread in one group cannot perform management operations on a thread in another group.

E.g., an application thread may not interrupt a system windowing (AWT) thread.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 21: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

21

Processes and Threads Thread synchronization

The main difficult issues in multi-threaded programming are the sharing of objects and the techniques used for thread coordination and cooperation.

Each thread’s local variables in methods are private to it.

Threads have private stack. Threads do not have private copies of

static (class) variables or object instance variables.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 22: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

22

Processes and Threads Java provides the synchronized keyword

for thread coordination. any object can only be accessed through

one invocation of any of its synchronized methods.

an object can have synchronized and non-synchronized methods.

example synchronized addTo() and removeFrom()

methods to serialize requests in worker pool example.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 23: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

23

Processes and Threads Threads can be blocked and woken up

The thread awaiting a certain condition calls an object’s wait() method.

The other thread calls notify() or notifyAll() to awake one or all blocked threads.

example When a worker thread discovers that there

are no requests to process, it calls wait() on the instance of Queue.

When the I/O thread adds a request to the queue, it calls the queue’s notify() method to wake up the worker.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 24: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

24

Processes and Threads The Java synchronization methods are

given in Figure 4.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 25: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

25

Client and server with threads

Server

N threads

Input-output

Client

Thread 2 makes

T1

Thread 1

requests to server

generates results

Requests

Receipt &queuing

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 26: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

26

Operating System Architecture A key principle of distributed systems is

openness. The major kernel architectures:

Monolithic kernels Micro-kernels

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 27: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

27

Operating System Architecture An open distributed system should make it

possible to: Run only that system software at each

computer that is necessary for its particular role in the system architecture. For example, system software needs for PDA and dedicated server are different. Loading redundant modules wastes memory resources.

Allow the software (and the computer) implementing any particular service to be changed independent of other facilities.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 28: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

28

Operating System Architecture Allow for alternatives of the same service

to be provided, when this is required to suit different users or applications.

Introduce new services without harming the integrity of existing ones.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 29: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

29

Operating System Architecture A guiding principle of operating system

design: The separation of fixed resource management

“mechanisms“ from resource management “policies”, which vary from application to application and service to service.

For example, an ideal scheduling system would provide mechanisms that enable a multimedia application such as videoconferencing to meet its real-time demands while coexisting with a non-real-time application such as web browsing.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 30: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

30

Operating System Architecture The kernel would provide only the most basic

mechanisms upon which the general resource management tasks at a node are carried out.

Server modules would be dynamically loaded as required, to implement the required resourced management policies for the currently running applications.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 31: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

31

Operating System Architecture Monolithic Kernels

A monolithic kernel can contain some server processes that execute within its address space, including file servers and some networking.

The code that these processes execute is part or the standard kernel configuration.

(Figure 5)

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 32: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

32

Operating System Architecture

Monolithic Kernel Microkernel

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

.......

.......

Key:

S4

S1 .......

S1 S2 S3

S2 S3 S4

Figure 5. Monolithic kernel and microkernel

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 33: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

33

Operating System Architecture Microkernel

The microkernel appears as a layer between hardware layer and a layer consisting of major systems.

If performance is the goal, rather than portability, then middleware may use the facilities of the microkernel directly.

(Figure 6)

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 34: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

34

Operating System Architecture

Middleware

Languagesupport

subsystem

Languagesupport

subsystem

OS emulationsubsystem ....

Microkernel

Hardware

The microkernel supports middleware via subsystems

Figure 6. The role of the microkernel

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 35: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

35

Operating System Architecture Monolithic and Microkernel comparison

The advantages of a microkernel Its extensibility Its ability to enforce modularity behind

memory protection boundaries. Its small kernel has less complexity.

The advantages of a monolithic The relative efficiency with which operations

can be invoked because even invocation to a separate user-level address space on the same node is more costly.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005

Page 36: OPERATING SYSTEM SUPPORT 1 From Chapter 6 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published.

OPERATING SYSTEM SUPPORT

36

Operating System Architecture

Hybrid Approaches Pure microkernel operating system such

as Chorus & Mach have changed over a time to allow servers to be loaded dynamically into the kernel address space or into a user-level address space.

In some operating system such as SPIN, the kernel and all dynamically loaded modules grafted onto the kernel execute within a single address space.

Couloris,Dollimore and Kindberg Distributed Systems: Concepts & Design Edn. 4 , Pearson Education 2005


Recommended