• 0:00
    /
    0:00
    Loaded: 0%
    0:00
    Progress: 0%
    Stream TypeLIVE
    0:00
     
    1x
    Advertisement

Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process.

Similar presentations


Presentation on theme: "Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process."— Presentation transcript:

1 Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process Inter-process Communication in Distributed Systems Lecture 2

2 The Kernel The kernel is a (often memory resident) part of the operating system that has access rights to ALL system resources. The kernel of a distributed system usually has access only to local resources. ? What o.s. components should be part of the kernel? Lecture 2

3 Kernel Types Monolithic Kernel Microkernel Unix, VMS.
Chorus (base technology for JavaOS) Mach more suitable for distributed computing Lecture 2

4 Processes Process is a fundamental concept of computer system operation : it is a program in execution. ? What are properties of a process? ? What constitutes a process? ? What does a process need in order to accomplish its task? Lecture 2

5 Process Management Process management in distributed systems involves:
process creation process type identification process migration process scheduling process status control process termination and clean up Lecture 2

6 Types of processes in distributed and parallel systems.
Indivisible processes (entire process must be assign to a single processor). Divisible processes (a process may be subdivided into smaller sub-processes, tasks, or threads.) TIG (Task Interaction Graph) represents relationships between tasks of a divisible process. (see box 2.4 p.42) Lecture 2

7 Load Distribution and Process Migration
Process migration involves relocation of a process to remote processor (computer). Goal of load distribution: balance the job load among computers in the system provide better response time of computations Lecture 2

8 Two Components of Load Balancing Algorithms
Information Gathering gather info about loads of other processors and select a suitable migration partner e.g. identifies idle processors, estimate cost of migration to various sites Process Selection select a process to migrate e.g. what is the communication delay for migrating a process, how to accommodate differences in heterogeneous systems Lecture 2

9 External Data Representation
Heterogeneous systems imply different CPUs, different software configurations and different data representation External Data Representation is a common representation of data used in heterogeneous systems. External Data Representation greatly reduces the amount of time required to perform cross-platform process migration. Lecture 2

10 Benefits of External Data Representation
Study figures 2.6 and 2.7 and solve problem 2.9 on page 51. Lecture 2

11 Load balancing decision examples
Consider the formula for Total_Weight on page 50. Use this formula with Weighting 1 parameters (0.25, 0.25, 0.25, 0.25) in order to determine which is the best location for process migration from exercise 2.6. Lecture 2

12 Threads Thread is a basic unit of process execution.
“Mini-process” (“lightweight process) Operating system allowing for multiple threads of execution are referred as multi-threaded (Windows NT, 2000, Unix) Languages that support multithreading include C, C++, Java. Lecture 2

13 Thread Properties A process may have multiple threads of control.
Each thread has its own program counter and stack, register set, child threads, and state. Threads share address space and global variables. Lecture 2

14 Threads versus Processes
Per Thread Items PC Stack Register set Child threads State Per Process Items Address space Global variables Open files Child processes Signals/IPC Lecture 2

15 Multithreaded Support
Posix.1c specifies a standard for threads and their implementation. Posix Threads Java support for multithreaded programming Threads are treated like other objects. Must be instantiated with a parameter that is a runable object (runable objects define a run() method) See box 2.2 p. 37 for Thread constructor prototypes and sample methods Lecture 2

16 Multithreaded Code Process versus threads example
Posix Threads Example Multithreaded programming paradigms specialist paradigm client/server paradigm assembly line paradigm ? Read paragraph p.34 and answer question 2.2. on page 49. Lecture 2

17 Processes and Threads in Windows’98
Windows 95/98 NT and 2000 utilize multithreading. Check the following file to processes and threads in Windows C:\Program Files\DevStudio\Vc\bin\Win95\Pview95 Lecture 2

18 Inter-process Communication
Inter-process Communication is an essential component of distributed computing. WHY? Lecture 2

19 Common IPC Primitives Messages Pipes Sockets
RPCs (Remote Procedure Calls) Lecture 2

20 Message Passing Message passing involves copying of data from one process address space to another process address space. Primitives used: msgSent (dest, text) msgReceive (source, text) Lecture 2

21 Blocking and Non-blocking Primitives
Blocking msgSend waits (blocks awaiting) for acknowledgment Blocking msgReceive waits (block awaiting) for the messages Sometimes called synchronous Non-blocking msgSend sends the message and does not wait for ack. Non-blocking msgReceive does not wait for a messages. Sometimes called asynchronous Lecture 2

22 Message Addressing One-to-many (multiple receivers, single sender)
Many-to-one (multiple senders, one receiver) Many-to-many (multiple receivers, multiple senders) Lecture 2

23 Pipes Communication takes via a memory buffer. One-to-one type
Unnamed pipes allow for communication between related processes (e.g. parent and child) Named pipes allow for communication between unrelated processes (see Box 3.3 p.64 for details) Lecture 2

24 Sockets Used for communication across the network.
Low level primitives. Requires 6-8 steps (create socket, bind, connect, listen, send receive, shutdown.) Supported by Unix and Java (see box and 3.5 pp. 70 and 71) Lecture 2

25 Remote Procedure Calls
RPC is a high level, blocking primitive. Allows communication between remote computers using techniques similar to traditional procedure calls. Allows for complex data structures to be passed as parameters. Lecture 2

26 RPC features Parameter Type Data Type Support Parameter Marshalling
RPC Binding RPC Authentication RPC Semantics Lecture 2

27 RPC Semantics At-Most-Once At-Least-Once Last-of-Many-Call Idempotent
Lecture 2

28 Parameter Type Input only Output only Input/output per value
receive from the server Input/output call by value/results Lecture 2

29 Data Type Support Allow/disallow some data types (e.g. pointers or complex structures.) Limit the number of parameters passed Lecture 2

30 Parameter Marshalling
Packing of parameters to minimize the amount of information sent across the network. Use of stubs on client and server sites. Lecture 2

31 RPC Binding Binding involves Binding can be accomplished at
port mapping for the server assigning a port handler for the client see fig p.74 Binding can be accomplished at compile time link time run time Lecture 2

32 RPC Authentication Client/server authentication might be needed to assure security of data transmisison. Lecture 2


Download ppt "Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process."

Similar presentations


Ads by Google