26 Cloud Computing
of the queue. If the process finishes before the end of the time-slice, it
releases the CPU voluntarily. In either case, the CPU scheduler assigns the
CPU to the next process in the queue. Every time a process is granted the
CPU, a context switch occurs, which adds overhead to the process execu-
tion time. To users it appears that all of the programs are executing at the
same time.
Resource contention problems often arose in these early systems.
Explicit requests for resources led to a condition known as deadlock. Com-
petition for resources on machines with no tie-breaking instructions led to
the critical section routine. Contention occurs when several processes
request access to the same resource. In order to detect deadlock situations, a
counter for each processor keeps track of the number of consecutive
requests from a process that have been rejected. Once that number reaches a
predetermined threshold, a state machine that inhibits other processes from
making requests to the main store is initiated until the deadlocked process is
successful in gaining access to the resource.
1.4.2 Vector Processing
The next step in the evolution of parallel processing was the introduction of
multiprocessing. Here, two or more processors share a common workload.
The earliest versions of multiprocessing were designed as a master/slave
model, where one processor (the master) was responsible for all of the tasks
to be performed and it only off-loaded tasks to the other processor (the
slave) when the master processor determined, based on a predetermined
threshold, that work could be shifted to increase performance. This arrange-
ment was necessary because it was not then understood how to program the
machines so they could cooperate in managing the resources of the system.
Vector processing was developed to increase processing performance by
operating in a multitasking manner. Matrix operations were added to com-
puters to allow a single instruction to manipulate two arrays of numbers
performing arithmetic operations. This was valuable in certain types of
applications in which data occurred in the form of vectors or matrices. In
applications with less well-formed data, vector processing was less valuable.
1.4.3 Symmetric Multiprocessing Systems
The next advancement was the development of symmetric multiprocessing
systems (SMP) to address the problem of resource management in master/
slave models. In SMP systems, each processor is equally capable and
Chap1.fm Page 26 Friday, May 22, 2009 11:24 AM
Server Virtualization 27
responsible for managing the workflow as it passes through the system. The
primary goal is to achieve sequential consistency, in other words, to make
SMP systems appear to be exactly the same as a single-processor, multipro-
gramming platform. Engineers discovered that system performance could
be increased nearly 10–20% by executing some instructions out of order.
However, programmers had to deal with the increased complexity and cope
with a situation where two or more programs might read and write the
same operands simultaneously. This difficulty, however, is limited to a very
few programmers, because it only occurs in rare circumstances. To this day,
the question of how SMP machines should behave when accessing shared
data remains unresolved.
Data propagation time increases in proportion to the number of pro-
cessors added to SMP systems. After a certain number (usually somewhere
around 40 to 50 processors), performance benefits gained by using even
more processors do not justify the additional expense of adding such proces-
sors. To solve the problem of long data propagation times, message passing
systems were created. In these systems, programs that share data send mes-
sages to each other to announce that particular operands have been assigned
a new value. Instead of a global message announcing an operands new
value, the message is communicated only to those areas that need to know
the change. There is a network designed to support the transfer of messages
between applications. This allows a great number processors (as many as
several thousand) to work in tandem in a system. These systems are highly
scalable and are called massively parallel processing (MPP) systems.
1.4.4 Massively Parallel Processing Systems
Massive parallel processing is used in computer architecture circles to refer to
a computer system with many independent arithmetic units or entire
microprocessors, which run in parallel.
27
“Massive” connotes hundreds if
not thousands of such units. In this form of computing, all the processing
elements are interconnected to act as one very large computer. This
approach is in contrast to a distributed computing model, where massive
numbers of separate computers are used to solve a single problem (such as
in the SETI project, mentioned previously). Early examples of MPP systems
were the Distributed Array Processor, the Goodyear MPP, the Connection
Machine, and the Ultracomputer. In data mining, there is a need to per-
form multiple searches of a static database. The earliest massively parallel
27. http://en.wikipedia.org/wiki/Massive_parallel_processing, retrieved 10 Jan 2009.
Chap1.fm Page 27 Friday, May 22, 2009 11:24 AM
28 Cloud Computing
processing systems all used serial computers as individual processing units in
order to maximize the number of units available for a given size and cost.
Single-chip implementations of massively parallel processor arrays are
becoming ever more cost effective due to the advancements in integrated-
circuit technology.
An example of the use of MPP can be found in the field of artificial
intelligence. For example, a chess application must analyze the outcomes of
many possible alternatives and formulate the best course of action to take.
Another example can be found in scientific environments, where certain
simulations (such as molecular modeling) and complex mathematical prob-
lems can be split apart and each part processed simultaneously. Parallel data
query (PDQ) is a technique used in business. This technique divides very
large data stores into pieces based on various algorithms. Rather than
searching sequentially through an entire database to resolve a query, 26
CPUs might be used simultaneously to perform a sequential search, each
CPU individually evaluating a letter of the alphabet. MPP machines are not
easy to program, but for certain applications, such as data mining, they are
the best solution.
1.5 Chapter Summary
In this chapter, we stressed the importance of knowing about the evolution
of computing in order to get an appreciation of how we got into the cloud
environment. Examining the history of computing hardware and software
helps us to understand why we are standing on the shoulders of giants. We
discussed how the rules computers use to communicate came about, and
how the development of networking and communications protocols has
helped drive the Internet technology growth we have seen in the last 20-plus
years. This, in turn, has driven even more changes in protocols and forced
the creation of new technologies to mitigate addressing concerns and
improve the methods used to communicate over the Internet. The use of
web browsers has led to huge Internet growth and a migration away from
the traditional data center. In the next chapter, we will begin to examine
how services offered to Internet users has also evolved and changed the way
business is done.
Chap1.fm Page 28 Friday, May 22, 2009 11:24 AM
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.18.4