2777 SECOND PUBLIC EXAMINATION Honour School of Physics ...
15 Pages
Downloading requires you to have access to the YouScribe library
Learn all about the services we offer

2777 SECOND PUBLIC EXAMINATION Honour School of Physics ...


Downloading requires you to have access to the YouScribe library
Learn all about the services we offer
15 Pages


  • cours - matière potentielle : b3
  • cours - matière : physics
2777 SECOND PUBLIC EXAMINATION Honour School of Physics Part B: 4 Year Course B3: V. GENERAL RELATIVITY AND COSMOLOGY AND VI. CONDENSED-MATTER PHYSICS TRINITY TERM 2011 Wednesday, 22 June, 2.30 pm – 5.30 pm Answer four questions, two from each section: Start the answer to each question in a fresh book. At the end of the examination hand in your answers to Section V and Section VI in separate bundles.
  • direct lattice with orthogonal basis vectors
  • frw equation
  • show that the geodesic equations
  • v10 v10 v11 v10
  • v11
  • reciprocal lattice vector
  • scale factor
  • energy
  • function
  • expression



Published by
Reads 56
Language English


Learning Outcomes machines provide network-wide services or applications such as
After reading this lesson students should be able to file storage and printer management. Each computer has its
own private operating system. The network operating system is• Understand what is distributed operating systems and it
simply an adjunct to the local operating system that allowsimportance
application machines to interact with server machines. The user
• Get an overview of technical terminology involved in
is aware that there are multiple independent computers and
computer architecture
must deal with them explicitly. Typically, common communica-
• Get an overview of client and server model and the tions architecture is used to support these network applications.
topologies involved in them
Distributed operating systems: It is a common operating
• Present the exact usage of various methodologies to DBMS. system shared by the network of computers. It looks to its
• Understand the present day technology in the field of science users like an ordinary centralized operating system but provides
and computers the user with transparent access to the resources of a number of
machines. A distributed operating system may rely on commu-Distributed Operating Systems
nications architecture for basic communications functions; more
Introduction commonly, a stripped-down set of communications functions
You must be noticing nowadays that there is increasing is incorporated into the operating system to provide efficiency.
availability of inexpensive yet powerful personal computers and
Architectures of Distributed Systems
servers, and also there has been an increasing trend toward
distributed data processing (DDP), in which processors, data, Client-server
and other aspects of a data processing system may be dispersed Perhaps the most significant trend in information systems in
within an organization. A DDP system involves a partitioning recent years is the rise of client/server computing. This mode
of the computing function and may involve a distributed of computing is rapidly replacing both mainframe-dominated,
organization of databases, device control, and interaction centralized computing approaches and alternative forms of
(network) control. distributed data processing.
In many organizations, there is heavy reliance on personal As with other new waves in the computer field, client/server
computers coupled with servers. Personal computers are used computing comes with its own set of jargon words. Table
to support variety of user-friendly applications, such as word given below lists some of the terms that are commonly found
processing, spreadsheet, and presentation graphics. The servers in the description of client/server products and applications.
house the corporate database plus sophisticated database
Terminology Meaning management and information systems software. Linkages are
needed among the personal computers and between each Application Programming A set of function and call
Interface programs that allow clients personal computers and the server. Various approaches are in
and servers to
common use, ranging from treating the personal computer as a intercommunicate
simple terminal to a high degree of integration between Client A networked information
requester, usually a PC personal computer applications and the server database.
workstation, that can query
These application trends have been supported by the evolution database and/or other
information from the server of the distributed capabilities in the operating system and
Middleware A set of drivers, APIs, or
support utilities. A spectrum of capabilities have been explored: other softwares that improve
connectivity between a client Communication architecture: This is software that supports a
application and a server
network of independent computers. It provides support for Relational database A database in which
distributed applications, such as electronic mail, file transfer, and information access is limited
to the selection to rows that remote terminal access. However, the computers retain a distinct
satisfy all search criteria
identity to the user and to the applications, which must Server A computer, usually a high-
communicate with other computers by explicit reference. Each powered workstations, a
microcomputer, or a computer has its own separate operating system, and a hetero-
mainframe, that houses
geneous mix of computers and operating systems is possible, information for manipulation
as long as all machines support the same communications by network clients
Structured Query A language developed by IBM architecture.
Language and standardized by ANSI for
Network operating system: This is a configuration in which addressing, creating, updating,
or querying relation al there is a network of application machines, usually single user
workstations and one or more “server” machines. The server

© Copy Right: Rai University
Let us now study few examples of examples of client/server
architectures Three Tier
Two tier architectures: With two tier client/server architectures,

the user system interface is usually located in the user’s desktop User System Interface
environment and the database management services are usually
in a server that is a more powerful machine that services many

clients. Processing management is split between the user system Process management
interface environment and the database management server

environment. The database management server provides stored
procedures and triggers. There are a number of software
vendors that provide tools to simplify development of
Database management
applications for the two tier client/server architecture.
Two Tier

User System Interface + Figure 2. Three tier distributed client/server architecture
Some Processing
Management The three tier client/server architecture has been shown to

improve performance for groups with a large number of users
(in the thousands) and improves flexibility when compared to
Database management +
the two tier approach. Flexibility in partitioning can be a simpleSome Processing
Management as “dragging and dropping” application code modules onto
different computers in some three tier architectures. A limitation
Figure 1. Two Tier Client Server Architecture with three tier architectures is that the development environ-
ment is reportedly more difficult to use than theThe two tier client/server architecture is a good solution for
visually-oriented development of two tier applications. Recently,distributed computing when work groups are defined as a
mainframes have found a new use as servers in three tierdozen to 100 people interacting on a LAN simultaneously. It
architectures.does have a number of limitations. When the number of users
exceeds 100, performance begins to deteriorate. This limitation Three tier architecture with transaction processing monitor
is a result of the server maintaining a connection via “keep- technology: The most basic type of three tier architecture has a
alive” messages with each client, even when no work is being middle layer consisting of Transaction Processing (TP) monitor
done. A second limitation of the two tier architecture is that technology. The TP monitor technology is a type of message
implementation of processing management services using queuing, transaction scheduling, and prioritization service where
vendor proprietary database procedures restricts flexibility and the client connects to the TP monitor (middle tier) instead of
choice of DBMS for applications. Finally, current implementa- the database server.
tions of the two tier architecture provide limited flexibility in
moving (repartitioning) program functionality from one server
to another without manually regenerating procedural code.
Three tier architectures: The three tier architecture also referred to
as the multi-tier architecture emerged to overcome the limita-
tions of the two tier architecture. In the three tier architecture, a
middle tier was added between the user system interface client
environment and the database management server environ-
ment. There are a variety of ways of implementing this middle
tier, such as transaction processing monitors, message servers,
or application servers. The middle tier can perform queuing,
application execution, and database staging. For example, if the
middle tier provides queuing, the client can deliver its request to
the middle layer and disengage because the middle tier will Figure 3. Transaction Processing Monitor Technology
access the data and return the answer to the client. In addition The transaction is accepted by the monitor, which queues it and
the middle layer adds scheduling and prioritization for work in then takes responsibility for managing it to completion, thus
progress. freeing up the client. When the capability is provided by third
party middleware vendors it is referred to as “TP Heavy”
because it can service thousands of users. When it is embedded
in the DBMS (and could be considered a two tier architecture), it
is referred to as “TP Lite” because experience has shown
performance degradation when over 100 clients are connected.
TP monitor technology also provides
© Copy Right: Rai University
• the ability to update multiple different DBMSs in a single Distributed/Collaborative Enterprise Architectures). This
transaction software architecture is based on Object Request Broker (ORB)
technology, but goes further than the Common Object Request• connectivity to a variety of data sources including flat files,
Broker Architecture (CORBA) by using shared, reusablenon-relational DBMS, and the mainframe
business models (not just objects) on an enterprise-wide scale.
• the ability to attach priorities to transactions
The benefit of this architectural approach is that standardized
• robust security business object models and distributed object computing are
Using a three tier client/server architecture with TP monitor combined to give an organization flexibility to improve
technology results in an environment that is considerably more effectiveness organizationally, operationally, and technologically.
scalable than a two tier architecture with direct client to server An enterprise is defined here as a system comprised of multiple
connection. For systems with thousands of users, TP monitor business systems or subsystems. Distributed/collaborative
technology (not embedded in the DBMS) has been reported as enterprise architectures are limited by a lack of commercially-
one of the most effective solutions. A limitation to TP available object orientation analysis and design method tools
monitor technology is that the implementation code is usually that focus on applications.
written in a lower level language (such as COBOL), and not yet
Multi-tier Systems
widely available in the popular visual toolsets.
Multi-tier computing allows you to write programs that are
Three tier with message server: Messaging is another way to distributed across a network. It allows you to build applications
implement three tier architectures. Messages are prioritized and that run on a server, and that can be called by client programs.
processed asynchronously. Messages consist of headers that The server can be on one machine, the client on another
contain priority information, and the address and identification machine. The two programs work in tandem, each using the
number. The message server connects to the relational DBMS resources available on their own machine, and neither imping-
and other data sources. The difference between TP monitor ing significantly on the resources available on the other machine.
technology and message server is that the message server
One way to begin to understand multi-tier computing is to
architecture focuses on intelligent messages, whereas the TP
start by thinking about the simplest, and most primitive form
Monitor environment has the intelligence in the monitor, and
of this technology. What’s the smallest, simplest, subset of
treats transactions as dumb data packets. Messaging systems are
multi-tier technology that needs to be present before everyone
good solutions for wireless infrastructures.
can agree that the technology involved is indeed “multi-tier”
Three tier with an application server: The three tier application technology? In my opinion, the minimum necessary in order to
server architecture allocates the main body of an application to create a multi-tier application is the simple ability to make
run on a shared host rather than in the user system interface remote function calls.
client environment. The application server does not drive the
A remote function call is a call to a method on a server that
GUIs; rather it shares business logic, computations, and a data
resides on a different machine than the one you are currently
retrieval engine. Advantages are that with less software on the
using. If you are running program A on machine X, and you
client there is less security to worry about, applications are more
call a function on program B that is running on machine Y, then
scalable, and support and installation costs are less on a single
you are doing multi-tier computing.
server than maintaining each on a desktop client. The applica-
In short, Multi-tier distributed computing, in its simplesttion server design should be used when security, scalability, and
possible form, is about making remote function calls. If youcost are major considerations.
have a client program on one machine that calls a function or
Three tier with an ORB architecture: Currently industry is
method on a binary file located on a second machine, then you
working on developing standards to improve interoperability
are doing distributed computing. The crucial point here is that
and determine what the common Object Request Broker (ORB)
you don’t load the server program or DLL into the memory
will be. Developing client/server systems using technologies
space of your own machine; instead, the function call executes
that support distributed objects holds great promise, as these
on the remote machine.
technologies support interoperability across languages and
Complex Multi-tier Systemsplatforms, as well as enhancing maintainability and adaptability
Of course, most multi-tier systems over something moreof the system. There are currently two prominent distributed
complex than the mere ability to call a remote function. Remoteobject technologies:
function calls are indeed the basis of the technology, but there is• Common Object Request Broker Architecture (CORBA)
more to the subject than the presence of that one single
• COM/DCOM (see Component Object Model (COM),
technology. In particular, multi-tier technology involves the
DCOM, and Related Capabilities).
creation of servers that provide specific services to clients. The
Industry is working on standards to improve interoperability best multi-tier technologies also leverage the power of object
between CORBA and COM/DCOM. The Object Management oriented programming.
Group (OMG) has developed a mapping between CORBA and
Multi-tier servers provide services available on the net, which
COM/DCOM that is supported by several products.
your client program can use when needed. Often, you ask a
Distributed/collaborative enterprise architecture: The distrib- distributed server application to manipulate some data, like
uted/collaborative enterprise architecture emerged in 1993 (see reporting on the latest score of a baseball game, the price of a
© Copy Right: Rai University
stock, or the salary of an employee. Each of these tasks are A peer can initiate requests, and it can respond to requests from
services that are available to client applications. The client asks other peers in the network. The ability to make direct exchanges
the server to perform the task. The server does the work, and with other users liberates P2P users from the traditional
passes the result back to the client. The client program then dependence on central servers. Users have a higher degree of
formats the result and shows it to the user. autonomy and control over the services they utilize.
The goal is to distribute the load of programs across the One of the greatest benefits of P2P computing is community.
network, rather than having each program run on the client P2P makes it possible for users to organize themselves into ad
machine. hoc groups that can efficiently and securely fulfill requests, share
resources, collaborate, and communicate. As P2P computingThe web is a classic example of a distributed architecture. You
evolves, we can anticipate the emergence of a wide variety ofhave the browser on one machine, and executables such as a
these online communities.server or a CGI application running on a second machine. The
client asks the server to do something, and it sends back an While a peer is a computer that behaves as a client in the client/
answer. You don’t need to load the server into the address server model, it also contains an additional layer of software
space of the client. The work is done on the server; it is that allows it to perform server functions. The peer computer
distributed across the network. All that is sent back to the client can respond to requests from other peers. The scope of the
machine is the result of the request or query. requests and responses, and how they are executed, are applica-
Multi-tier Programming and Databases
We can pass datasets back and forth as parameters to a function
or method. I can be in a client program and ask a server to
execute a query and return a data set to me as a parameter or as a
function result. Then I show the user the resulting data set, and
allow the user to edit the data set. Finally, the edited data set can
be sent back across the network and the database can be
The user does not need to have any database tools on their
machine, nor do they need to configure any databases or aliases.
All the work is done on the server. The work load is “distrib-
uted” across the network. The client provides the ability to
display and edit data, the server provides the ability to safely
retrieve and update the data from a database.
You have used systems like this many times, when you browse
Figure 4. Peer-to-Peer system
the web and go to a site that shows you the scores of games,
Typically, there will be a request for access to resources thattoday’s weather, or the price of a stock. We all use distributed
belong to the other peer. The request may be for informationcomputing all the time, but there is more that can be done with
on content and files, or for a file to be read or copied, computa-it than we see on the web. The internet of HTTP, HTML, XML
tions to be performed, or a message file to be passed on toand browsers is one very powerful way to create distributed
others. When “computing” in P2P computing is used as aapplications. However, technologies like CORBA and DCOM
noun, it refers to a framework or computing model. Thisallow us to create object oriented systems that more closely
framework provides the capabilities that allow peers to directlymirror the architectures in stand alone applications.
interact. An important characteristic of the direct-interaction
Peer-to-Peer Systems
capability is that the computing environment becomes decen-
P2P computing provides an alternative to the traditional client/
server architecture. While employing the existing network,
When the “computing” in P2P computing is used as a verb, itservers, and clients infrastructure, P2P offers a computing
refers to what we do with P2P framework. Many end-usermodel that is orthogonal to the client/server model.
applications become possible through the P2P services,
The two models coexist, intersect, and complement each other.
including storage, computations, messaging, security, distribu-
In a client/server model, the client makes requests of the server
tion, and more. What unifies these application types is sharing
with which it is networked. The server, typically an unattended
of resources with some form of collaboration.
system, responds to the requests and acts on them.
Some P2P evangelists draw a distinction between so-called
With P2P computing, each participating computer, referred to as
“pure P2P computing” and “hybrid P2P”. The term “pure P2P
peer, functions as a client with a layer of server functionality.
computing” refers to a model, such as Freenet, where all
This allows the peer to act both as a client and as a server within
participating computers are peers. No central server is used to
the context of a given application. P2P applications build on
control, coordinate, or manage the exchanges among the peers.
such functions as storage, computations, messaging, security,
In the “hybrid P2P” computing model, the application relies onand file distribution, when handled through direct exchanges
a central server to perform some of the required functions. Thebetween peers.
degree of involvement varies with the application. For example,
© Copy Right: Rai University
Napster requires the user to first connect to a control server, In a centrally coordinated system, coordination between peers is
where the directory of all available files is stored. controlled and mediated by a central server, although peers may
later act on information received from the central server toWithin P2P, there are three categories of systems:
contact one another directly. The hierarchical peer-to-peer system
• Centralized systems: where every peer connects to a server
devolves some or all of the coordination responsibility down
which coordinates and manages communication. Some
from the center to a tree of coordinators. Here, peers are
examples here include the CPU sharing applications e.g.
organized into hierarchies of groups, where communication
between peers in the same group is mediated by a local coordi-
• Brokered systems: where peers connect to a server in order to nator, but communication between peers in different groups is
discover other peers, but then manage the communication passed upwards to a higher level coordinator. Finally, the
themselves (e.g. Napster). This is also called Brokered P2P. decentralized peer-to-peer systems have no notion of global
• Decentralized systems: where peers run independently coordination at all. Communication is handled entirely by peers
without the need for centralized services. Here, the discovery operating at a local level.
is decentralized and the communication takes place between The P2P computing model offers a number of compelling
the peers. Peers do not need a known centralized service for advantages to individual users and large organizations. These
them to operate e.g. Gnutella, Freenet advantages can be divided into technical benefits and social
Most Internet services are distributed using the traditional appeal.
client/server (centralized) architecture. In this architecture, clients Technically, P2P provides the opportunity to make use of vast
connect to a server using a specific communications protocol untapped resources that go unused without it. These resources
(e.g. FTP) to obtain access to a specific resource. Most of the include processing power for large-scale computations and
processing involved in delivering a service usually occurs on the enormous storage potential.
server, leaving the client relatively unburdened. Most popular
P2P allows the elimination of the single-source bottleneck. P2P
Internet applications, including the World Wide Web, FTP,
can be used to distribute data and control and load-balance
telnet, and email, use this service-delivery model. Unfortunately,
requests across the Net. In addition to helping optimize
this architecture has a major drawback, that is, as the number of
performance, the P2P mechanism also may be used to eliminate
clients increase (and therefore load and bandwidth) the server
the risk of a single point of failure. When P2P is used within
becomes a bottleneck and can eventually result in the server not
the enterprise, it may be able to replace some costly data center
being able to handle any additional clients.
functions with distributed services between clients. Storage, for
The advantage of the client/server model is that it requires less data retrieval and backup, can be placed on clients. In addition,
computational power on the client side. However, this has been the P2P infrastructure allows direct access and shared space, and
somewhat circumvented sue to the ever increasing CPU power this can enable remote maintenance capability.
and therefore most desktop PCs are ludicrously overpowered to
Much of the wide appeal of P2P is due to social and psycho-
operate as simple clients e.g. for browsing and email.
logical factors. For example, users can easily form their own
True P2P systems therefore are those which are fully decentral- autonomous online communities at the edge of the Net, and
ized, both in look-up and in communication. If we look at our run them as they collectively choose. Many of these P2P
P2P definition above, this very much implies that this is the case communities will be ever changing and dynamic in that users
since any kind of centralization means operating within the can come and go, or be active or not. Other users will enjoy the
scope of DNS and therefore contradicts this definition. ability to bypass centralized control. P2P makes users autono-
P2P therefore has the capability of serving resources with high mous.
availability at a much lower cost while maximizing the use of Here are a few examples of the areas where P2P application can
resources from every peer connected to the P2P network. be applied
Whereas client/server solutions rely on costly bandwidth,
• Community Web network. Any group with specific common
equipment, and location to maintain a robust solution, P2P can
interests, including a family or hobbyists, can use lists and a
offer a similar level of robustness by spreading network and
Web site to create their own intranet.
resource demands across the network. Note though that some
• e-Business. P2P can add new capabilities, includingmiddleware architectures used to program such systems are
connecting and enabling the links of a supply chain,often capable of operating in one or more of these modes.
distributing information, content, or software more
Peer-to-peer systems are a class of distributed systems that are
effectively, and keeping information items on their original
biased to more of a decentralized approach. Typically, in peer-to-
node with a central directory or a search capability.
peer systems there is no global notion of centralization and
• Gaming. A P2P infrastructure provides a natural foundationsuch systems are primarily concerned with smaller distributed
for the development of online community games that arelevels of centralization with respect to communication. Peer-to-
not centrally controlled. Developers can focus on gamepeer system can be classified into three main categories:
features instead of the interface to the communications
• centrally coordinated
• hierarchical
• decentralized
© Copy Right: Rai University
• Search engines. Fresh, up-to-date information can be found ring to act as a distributed server. Communication between the
by searching directly across the space where the desired item is nodes coordinates state-sharing, producing a group of nodes
likely to reside. that provide identical function but have failover and load-
balancing capabilities. Unlike the other topologies here, ring• Virus protection. Relationships among the nodes on the P2P
systems are generally built assuming the machines are all nearbycommunity allow for collaboration in virus detection and
on the network and owned by a single organization.warning, as well as automatic quarantining of the
community against further attacks.
• Edge services. There are instances when it is desirable to place
the data, prior to its use, closer to the client requesting it.
Online training modules that contain video segments, for
example, provide the desired effect when the large data files
are located close to the online trainee. Multiple clients
offering storage space can provide more flexible and reliable
service compared to a server.
• Collaborative development. The scope can range from
developing software products to composing a document to
applications like rendering graphics.
Distributed Systems Topologies Hierarchical
In this section, I focus on the topology of the distributed Hierarchical systems have a long history on the Internet, but in
systems — how the different computers in the system fit practice are often overlooked as a distinct distributed systems
together. Four basic topologies are in use on the Internet: topology. The best-known hierarchical system on the Internet is
centralized and decentralized, but also hierarchical and ring the Domain Name Service, where authority flows from the root
systems. These topologies can be used by themselves, or name-servers to the server for the registered name and often
combined into one system creating hybrid systems. down to third-level servers. NTP, the Network Time Protocol,
creates another hierarchical system.In NTP, there are root timeBasic distributed Systems Topologies
servers that have authoritative clocks; other computers synchro-The debate between centralized and decentralized systems is
nize to root time servers in a self-organizing tree. NTP has overfundamentally about topology — in other words, how the
175,000 hosts with most hosts being two or three links awaynodes in the system are connected. Topology can be considered
from a root time source. Usenet is another large hierarchicalat many different levels: physical, logical, connection, or
system, using a tree-like structure to copy articles betweenorganizational.
servers. It is particularly interesting in that the underlying
For this analysis, topology is considered in terms of the
protocols are symmetric but in practice, articles propagate along
information flow. Nodes in the graph are individual computers
tree-like paths with a relatively small set of hosts acting as the
or programs, links between nodes indicate that those nodes are
sharing information regularly in the system. Typically, an edge
implies that the two nodes are directly sharing bits across a
network link. For simplicity, I do not consider the direction of
information flow; edges are considered undirected.
Four common topologies will be explained here: centralized,
ring, hierarchical, and decentralized. (A fifth distributed system
pattern, group communication, is not considered in this
Centralized systems are the most familiar form of topology,
typically seen as the client/server pattern used by databases, web
servers, and other simple distributed systems. All function and
information is centralized into one server with many clients
connecting directly to the server to send and receive informa-
The final topology we consider here is decentralized systems,
tion. Many applications called “peer-to-peer” also have a
where all peers communicate symmetrically and have equal roles.
centralized component. SETI@Home is a fully centralized
Gnutella is probably the most “pure” decentralized system used
architecture with the job dispatcher as the server. And the
in practice today, with only a small centralized function to
original Napster’s search architecture was centralized, although
bootstrap a new host. Many other file-sharing systems are also
the file sharing was not.
designed to be decentralized, such as Freenet or OceanStore.
Ring Decentralized systems are not new; the Internet routing
A single centralized server cannot handle high client load, so a architecture itself is largely decentralized, with the Border
common solution is to use a cluster of machines arranged in a
© Copy Right: Rai University
Gateway Protocol used to coordinate the peering links between Centralized + Decentralized
various autonomous systems. A new wave of peer-to-peer systems is advancing an architecture
of centralized systems embedded in decentralized systems. This
hybrid topology is realized with hundreds of thousands of
peers in the FastTrack file-sharing system used in KaZaA and
Morpheus. Most peers have a centralized relationship to a
“supernode,” forwarding all file queries to this server (much like
a Napster client sends queries to the Napster server). But
instead of supernodes being standalone servers, they band
themselves together in a Gnutella-like decentralized network,
propagating queries. Internet email also shows this kind of
hybrid topology. Mail clients have a centralized relationship with
a specific mail server, but mail servers themselves share email in
Hybrid Topologies a decentralized fashion.
Distributed systems often have a more complex organization
than any one simple topology. Real-world systems often
combine several topologies into one system, making a hybrid
topology. Nodes typically play multiple roles in such a system.
For example, a node might have a centralized interaction with
one part of the system, while being part of a hierarchy in
another part.
Centralized + Ring
As mentioned above, serious web server applications often
have a ring of servers for load balancing and failover. The server
system itself is a ring, but the system as a whole (including the
clients) is a hybrid: a centralized system where the server is itself Other Topologies
a ring. The result is the simplicity of a centralized system (from There are limitless possibilities in combining various kinds of
the client’s point of view) with the robustness of a ring. architectures. A centralized system could have a hierarchy of
machines in the role of server. Decentralized systems could be
built that span different rings or hierarchies. Systems could
conceivably be built with three or more topologies combined,
although the resulting complexity may be too difficult to
manage. Topology is a useful simplifying tool in understanding
the architecture of distributed systems.
Distributed Mutual Exclusion
Mutual Exclusion
Systems involving multiple processes are often most easily
programmed using critical regions. When a process has to read
Centralized + Centralized
or update certain shared data structures, it first enters a critical
The server in a centralized system is itself often a client of one
region to achieve mutual exclusion and ensure that no other
or more other servers. Stacking multiple centralized systems is
process will use the shared data structures at the same time. In
the core of n-tier application frameworks. For example, when a
single processor systems, critical regions are protected using
web browser contacts a server, the software on that server may
semaphores, monitors, and similar constructs. We will now
just be formatting results into HTML for presentation and
look at a few examples of how critical regions and mutual
itself calling to servers hosting business logic or data. Web
exclusion can be implemented in distributed systems.
services intermediaries such as Grand Central Networks also
A Centralized Algorithmcreate several layers of centralized system. Centralized systems
The most straightforward way to achieve mutual exclusion in aare often stacked as a way to compose function.
distributed system is to simulate how it is done in a one-
processor system. One process is elected as the coordinator (e.g.,
the one running on the machine with the highest network
address). Whenever a process wants to enter a critical region, it
sends a request message to the coordinator stating which critical
region it wants to enter and asking for permission. If no other
process is currently in that critical region, the coordinator sends
back a reply granting permission, as shown in Fig 5. When the
reply arrives, the requesting process enters the critical region.
© Copy Right: Rai University
conceptually including itself. The sending of messages is
assumed to be reliable; that is, every message is acknowledged.
Reliable group communication if available, can be used instead
of individual messages.
When a process receives a request message from another
process, the action it takes depends on its state with respect to
the critical region named in the message.
Three cases have to be distinguished:
Figure 5. (a) Process 1 asks the coordinator for permission
1. If the receiver is not in the critical region and does not want
to enter a critical region. Permission is granted. (b)
to enter it, it sends back an OK message to the sender.
Process 2 then asks permission to enter the same critical
2. If the receiver is already in the critical region, it does not reply.region. The coordinator does not reply. (c) When process 1
Instead, it queues the request.exits the critical region, it tells the coordinator, which then
replies to 2. 3. If the receiver wants to enter the critical region but has not
yet done so, it compares the timestamp in the incomingNow suppose that another process, 2 in Fig 5. (b), asks for
message with the one contained in the message that it haspermission to enter the same critical region. The coordinator
sent everyone. The lowest one wins. If the incomingknows that a different process is already in the critical region, so
message is lower, the receiver sends back an OK message. Ifit cannot grant permission. The exact method used to deny
its own message has a lower timestamp, the receiver queuespermission is system dependent. In Fig. 5(b), the coordinator
the incoming request and sends nothing.just refrains from replying, thus blocking process 2, which is
waiting for a reply. Alternatively, it could send a reply saying After sending out requests asking permission to enter a critical
“permission denied” Either way, it queues the request from 2 region, a process sits back and waits until everyone else has
for the time being and waits for more messages. given permission. As soon as all the permissions are in, it may
enter the critical region. When it exits the critical region, it sendsWhen process 1 exits the critical region, it sends a message to
OK messages to all processes on its queue and deletes them allthe coordinator releasing its exclusive access, as shown in Fig 5.
from the queue.(c). The coordinator takes the first item off the queue of
deferred requests and sends that process a grant message. If the Let us try to understand why the algorithm works. If there is
process was still blocked (i.e., this is the first message to it), it no conflict, it clearly works. However, suppose that two
unblocks and enters the critical region. If an explicit message has processes try to enter the same critical region simultaneously, as
already been sent denying permission, the process will have to shown in Fig 6. (a).
poll for incoming traffic or block later. Either way, when it sees
the grant, it can enter the critical region. It is easy to see that the
algorithm guarantees mutual exclusion: the coordinator only
lets one process at a time into each critical region. It is also fair,
since requests are granted in the order in which they are received.
No process ever waits forever (no starvation). The scheme is
easy to implement, too, and requires only three messages per
use of a critical region (request, grant, release). It can also be
used for more general resource allocation rather than just
managing critical regions.
Figure 6. (a) Two processes want to enter the same critical
The centralized approach also has shortcomings. The coordina- region at the same moment. (b) Process 0 has the lowest
tor is a single point of failure, so if it crashes, the entire system timestamp, so it wins. (c) When process 0 is done, it sends
may go down. If processes normally block after making a an OK also, so 2 can now enter the critical region.
request, they cannot distinguish a dead coordinator from
Process 0 sends everyone a request with timestamp 8, while at
“permission denied” since in both cases no message comes
the same time, process 2 sends everyone a request with
back. In addition, in a large system, a single coordinator can
timestamp 12. Process 1 is not interested in entering the critical
become a performance bottleneck.
region, so it sends OK to both senders. Processes 0 and 2 both
Ricart and Agrawala (Distributed) Algorithm see the conflict and compare timestamps. Process 2 sees that it
Ricart and Agrawala’s algorithm requires that there be a total has lost, so it grants permission to 0 by sending OK. Process 0
ordering of all events in the system. That is, for any pair of now queues the request from 2 for later processing and enters
events, such as messages, it must be unambiguous which one the critical region, as shown in Fig. 6(b). When it is finished, it
actually happened first. removes the request from 2 from its queue and sends an OK
message to process 2, allowing the latter to enter its criticalThe algorithm works as follows. When a process wants to enter
region, as shown in Fig.6(c). The algorithm works because ina critical region, it builds a message containing the name of the
the case of a conflict, the lowest timestamp wins and everyonecritical region it wants to enter, its process number, and the
agrees on the ordering of the timestamps. Note that thecurrent time. It then sends the message to all other processes,
situation in Fig.6 would have been essentially different if
© Copy Right: Rai University
process 2 had sent its message earlier in time so that process 0 in numerical order of network addresses or some other means.
had gotten it and granted permission before making its own It does not matter what the ordering is. All that matters is that
request. In this case, 2 would have noticed that it itself was in a each process knows who is next in line after itself.
critical region at the time of the request, and queued it instead
of sending a reply.
As with the centralized algorithm discussed above, mutual
exclusion is guaranteed without deadlock or starvation. The
number of messages required per entry is now 2(n-1), where
the total number of processes in the system is n. Best of all, no
single point of failure exists.
Unfortunately, the single point of failure has been replaced by n
points of failure. If any process crashes, it will fail to respond to
requests. This silence will be interpreted (incorrectly) as denial of
Figure 7. (a) An unordered group of processes on a
permission, thus blocking all subsequent attempts by all
network. (b) A logical ring constructed in software.
processes to enter all critical regions. Since the probability of one
When the ring is initialized, process 0 is given a token. Theof the n processes failing is at least n times as large as a single
token circulates around the ring. It is passed from process k tocoordinator failing, we have managed to replace a poor algo-
process k +1 (modulo the ring size) in point-to-point mes-rithm with one that is more than n times worse and requires
sages. When a process acquires the token from its neighbor, itmuch more network traffic to boot. The algorithm can be
checks to see if it is attempting to enter a critical region. If so,patched up by the same trick that we proposed earlier.
the process enters the region, does all the work it needs to, and
When a request comes in, the receiver always sends a reply, either
leaves the region. After it has exited, it passes the token along
granting or denying permission. Whenever either a request or a
the ring. It is not permitted to enter a second critical region
reply is lost, the sender times out and keeps trying until either a
using the same token.
reply comes back or the sender concludes that the destination is
If a process is handed the token by its neighbor and is notdead. After a request is denied, the sender should block waiting
interested in entering a critical region, it just passes it along. As afor a subsequent OK message.
consequence, when no processes want to enter any critical
Another problem with this algorithm is that either a group
regions, the token just circulates at high speed around the ring.
communication primitive must be used, or each process must
The correctness of this algorithm is easy to see. Only onemaintain the group membership list itself, including processes
process has the token at any instant, so only one process canentering the group, leaving the group, and crashing. The
actually be in a critical region. Since the token circulates amongmethod works best with small groups of processes that never
the processes in a well-defined order, starvation cannot occur.change their group memberships.
Once a process decides it wants to enter a critical region, at worst
Finally, recall that one of the problems with the centralized
it will have to wait for every other process to enter and leave one
algorithm is that making it handle all requests can lead to a
critical region. As usual, this algorithm has problems too. If the
bottleneck. In the distributed algorithm, all processes are
token is ever lost, it must be regenerated. In fact, detecting that
involved in all decisions concerning entry into critical regions. If
it is lost is difficult, since the amount of time between succes-
one process is unable to handle the load, it is unlikely that
sive appearances of the token on the network is unbounded.
forcing everyone to do exactly the same thing in parallel is going
The fact that the token has not been spotted for an hour does
to help much. Various minor improvements are possible to
not mean that it has been lost; somebody may still be using it.
this algorithm. For example, getting permission from everyone
The algorithm also runs into trouble if a process crashes, butto enter a critical region is really overkill. All that is needed is a
recovery is easier than in the other cases. If we require a processmethod to prevent two processes from entering the critical
receiving the token to acknowledge receipt, a dead process willregion at the same time. The algorithm can be modified to
be detected when its neighbor tries to give it the token and fails.allow a process to enter a critical region when it has collected
At that point the dead process can be removed from the group,permission from a simple majority of the other processes,
and the token holder can throw the token over the head of therather than from all of them. Of course, in this variation, after a
dead process to the next member down the line, or the oneprocess has granted permission to one process to enter a critical
after that, if necessary. Of course, doing so requires thatregion, it cannot grant the same permission to another process
everyone maintains the current ring configuration.until the first one has released that permission.
Database System
A Token Ring Algorithm
Databases today are essential to every business. They are used to
A completely different approach to achieving mutual exclusion
maintain internal records, to present data to customers and
in a distributed system is illustrated in Fig.7. Here we have a bus
clients on the World-Wide-Web, and to support many other
network, as shown in Fig.7 (a), (e.g., Ethernet), with no
commercial processes. Databases are likewise found at the core
inherent ordering of the processes. In software, a logical ring is
of many scientific investigations. They represent the data
constructed in which each process is assigned a position in the
gathered by astronomers, by investigators of the human
ring, as shown in Fig. 7(b). The ring positions may be allocated
© Copy Right: Rai University
genome, and by biochemists exploring the medicinal properties
of proteins, along with many other scientists.
The power of databases comes from a body of knowledge and
technology that has developed over several decades and is
embodied in specialized software called a database management
system, or DBMS, or more colloquially a database system. A
DBMS is a powerful tool for creating and managing large
amounts of data efficiently and allowing it to persist over long
periods of time, safely. These systems are among the most
complex types of software available.
The capabilities that a DBMS provides the user are:
1. Persistent storage: Like a file system, a DBMS supports the
storage of very large amounts of data that exists
independently of any processes that are using the data.
However, the DBMS goes far beyond the file system in
providing flexibility, such as data structures that support
efficient access to very large amounts of data.
2. Programming interface: A DBMS allows the user or an
application program to access and modify data through a
powerful query language. Again, the advantage of a DBMS
over a file system is the flexibility to manipulate stored data
in much more complex ways than the reading and writing of
3. Transaction management: A DBMS supports concurrent
access to data, i.e., simultaneous access by many distinct
processes (called “transactions”) at once. To avoid some of
the undesirable consequences of simultaneous access, the
DBMS supports isolation, the appearance that transactions
execute one-at-a-time, and atomicity, the requirement that
transactions execute either completely or not at all. A DBMS
Figure 8. Database management system componentsalso supports durability, the ability to recover from failures or
errors of many types. Since the diagram is complicated, we shall consider the details in
several stages.The DBMS is expected to:
1. Allow users to create new databases and specify their schema First, at the top, we suggest that there are two distinct sources
(logical structure of the data), using a specialized language of commands to the DBMS:
called a data-definition language. 1. Conventional users and application programs that ask for
2. Give users the ability to query the data (a “query” is database data or modify data.
lingo for a question about the data) and modify the data, 2. A database administrator: a person or persons responsible
using an appropriate language, often called a query language for the structure or schema of the database.
or data-manipulation language.
Data-Definition Language Commands
3. Support the storage of very large amounts of data - many
The second kind of command is the simpler to process, and we
gigabytes or more over a long period of time, keeping it
show its trail beginning at the upper right side of Fig 8. For
secure from accident or unauthorized use and allowing
example, the database administrator, or DBA, for a university
efficient access to the data for queries and database
registrar’s database might decide that there should be a table or
relation with columns for a student, a course the student has
4. Control access to data from many users at once, without taken, and a grade for that student in that course. The DBA
allowing the actions of one user to a effect other users and might also decide that the only allowable grades are A, B, C, D,
without allowing simultaneous accesses to corrupt the data and F. This structure and constraint information is all part of
accidentally. the schema of the database.
It is shown in Fig. 8. as entered by the DBA, who needs specialOverview of a Database Management
authority to execute schema-altering commands, since these canSystem
have profound effects on the database. These schema-alteringIn Fig 8 we see an outline of a complete DBMS. Single boxes
DDL commands (“DDL” stands for “data-definition lan-represent system components, while double boxes represent in-
guage”) are parsed by a DDL processor and passed to thememory data structures. The solid lines indicate control and
execution engine, which then goes through the index/file/data flow, while dashed lines indicate data flow only.
© Copy Right: Rai University
2A.501 487