Download presentation
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.