2024年3月26日发(作者:大地高清神马电影网)
Distributed Systems Page 2-1
2 Distributed Systems
Distributed systems are the backbone of modern computer configurations, particularly configurations in
which SCCs exist. In today’s world, computers systematically rely on remote computers to store
information, to perform specialized calculations, or to otherwise work together to implement an
information technology solution. Tanenbaum describes these distributed system as
“A distributed system is a collection of independent computers that appear to the users of
the system as a single computer.”
1
A distributed system is typically a collection of autonomous devices (computers) that are
interconnected by some means for exchanging information. Systems people often think of a distributed
system as being a collection of computing nodes interconnected by a network. Informally, you can always
think of a node as being some kind of a computer, each with a communication device that connects it to a
shared data switching network Thus, collections of computers connected with a LAN or the Internet are
the basis of distributed systems.
Tanenbaum emphasizes that the OS in a distributed system is designed so that when an application
program is executed on the distributed system, it could use various nodes in the network without any
special programming. That is, one important goal of a distributed system is that a program that runs on a
single computer can also run (without modification) on a distributed system where it may use many
computers during its execution. Programmers say that the distribution of the execution over multiple
computers is transparent, meaning that the way that the program is written is the same whether it executes
on a single computer or on the distributed system. In reality, contemporary distributed systems do a pretty
good job of making the distribution transparent, but it is usually not perfect: the program may need minor
modifications to execute on a distributed system – the amount of modification required reflects the
closeness of the real system to a truly distributed system.
People are inspired to use distributed systems for a several primary reasons:
• It might be possible to execute a conventional program in less time on a distributed system than on
an individual computer, since multiple computers could be working on a single problem at the
same time.
• A distributed system makes it possible to incorporate specialized computers to perform specialize
functions – possibly more efficiently or producing a better result. For example if an organization
needs frequent access to a diversity of data, a distributed system could incorporate a computer that
is dedicated to implementing a database. We say that such computers provide specialized services
to other general purpose computers.
• It is sometimes beneficial to place a computer “close” to the source of its data. In physical
closeness, this can enable the computer to validate and pre process data that it has collected prior
to storing it for general use. For example, a point-of-sale terminal can manage on optical bar
reader, enabling the terminal to detect and correct read errors without interacting with a computer
that keeps track of total sales. Another interpretation of “close” has to do with logical proximity:
organizations often prefer to store information for which they are responsible in a computer that
they control. For example, a test lab might prefer to keep data related to product testing on a test
lab machine rather than saving it in a centralized database or file system.
• Reliability can be built into a distributed system by duplicating computers to perform critical
functions. For example, if a computer manages a corporation’s transactions, the corporation may
decide it is worth the cost and effort to duplicate each transaction to avoid information loss due to
a machine failure.
• Distributed system designs can sometimes enable a system to scale its resources (such as
processing capacity) to match its program execution load.
As a result of these (and other) reasons, and because of the evolution of technologies (such as networks),
distributed systems are a cost-effective way of configuring computational facilities.
1
[Tanenbaum, 1995], page 2.
G. Nutt Single-Threaded SCC Operating Systems
Creative Commons Attribution-Share Alike 3.0 U.S. License
Distributed Systems Page 2-2
2.1 Networks
Since distributed systems are collections of communicating computers, network technology is one of their
essential cornerstones. Section 1.3
introduced networks; in this section we will take a closer look at the
technology to see how network devices are similar and different to/from other I/O devices, and to see how
network technology plays such an important role in distributed systems.
2.1.1 Network Devices
Networks differ from many other devices in the way that the software views a network device. One could
install a network device on a computer, but it would be useless unless the device was then connected to an
actual data transmission network. Equally obvious, the network would still be worthless if there were no
other computers attached to the data transmission network. A network device depends on the existence of
an external, shared mechanism that can transmit and receive signals to/from designated recipients; we will
refer to this data transmission mechanism as the subcommunication network (see Figure 2-1, which is the
same as Figure 1-10).
Application
CPU
CPU
CPU
CPU
Application
Bus
Bus
Controller
Controller
Comm
Comm
Device
Device
Controller
Controller
Comm
Comm
Device
Device
Subcommunication
Network
Figure 2-1: Network Communication
Notice that in the case of a network device, the actual device is the subcommunication network; that is,
in the network case the actual device is not really part of the computer’s configuration at all. The
computer’s component is the device controller that adapts the computer to the subcommunication network,
often referred to as the network interface controller, (or NIC). The NIC’s job is to be able to physically
and electronically connect to the subcommunication network, and to be able to write data to (and read data
from) the network. For send (or output) operations, the NIC translates data from the computer’s internal
binary form into the subcommunication network’s internal form, and then transmits the data over the
subcommunication network to a specific remote node. On input operations, the NIC receives data that is
directed to it by the subcommunication network, and then translates it from the subcommunications
network’s internal form into the computer’s internal form. NIC I/O commands are similar to commands for
other devices, namely to read and write data from/to the subcommunication network. Part of what makes
this tricky is that when one computer’s NIC writes data, then the receiving computer’s NIC must be ready
to read the data, since the subcommunication network only transfer information, but does not buffer it until
the recipient is ready to receive it.
This means that the NIC is normally designed to receive information that is transmitted to a remote
computer even if the software on the receiving computer may be busy doing some other task. The NIC
buffers incoming network data until the host computer’s software issues a read operation on the NIC; only
then does the NIC return information from its buffers (sent by a remote computer) as a result of the read.
Obviously, every NIC has a fixed amount of memory that it can use for a buffer. Therefore it can only
Single-Threaded SCC Operating Systems
Creative Commons Attribution-Share Alike 3.0 U.S. License
G. Nutt
发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1711443781a1907284.html
评论列表(0条)