0% found this document useful (0 votes)
17 views33 pages

Chapter 3 - Process

Uploaded by

abebaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views33 pages

Chapter 3 - Process

Uploaded by

abebaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

DEBARK UNIVERSITY

Chapter 3
Processes
Distributed system 05/25/2024 1
Introduction
Communication takes place between processes
 a process is a program in execution
From OS perspective, management and scheduling of
processes is important
 Other important issues arise in distributed systems
Multi threading to enhance performance by overlapping
communication and local processing
How are clients and servers organized and server design
issues process or code migration to achieve scalability and
to dynamically configure clients and servers
Distributed system 05/25/2024 2
What is process mean?
A process is a program in execution. The execution of
a process must progress in a sequential fashion.
 A process is more than the program code. It also
includes the current activity, as represented by the
value of the program counter and the contents of the
processor’s registers.
As a process executes, it changes state

Distributed system 05/25/2024 3


What is thread?
A flow of execution through the process code, with its own
program counter, system register and stack.
Each thread belongs to exactly one process and no thread can
exist outside a process. Each thread represents a separate
flow of control.
A thread of execution is the smallest unit of processing that can be
scheduled by an OS

Distributed system 05/25/2024 4


how are processes and threads related?
The implementation of threads and process differs from one
OS to another, but in most cases,
a thread is contained inside a process.
Multiple threads can exist within the same process and share
resources such as memory,

while different processes do not share these resources.

Distributed system 05/25/2024 5


Threads and their Implementation

 Process tables or PCBs are used to keep track of processes


 there are usually many processes executing concurrently
 processes should not interfere with each other; sharing resources by
processes is transparent
 this concurrency transparency has a high price; allocating resources
for a new process and context switching take time
 a thread also executes independently from other threads; but no need
of a high degree of concurrency transparency thereby resulting in
better performance

Distributed system 05/25/2024 6


What is the difference b/n thread and process?

Distributed system 05/25/2024 7


Distributed system 05/25/2024 8
Cont…
threads can be used in both distributed and non
distributed systems
Threads in Non distributed Systems
a process has an address space (containing program text and
data) and a single thread of control, as well as other resources
such as open files, child processes, accounting information,
etc

Distributed system 05/25/2024 9


Process 1 Process 2 Process 3

processes each with one thread one process with three threads
Distributed system 05/25/2024 10
each thread has its own program counter, registers, stack, and state; but all
threads of a process share address space, global variables and other resources
such as open files, etc.

Distributed system 05/25/2024 11


Threads take turns in running
Threads allow multiple executions to take place in the same process
environment, called multi threading
Thread Usage –Why do we need threads?
e.g., a word processor has different parts for
 interacting with the user
 formatting the page as soon as changes are made
 timed savings (for auto recovery)
 spelling and grammar checking, etc.

Distributed system 05/25/2024 12


1.Simplifying the programming model: since many activities
are going on at once more or less independently
2.They are easier to create and destroy than processes since they
do not have any resources attached to them
3.Performance improves by overlapping activities if there is too
much I/ O; i. e., to avoid blocking when waiting for input or
doing calculations, say in a spreadsheet
4. Real parallelism is possible in a multiprocessor system

Distributed system 05/25/2024 13


In non distributed systems, threads can be used with shared data
instead of processes to avoid context switching overhead inter process
communication (IPC)

Distributed system 05/25/2024 14


Thread Implementation
 threads are usually provided in the form of a thread package
the package contains operations to create and destroy a thread, operations
on synchronization variables such as mutexes and condition variables
two approaches of constructing a thread package
A. construct a thread library that is executed entirely in user mode
(the OS is not aware of threads)
 cheap to create and destroy threads; just allocate and free memory
 context switching can be done using few instructions; store and
reload only CPU register values
 disadvantage: invocation of a blocking system call will block the
entire process to which the thread belongs and all other threads in
that process
Distributed system 05/25/2024 15
B. implement them in the OS’s kernel
let the kernel be aware of threads and schedule them
expensive for thread operations such as creation and
deletion since each requires a system call.
solution: use a hybrid form of user-level and kernel-
level threads, called lightweight process (LWP)

Distributed system 05/25/2024 16


Threads in Distributed Systems
Multithreaded Clients
 consider a Web browser; fetching different parts of a page can be
implemented as a separate thread, each opening its own TCP
connection to the server
 each can display the results as it gets its part of the page
 parallelism can also be achieved for replicated servers since each
thread request can be forwarded to separate replicas
Multithreaded Servers
 servers can be constructed in three ways
A. single-threaded process it gets a request, examines it, carries it
out to completion before getting the next request
Distributed system 05/25/2024 17
B. Threads
 threads are more important for implementing servers
e.g., a file server
the dispatcher thread reads incoming requests for a file
operation from clients and passes it to an idle worker thread
C. finite-state machine
 if threads are not available
 it gets a request, examines it, tries to fulfill the request from
cache, else sends a request to the file system
Model Characteristics
Single-threaded process: No parallelism, blocking system
calls
Threads
Distributed system
Parallelism: blocking system calls (thread only)
05/25/2024 18
Anatomy of Clients
Two issues: user interfaces and client-side software for
distribution transparency
A. User Interfaces
 to create a convenient environment for the interaction of a
human user and a remote server; e.g. mobile phones with
simple displays and a set of keys
 GUIs are most commonly used
 The X Window System (or simply X) as an example
 it has the X kernel: the part of the OS that controls the
terminal (monitor, keyboard, pointing device like a mouse)
and is hardware dependent
Distributed system 05/25/2024 19
B . Client-Side Software for Distribution Transparency
 in a client-server application are executed at the client side
 An example is embedded client software for ATMs, cash registers, etc.
 Moreover, client software can also include components to achieve
distribution transparency
e.g., replication transparency
 Assume a distributed system with replicated servers; the client proxy
can send requests to each replica
 n addition to the user interface, parts of the processing and data level
Distributed system 05/25/2024 20
Servers and Design Issues
General Design Issues
A. How to organize servers?
 Iterative server
the server itself handles the request and returns the
result
 Concurrent server
it passes a request to a separate process or thread and
waits for the next incoming request; e.g., a
multithreaded server;
Distributed system 05/25/2024 21
B. Where do clients contact a server?
 using endpoints or ports at the machine where the server is
running where each server listens to a specific endpoint
 how do clients know the endpoint of a service?
 globally assign endpoints for well-known services; e.g. FTP
is on TCP port 21, HTTP is on TCP port 80

Distributed system 05/25/2024 22


Code Migration
so far, communication was concerned on passing data
we may pass programs, even while running and in
heterogeneous systems
code migration also involves moving data as well:
when a program migrates while running, its status,
pending signals, and other environment variables such
as the stack and the program counter also have to be
moved
Distributed system 05/25/2024 23
Reasons for Migrating Code
 To improve performance; move processes from heavily-loaded to
lightly-loaded machines (load balancing)
 To reduce communication: move a client application that performs
many database operations to a server if the database resides on the
server; then send only results to the client
 To exploit parallelism (for nonparallel programs): e.g., copies of a
mobile program (called a mobile agent is called in search engines)
moving from site to site searching the Web
Distributed system 05/25/2024 24
Models for Code Migration
Code migration doesn’t only mean moving code; in some cases, it also
means moving the execution status of a program, pending signals, and
other parts of the execution environment
A process consists of three segments: code segment (set of
instructions), resource segment (references to external resources such
as files, printers, ...), and execution segment (to store the current
execution state of a process such as private data, the stack, the
program counter)
Distributed system 05/25/2024 25
Alternatives for code migration
 weak versus strong mobility
 is it sender-or receiver-initiated
 is it executed at the target process or in a separate process (for
weak mobility); migrate or clone process (for strong mobility)
Weak Mobility
Transfer only the code segment and may be some initialization data; in
this case a program always starts from its initial stage, e.g. Java Applets
Distributed system 05/25/2024 26
execution can be by
 the target process (in its own address space like in Java Applets)
but the target process and local resources must be protected
(security) or
 by a separate process; still local resources must be protected
(security)
Strong Mobility (or process migration )
Transfer code and execution segments; helps to migrate a process in
execution; stop execution, move it, and then resume execution from
where it is stopped

Distributed system 05/25/2024 27


Migration can be
sender-initiated: the machine where the code resides or is currently running; e.g.,
uploading programs to a server; may need authentication or that the client is a
registered one; crawlers to index Web pages
receiver-initiated: by the target machine; e.g., Java Applets;
easier to implement
In a client-server model, receiver-initiated is easier to implement since
security issues are minimized; if clients are allowed to send code
(sender-initiated), the server must know them since they may access
resources such as disk on the server
Distributed system 05/25/2024 28
Summary of models of code migration

Distributed system 05/25/2024 29


Types of Process-to-Resource Bindings
1. Binding by identifier (the strongest): a resource is referred by its
identifier; the process requires that resource; e.g., a URL to refer to a
Web page or an FTP server referred by its Internet (IP) address
2. Binding by value (weaker): when only the value of a resource is
needed; in this case another resource can provide the same value; e.g.,
standard libraries of programming languages such as C or Java which
are normally locally available, but their location in the file system
may vary from site to site
Distributed system 05/25/2024 30
3. Binding by type (weakest): a process needs a resource of a specific
type; reference to local devices, such as monitors, printer
Resource-to-Machine Bindings
Unattached Resources: can be easily moved with the migrating program
(such as data files associated with the program)
Fastened Resources: such as local databases and complete Web
sites; moving or copying may be possible, but very costly
Fixed Resources: intimately bound to a specific machine or environment
such as local devices and cannot be moved
Distributed system 05/25/2024 31
THANK

YOU!!!
EDUCATION
IS OCEAN !!!
Distributed system 05/25/2024 32
SLID END

05/25/2024 33

Distributed system

You might also like