Introduction To Distributed System: Jigjiga University Iot

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 36

JJU 1

Introduction to Distributed System


(ITec3102)

Jigjiga University
IoT
Department of Information Technology

Siraj Mohammed
[email protected]

04/04/2023
2

CHAPTER 3: NAMING AND THREADS

JJU 04/04/2023
Outline
3

 Naming
 Name spaces
 Implementation of name spaces
 Name resolution
 Implementation of name resolution
 Threads
 Threads in distributed systems
 Multithreaded Clients
 Multithreaded Servers
JJU 04/04/2023
What is naming?
4

 Mapping names onto entities


 Naming is assigning a name to entities
 E.g.,
[email protected]  name of a person,
registered in a DNS domain
 http://www.jju.edu.et  name of organization (or
jigjig university), registered in a DNS domain.
 Examples of naming systems:
 DNS
 The domain name system (DNS) maps the name people use to
locate a website to the IP address.
What is Name?
5

 A name is something that refers to an entity


 In a distributed system, name can be
 String,
 Characters,
 Sequence of symbol and a combination of them.
 An entity in a distributed system can be anything.
 Typical examples include resources such as
 Hosts
 Printers
 Users
 Web pages and Others JJU 04/04/2023
Why we need names?
6

 Names play a very important role in all computer


systems/in distributed system. 
 They are used to:
 share resources
 uniquely identify entities
 refer to locations

JJU 04/04/2023
Access point
7

 To operate on an entity, it is necessary to access it through


its access point
 An entity can have more than one access point
 E.g.,
accessing an individual through different telephone
numbers
 An entity may change its access point in the course of
time
 E.g., a mobile computer getting a new IP address as it moves

JJU 04/04/2023
Entities, Addresses, Access point: Examples
8

 Example:
 Telephone as Access Point to a person.
 The Telephone Number then becomes the address of the person.
 Person can have several telephone numbers.
 Entity (or Person) can have several addresses.
 Another Example: transport layer -Level Addresses
 For server, this can be IP address and port number
 Entities may change access points and address over time
 Telephone numbers
 e-mail addresses
 IP addresses

JJU 04/04/2023
Identifiers
9

 Properties of a true identifier:


 An identifier refers to at most one entity
 Each entity is referred to by at most one identifier
 An identifier always refers to the same entity – it’s never
reused

 For example, the name "John Smith" cannot be taken as a


unique reference to just a single person
 We cannot use an address as an identifier

 Solution Implementing namespace


JJU 04/04/2023
Namespace
10

 A namespace refers to named entities (objects)


distributed across multiple locations
 A namespace is a context within which the names of all
objects must be resolvable.
 A name space can be organized as a directed graph with
two types of nodes:
 Leaf node: represents the named entity and stores
information such as its address
 Directory node: a special entity that has a number of
outgoing edges.
JJU 04/04/2023
Namespace…
11

a general naming graph with a single root node


JJU 04/04/2023
Namespaces…
12

 A directory node stores a table in which an outgoing


edge is represented as a pair (edge label, node identifier),
called a directory table
 Each path in a naming graph can be referred to by the

sequence of labels corresponding to the edges of the path


and the first node in the path, such as
 N:<label1, label2, ..., labeln>, where N refers to the

first node in the path


 Such a sequence is called a path name

JJU 04/04/2023
Namespace…
13

 If the first node is the root of the naming graph, it is


called an absolute path name
 Otherwise, it is a relative path name
 Instead of the path name n0:<home, steen, mbox>, we
often use its string representation /home/steen/mbox
 There may also be several paths leading to the same
node,
 E.g., node n5 can be represented as /keys or /home/steen/keys

JJU 04/04/2023
The Implementation of a Name Space
14

 A naming service allows users and processes to add,


remove, and lookup names
 A naming service is implemented by name servers
 Name servers (e.g., DNS) can be used
 To transform domain name (example.com) to IP address 
(192.168.1.1)
 For a distributed system on a single LAN,
 a single server might sufficient
 For a large-scale distributed system
 the implementation of a name space is distributed over
multiple name servers JJU 04/04/2023
The Implementation of a Name Space…
15

 Name Space Distribution:


 In large scale distributed systems
 It is necessary to distribute the name service over multiple

name servers, usually organized hierarchically


 A name service can be partitioned into three logical layers:
 Global layer

 Administrational layer

 Managerial layer

JJU 04/04/2023
The Implementation of a Name Space…
16

 Global layer
 Formed by highest level nodes (root node and nodes close to it or its

children)
 Directory tables are rarely changed
 Global layer can be used to represent organizations
 Administrational layer
 Groups of entities that belong to the same organization or

administrational unit, e.g., departments


 Relatively stable

 Managerial layer
 Nodes that may change regularly

 e.g., nodes representing hosts of a LAN,


 shared files such as libraries
 Nodes are managed not only by system administrators, but also by
end users JJU 04/04/2023
an example partitioning of the DNS name space, including
Internet-accessible files, into three layers

17
 Example ,Adama University web address: http://www.astu.edu.et
JJU
04/04/2023
17
What is name resolution?
18

 Given a path name, the process of looking up a name stored in


the node is referred to as name resolution;
 It consists of finding the address when the name is given by
following the path
 Goal: is to associate names and IP addresses

JJU 04/04/2023
Implementation of Name Resolution
19

 Name resolution finding the address when the name is


given
 e.g., assume the path name
 root:<nl, vu, cs, ftp, pub, globe, index.txt> is to be
resolved
 or using a URL notation, this path name would
correspond to ftp://ftp.cs.vu.nl/pub/globe/index.txt
 Two ways of implementing name resolution
A. Iterative name resolution
B. Recursive name resolution

JJU 04/04/2023
A. Iterative name resolution:
 A name resolver hands over the complete name to the root name

server
 The root server will resolve the name as far as it can and return the

result to the client; at the minimum it can resolve the first level and
sends the name of the first level name server to the client
 The client calls the first level name server, then the second, ..., until it

finds the address of the entity

20 JJU 04/04/2023
the principle of iterative name resolution 20
 Recursive name resolution:
 A name resolver hands over the whole name to the root name server

 The root server will try to resolve the name and if it can’t, it requests

the first level name server to resolve it and to return the address
 The first level will do the same thing recursively

21 JJU 04/04/2023
the principle of recursive name resolution 21
Threads
22

 A process can contain multiple threads.


 A thread refers to a single sequential flow of activities being
executed in a process
 A thread is a lightweight process running within a larger
process
 A thread is the unit of execution within a process

JJU 04/04/2023
Threads and their Implementation
23

 Threads can be used in both distributed and nondistributed


systems
 Threads in Nondistributed Systems

Process 1 Process 2 Process 3

JJU 04/04/2023
three processes each with one thread one process with three threads
Threads and their Implementation…
24

 Each thread has its own


 Program counter
 Registers
 Stack
 But, all threads of a process share
 Address space
 Global variables and
 Other resources such as open files

JJU 04/04/2023
Threads and their Implementation…
25

JJU 04/04/2023
Multithreading
26

 Multithreading is a CPU (central processing unit)


feature that allows two or more instruction threads to
execute independently, while sharing the same
process resources
 Multithreading allows multiple concurrent tasks can
be performed within a single process.
 Multithreading allows many parts of a program to
run simultaneously

JJU 04/04/2023
Examples of Multithreading
27

 Example 1, a word processor


 While we are typing, multiple treads are used to
 Display our document
 Format the page
 Save our document
 Check the spelling of the document and
 Check the grammar of our document
 Example 2, consider your internet browser and many opened taps in
which multiple threads of execution are used to
 Load content
 Display webpage
 Display email
 Play a video and so on. JJU 04/04/2023
Why do we need Multithreading?
28

 To perform many activities at once


 To avoid blocking when waiting for input or
doing calculations
 Real parallelism is possible in a multithreads
system

JJU 04/04/2023
Threads in Distributed Systems
29

 Multithreaded Clients:
 Consider a Web browser
 Fetching different parts of a page can be implemented
as a separate thread,
 Each opening its own TCP/IP connection to the server
or to separate and replicated servers
 Each can display the results

JJU 04/04/2023
Threads in Distributed Systems…
30

 Multithreaded Servers: is any server that has


more than one thread
 To accept multiple requests at the same time  We
need multiple threads on the server side.

JJU 04/04/2023
Threads in Distributed
31
Systems…
Servers can be constructed in three ways:
1. Single-threaded process:
 It gets a request, examines it, carries it out to
completion before getting the next request
 The server is idle while waiting for disk read,
 i.e., system calls are blocking

JJU 04/04/2023
Threads in Distributed
32
Systems…
Servers can be constructed in three ways….

2. Multiple threads:
 Threads are more important for implementing servers

 e.g., a file server

How does a file serer works?


 Step-1: The dispatcher thread reads incoming multiple


requests from clients
 Step-2: The dispatcher passes it to an idle worker thread
 Step-3: The worker thread performs the actual task
JJU 04/04/2023
Threads in Distributed
33
Systems…
Servers can be constructed in three ways….
2. Multiple threads, e.g., file server

a multithreaded server organized in a dispatcher/worker model


JJU 04/04/2023
Threads in Distributed
34
Systems…
Servers can be constructed in three ways….
3. Finite-state machine:
 It gets a request, examines it, tries to fulfill the
request from cache
 Instead of blocking it records the state of the
current request and
 Proceeds to the next request

JJU 04/04/2023
Summary of Server model
35

Model Characteristics

Single-threaded process No parallelism, blocking system calls

Parallelism, blocking system calls


Threads
(thread only)

Finite-state machine Parallelism, nonblocking system calls

JJU 04/04/2023
Thank you

36 JJU 04/04/2023

You might also like