搜档网
当前位置:搜档网 › Distributed Systems Page 2-1 2 Distributed Systems

Distributed Systems Page 2-1 2 Distributed Systems

Distributed Systems Page 2-1 2 Distributed Systems
Distributed Systems Page 2-1 2 Distributed Systems

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.

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). Bus Controller Controller Comm Device Comm Device CPU CPU Bus

Controller Controller Comm Device

Comm Device CPU CPU 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

store a fixed amount of information. It is important that the host computer be prepared to receive that

information within a short amount of time – otherwise the NIC buffer memory could overflow and data will be lost. Generalizing this line of thought, you can see that two computers can only communicate if they agree on a spectrum of issues, ranging from when will data be transmitted from one computer to another, which computer will transmit and which will receive, what will be the format of the data, and so on.

Standards can be used to establish the nature of the behavior of communicating computers. Thus, standardization is very important in network communication. The International Standards Organization (ISO) Open Systems Interconnect (OSI) Architecture (introduced in Chapter 1) is a general framework in which more detailed standards can be specified to facilitate common communication.

Let’s first focus on the NIC device: from the software perspective, the device controller is just like any other input and output device controller in that the software can write information to the controller and it can read information from the controller, even though there is really no “device” incorporated into the controller. The subtlety of the network arises from the amount of knowledge that can be incorporated in this “device” – Figure 2-2 illustrates the local host’s device-oriented view of a person using a remote computer. The local computer’s interface to the remote computer is the NIC, but the NIC’s “device” is actually a subcommunication network that can be used to communicate with any of a number of remote computers, some of which are attended by a human. If the local host asked a question of the “NIC device” the “device” could answer with the full intelligence of the user at the remote computer. This is the sense that makes NIC devices have an unusual behavior – the amount of intelligence in the logical device depends on the remote host, not on any local physical device hardware. Bus

NIC

NIC CPU CPU The “device”

Subcomm Network Subcomm Network NIC

CPU

Figure 2-2: A Local Host’s Perspective of a Remote Host and User

This dependence on the potentially complex behavior of the remote computer is the reason that the ISO OSI model is important. Ultimately, the OSI Architecture defines a layered set of behaviors that the local and remote hosts implicitly agree to use. Each level has an implied level of intelligence, for example, if the remote host computer really behaves like a digital camera, then the local host computer need not be

prepared to discuss anything more abstract than what a digital camera could understand. But if the remote host computer is prepared to execute a remote procedure for the local host computer, then the nature of the interaction between the two computers must contain substantially more detailed information.

Figure 2-3 represents the OSI Architecture levels. In the OSI model, two computers can communicate with one another if they are designed to operate using the same protocol at the same OSI layer. For

example, we might say that computers communicate at the data link layer using the Ethernet protocol if the two computers exchange information using an Ethernet LAN. As other examples, two computers might communicate at the transport layer using TCP; or they might communicate at the presentation layer using a

remote procedure call protocol. We will have much more to say about the details of particular layers and protocols as we learn more about programming distributed systems. Application

Application Presentation

Presentation Session

Session Transport

Transport Network

Network Data Link

Data Link Physical Physical Application Application Presentation Presentation Session Session Transport Transport Network Network Data Link Data Link Physical

Physical

Figure 2-3: The ISO OSI Model

As you can see in Figure 2-3, there are 7 levels of API defined in the ISO OSI model:

? Physical . The physical layer is the lowest layer in the model. This layer defines how bytes are to

be encoded and transmitted to other machines. The RS-232 asynchronous serial communication protocol (used to connect terminals, modems, and printers to computers) resembles a physical

layer protocol, although it is not normally considered to be an OSI network protocol. The Ethernet carrier sensing and collision detection techniques are good examples of a physical layer network protocol. Part of this layer of protocol is implemented in the subcommunication network (the part that dictates how signals are transmitted and received), and part of it is in the NIC.

? Data link . This layer is built on top of the physical layer and, in the case of Ethernet network, is

implemented in the NIC. (However, in the case of some older protocols like SLIP and PPP the

data link layer is a software implementation using an RS-232 physical layer.2 The data link layer defines a protocol that establishes frames of information that incorporate a header, a block of data, and a trailer – a frame is the data link name for a packet. A user of the data link layer can

exchange frames with another host machine on a network. The data link layer NIC

implementation will convert a frame into a stream of bytes when it sends a frame, and convert a

stream of bytes into a frame when it receives them.

? Network . The network layer creates a very large address space of communication “endpoints”

called an internet address space . This layer encouraged the development of the internet idea

(networks of networks ). Information is transmitted across the internet as packets . The network

layer is usually implemented as a part of the OS. That is, a network layer packet is transmitted

from one computer to another using data link layer frames. In order to use the public Internet , the computer uses the network (or higher) layered protocol for communication.

? Transport . The transport layer uses the network to provide various application interfaces to the

services implemented by the network layer, including block, byte stream, and record stream

communication. It is implemented, in part by the OS, with the remainder of the implementation

being other system software (in a library or as other middleware). Computers that use the

transport layer can exchange information as a stream of bytes. The transport layer converts a

stream of bytes into packets when it transmits information using the network layer, and vice versa when it receives information.

2 [Stevens, 1994], Chapter 2.

?

Session . The session layer extends the transport layer functionality by applying specific interprocess communication strategies. For example, a network message protocol or a remote procedure protocol would be implemented at the session layer. The session layer is typically implemented as application libraries. ?

Presentation . The presentation layer defines data abstraction and representation protocols. It is also implemented as library code. There are not may pure presentation layer protocols, other than things like the Sun RPC external data representation protocol.3 ? Application . The application layer refers to the application software for the distributed

computation. There are no standards for the application layer, since it is intended to apply to any domain. It exists in the model to illustrate where application programs fit into the layered

architecture.

After seeing the role of the various protocols, and in reviewing Figure 2-3, it is apparent that while the

crucial physical layer of the network is in the subcommunication network technology, much of the function of the network is in software. And since distributed computing depends on the perception of a seamless distribution of function across multiple computers (using the network), the behavior of distributed systems is greatly influenced by the character of the OS and other system software. We will focus on distributed programming and software in Chapter 3, and the remainder of the book is about OS software. Before

moving onto that discussion, we will discuss some other aspects of how a program can be distributed across execution engines – both within a computer, and across different computers.

2.2 Executing I/O Instructions

Almost every executing program needs to communicate with the external environment of the computer in order to do any useful work. For example, the program must obtain input data from a human, a sensor device, a storage device, or a communication device so that it will know which particular problem is to be solved. In the case of a sort algorithm, the external environment might supply the list of numbers to be sorted. Similarly, when the program has completed its execution on the input data, it will usually provide some output information to a human user, an actuator device, a storage device, or a communication device. The output is the product of executing the program on the input data. This basic idea for I/O is introduced in Section 1.2 and is summarized in Figure 2-4 (a combination of the information in Figures 1-7 and 1-8). Processor

Processor Primary Memory Primary Memory Controller Controller

Controller Controller Output Device

Input

Device Data in the External World

Figure 2-4: Input and Output Devices

All von Neumann computers are composed of a processor (or CPU), an executable memory, and multiple devices. Each of these 4 types of components is implemented as a separate unit of the hardware, 3 Srinivasan, R., “RFC 1832 – XDR: External Data Representation Standard,” IETF (Internet Engineering Task Force), Network Working Group, RCS 1832, August, 1995. See

https://www.sodocs.net/doc/704637697.html,/rfcs/rfc1832.html .

and each can perform its function relatively independent of – even at the same time as – the other functions. The processor executes almost every machine instruction, an important exception being the I/O instructions. Each I/O instruction is executed by a device. The device is started by an I/O command from the processor; it responds by performing the task specified by the command. For example, a device read command causes the device to provide data for the use of the processor, and a device write command causes information provided by the processor to be given to the device. Exactly what the device does to produce or consume data depends on the nature of the device: as we have seen, a write command to a NIC device causes it to send data to the subcommunication network, while a read command to a disk device cause it to copy data from its persistent storage back to the processor.

In particular, observe that once a device receives an I/O command, it can be busy reading input information or writing output information without requiring any assistance from, or interaction with, the processor – possibly for a relatively long time compared to the time it takes the processor to execute an instruction. That is, while most instructions execute on the processor in a tens of processor cycles, input and output instructions execute on separate devices requiring time that is orders of magnitude more than the time to execute a processor instruction.

Many decades ago, system designers became acutely aware of the program execution bottleneck introduced by I/O, particularly when devices that have mechanical motion in them, or ones that depend on human activity to complete the I/O (like typing on a keyboard), are involved. System designers observed that the program that caused the I/O operation would not be able to proceed for a relatively long time – namely the amount of time it would take for the device to complete the I/O instruction. The OS people came up with an interesting idea: why not let the program execute code that does not depend on the result

of the I/O command during the time that the I/O command is being executed?

Figure 2-5: Sequential I/O Semantics

Here is the basic idea: assume that the startRead() machine instruction shown Figure 2-5, initiates the input instruction in the device, but then immediately enables the processor to execute another instruction after it has sent the device command to the device. Then the “normal,” safe way to execute the program is illustrated in Figure 2-5(a). As long as the device is busy on the I/O command, the processor executes a loop in which it waits for the input operation to complete (by constantly checking the device’s busy and/or done flags). Figure 2-5(b) suggests the alternative programming strategy that enables the program to be executing useful instructions on the processor at the same time that the device is in operation: after the startRead() instruction is executed, the processor doesn’t wait, but instead it

begins executing other code (executeCodeFragment() in the figure).4 In this approach, the programmer would be responsible for ensuring that the input operation has completed before using the value of x in the statement following the while -loop. If the program fails to fulfill this responsibility, then the program is likely to produce an incorrect result (since it might use an old value of x rather than the new value of x that would be read by the input statement). The upside of the second option is that two parts of the original sequential program can be executed at the same time, thereby decreasing the amount of time required to execute the program. The downside is that if the programmer is not careful, the program will produce incorrect (or at least unexpected) results.

2.3 Generalizing the Device Model (Sneaking Up On Distributed Systems)

In Section 1.2 and in Figure 2-4 we discussed how software executing on a processor can direct a device to perform an I/O instruction. Let’s suppose that the device is a NIC, and that the write command has enough associated information to direct the NIC to send a packet to a particular remote computer. Then, at a low layer (NIC) control flow perspective, sending a message to a remote computer is not much different from writing data to a local device (see Figure 2-6, which is a redrawing of Figure 2-2). That is, the computer communicates with the NIC (and hence the remote computer) in much the same manner that it would with any other device: the processor determines when the device is ready to perform an I/O operation, and then it starts the device and waits for it to provide data on input, or to accept data on output. Processor

Processor Primary Memory Primary Memory Controller (NIC)

Controller (NIC)Processor Processor Primary Memory

Primary Memory NIC NIC A “Device”Subcommunication

Network

Figure 2-6: A Remote Computer as a Device

In Figure 2-7 we consider a pseudo code description of how the two computers can interact using the normal, safe device I/O paradigm (sequential execution across the local and remote computers) shown in Figure 2-5(a). Suppose that the local computer wants to transmit information to a remote computer. Let’s assume that the NIC is able to execute a new command, setAddr(), that tells the NIC device where it should send data when it receives a startWrite() command. The first thing that the local computer does is to issue a setAddr()command. Since this is just a device command, the software waits for the NIC device to respond that it has completed executing the setAddr() command before proceeding.

4

There are various ways to implement this strategy in specific programming environments. You can find such techniques in textbooks such as Chapter 12 of [Stevens, 1992] or supplementary notes for this online book.

When the device is again ready to use, the local computer issues a startWrite() command to the NIC, and then again waits for the device to finish executing the command. Note that when the NIC has finished transmitting the information, it becomes idle, but that does not mean that the information has necessarily been received by the remote computer (only that it has been sent by the local computer NIC).

On the right side of Figure 2-7, the remote computer program that is going to receive the information from the local computer ultimately performs a startRead() command on its NIC device. The program then begins waiting for the device to complete the read operation, which could be a substantial amount of time, if the startRead() command was issued to the NIC before any other computer transmitted information to the given remote computer. On the other hand, another computer might send data to the remote computer’s NIC before the application program issues the startRead() command. In this case, the NIC stores the data until the remote computer’s software performs an input operation on the NIC. Once information has been received at the remote computer’s NIC device, the device is able to finish its outstanding startRead(), and the processor detects this by observing that the busy flag gets reset to zero.

Figure 2-7: Computer-Computer Communication

This simplified example illustrates the normal, safe way to use a NIC to transfer information between machines; it is an exercise to write the pseudo code for overlapping processor activity with network communication. This discussion ignores the details of network communication (of which there are many) – we return to look at more details for programming NICs and networks in Chapter 3.

2.4 Roles for SCCs in Distributed Systems

SCCs are much smaller than typical computers in a distributed system (personal computers, workstations, server-class machines, mainframes, clusters, and multiprocessors), and also tend to be specialized to perform a particular task or to handle a small number of tasks in a particular domain. When considering the role of an SCC in a distributed system, the SCC can either provide a service to other computers in the distributed system, that is, it plays the role of a server; or it might play the opposite role of using services provided by other computers in the system, that is it behaves as a client. We will consider these two roles separately.

2.4.1 Providing Services to Other Computers

SCCs are generally limited by the amount of resources that can be configured into them. This suggests that when an SCC provides services to other computers in the distributed system, the SCC is acting as an

intelligent interface to some other component – perhaps as a sensor for instrumentation, or as an actuator to control parts of some external machine (like a robot or a rocket ship). There can be other applications in which the SCC provides service, but certainly the sensor and actuator controller is a prominent and representative use. We will focus on this example to describe how SCCs can provide services to other computers.

Some devices require constant attention to accomplish a given task (commonly referred to as “dumb” devices), while “smart” devices are able to handle complex tasks without interacting with the software during task execution. While it may be possible for both devices to ultimately perform the same task, the smart device is directed to perform the task using a single high-level command. On the other hand, a dumb device tends not to incorporate algorithms to perform tasks, instead it performs its work under the direction of a detailed set of low-level commands. A simple example demonstrates this distinction between smart and dumb devices: suppose that we wanted to draw a circle on an output device (such as a graphic printer or video screen): some graphic devices can only draw points and lines; to draw a circle, the device must be instructed to draw a collection of small line segments that are connected to form a polygon. The program could draw 3 line segments to form a 3-sided polygon (an equilateral triangle) to represent a circle, 4 line segments (a square), or 90 line segments to form a polygon with 90 sides. Obviously the 90-line approximation of the circle looks more realistic than does a triangle, square, pentagon, hexagon, and so on. Ultimately the number of sides that should be incorporated into approximating a circle depends on the desired graphic quality of the circle, and on the graphic device’s resolution.

A smart(er) graphic device can respond to a single command to draw a circle (with the center at a specified graphic location, and with a given radius). The smart device determines the number of sides on the polygon, and the specification of each of the lines that form the sides of the polygon. The program that intends to draw a circle on the dumb graphic printer must decide how many sides the polygon should have, the slope, length, and placement of each line segment, and then it must issue N commands to draw the N lines. The smart graphic printer incorporates its own algorithm for drawing a circle, that is, the algorithm determines the number, length and orientation of the line segments in the polygon, whereas the dumb graphic printer leaves the responsibility for that algorithm to the program that directs the device; this is the rationale for the “smart” and “dumb” designations.

Let’s generalize this idea of designing smart devices into one of distributing parts of an algorithm across the processor and devices. If the device is so simple that it can only print a dot on a Cartesian space (X-Y plane), then the program will need to perform computations to determine which points in the display space need to be darkened in order to form a letter, draw a line, or draw a circle. But if the device is smart enough to determine which dot pattern to print to form letters, then programs need only tell the device to print a designated character (perhaps in a designated font). If the device does not incorporate algorithms to enable it to draw a line in the X-Y space, then the program will be required to determine which dots needed to be printed in black in order to draw an approximation of a line, say from point (53, 12) to (56, 94). And so on. In any case, some part of the computer (the program executing on the processor or the device) has to determine which dots to blacken for each of the print operations: simple devices leave that computation to the application program, while smart devices are able to execute part of the processor’s algorithm on their own. The OS community thinks of the smart device scenario as being one in which work is distributed across different hardware units – in this case across the processor and devices. This basic idea is fundamental to the design of distributed systems.

SCCs can be used to add “intelligence” to devices in a distributed system. Imagine that we wish to build a (large) computer system that controls the heating and cooling in a large cruise ship with, say 1,500 rooms. We assume that the ship is large enough that some rooms might have to be cooled at the same time that others are being heated. Suppose each room contains a digital thermometer that the central computer can read to determine if it needs to heat or cool the associated room. Clearly the large computer needs to periodically read the temperature in each room, and decide if it needs to start the corresponding heater or cooler for the room. Simplistically, we expect that there is a loop in the main computer that implements a code fragment similar to the following:

/* The temperature maintenance loop

* thermometer[i] is the device in room #i

*/

for(i=0; i

startRead(thermometer[i], ¤tTemp, …);

while(thermometer[i].busy == 1)

/*(waiting)*/;

/* We have a current temperature for room #i */

if(currentTemp >= maxTemp) {

/* Turn on the air conditioning */

} else

if(currentTemp <= minTemp) {

/* Turn on the heater */

}

}

The quality of heating and cooling service provided by the computer depends on the frequency with which the loop is executed. But executing it too often will just waste processor cycles. Notice that the frequency might change with the seasons, and with the route that the cruise ship takes (the Arctic cruise versus the Seattle-San Francisco cruise).

The code fragment could be simplified considerably if the simple digital thermometer device were smarter, that is, so that incorporated some of the algorithm that the computer has to implement to check threshold values. Suppose a very simple SCC was associated with each digital thermometer, as show in Figure 2-8. This SCC would be dedicated to executing a portion of the algorithm that was previously implemented in the large computer, that is, the large computer is now the main machine in a distributed system, and there is one SCC associated with each thermometer. Thermometer

Thermometer Processor Ctrlr SCC

Figure 2-8: Distributing Intelligence to the Thermometer SCC

Figure 2-9 shows the relationship among a thermometer, its associated SCC, and the large computer (in the cruise ship example there would be 1500 SCCs connected to the large computer, unless the SCC managed, say 5, thermometers, thereby reducing the number of SCCs to 300). The configuration uses the network (in the manner suggested by Figure 2-6) to connect the SCC-thermometer nodes to the large computer. While the SCC incorporates the algorithm to directly manage the thermometer, but the

parameters for its behavior are determined by the large computer. The SCC only transmits data to the large computer when the temperature falls below a low threshold value, or rises above a high threshold value, and it accepts the following configuration commands from the large computer:

? Set the high threshold value

? Set the low threshold value

? Set the mode of the thermometer to report temperatures in either Celsious or Fahrenheit scale ? Suspend the thermometer activity

? Activate the thermometer

The large computer initializes (the SCC and the) device by setting the high and low threshold values, and then by activating it to send values to the large computer. The suspend command is used to temporarily disable the thermometer so it does not send data to the computer, and the mode command directs the SCC to report the temperature in either Celsious or Fahrenheit degrees. Processor

Processor Primary Memory Primary Memory Data Controlling Info

Controller (NIC)Controller (NIC)Thermometer Thermometer Processor

Ctrlr

NIC SCC

Figure 2-9: A Device Controlled by an SCC

Let’s consider in a little more detail how the SCC and the large computer might interact with one another:

while(TRUE) {

/* Check the Network for info form the large computer */

startRead(NIC, &cmd, …);

while(NIC.busy == 1)

/*(waiting)*/;

switch(cmd) { // Process the command from the large computer

case HI_THRESHOLD_TEMP: // Set the high threshold temp

break;

case LO_THRESHOLD_TEMP: // Set the Low threshold temp

break;

case SET_MODE: // Set the mode to C or F

break;

case ACTIVATE: // Start measuring the temperature

activated = TRUE;

break;

case SUSPEND: // Pause measuring the temperature

activated = FALSE;

break;

default:

break;

};

if(!activated)

break; // Skip temperature measurements

/* Check the temperature */

startRead(myThermometer, ¤tTemp, …);

while(thermometer[i].busy == 1)

/*(waiting)*/;

/* We have a current temperature for my room */

if(currentTemp >= maxTemp) {

/* Notify the chief to turn on the

* air conditioning

*/

startWrite(NIC, …);

} else

if(currentTemp <= minTemp) {

/* Notify the chief to turn on the heater */

startWrite(NIC, …);

}

}

First, the SCC now includes code to accept commands from the large computer. It checks the NIC to see if there is any information – if so it uses the switch statement to parse and executed the command. Next, is the code to manage the thermometer – this is only executed if the large computer has activated this SCC-thermometer. Finally, the SCC retains the code introduced in Figure 2-8 to manage the thermometer.

Here is a brief description of the pseudo code description that the large computer uses to interact with the SCC:

/* Initialize SCC-thermometers

* Send commands to all SCCs (use broadcast if available)

*/

/* Periodically check the NIC to see if any SCC is trying

* to send any information to me (the large computer)

*/

startRead(NIC, …);

if(NIC.done == 1) {

/* We have a message. Parse it to determine:

* - which SCC transmitted the device

* - the reason for the message – normal or exception

* - determine the response to the message, if any

* - execute the response, if any

*/

}

This is an example of a SCC being added to directly control the original “dumb” device, thereby converting it to a “smart” device, it is possible to add other features to the SCC so that the device appears to be even more intelligent.

This method of using small computers is the most traditional use, although not necessarily in conjunction with networks. In the field of embedded computers, this is the usual way that a computer is used to implement functionality in a machine that is not necessarily able to execute algorithms. Close to the computer domain, device controllers themselves are often small computers. For example a contemporary serial port is usually implemented with a specialized small computer called a universal asynchronous receiver/transmitter (UART) that is able to implement parameterized algorithms for

transmitting and receiving bytes over a wires. A more impressive example is the logic on a contemporary hard disk – in this case, we are referring to electronics that are part of the device rather than part of the controller. The algorithms necessary to actually operate the disk drive under a given disk protocol (like SCSI) are often implemented using a small computer rather than discrete logical components.

2.4.2 Using Services Provided by Other Computers

The trend toward portable electronic devices has stimulated a usage paradigm in which the SCC behaves more like a notebook computer than like an embedded system. They request services from larger machines on the network (rather than vice versa as described in the previous section). For example many cell phones use a broadband data network to transmit and receive data from/to the cell phone, thereby enabling the cell phone to be used to surf the web and to retrieve a copy of email that has been delivered to larger machines. In general, when the SCC assumes this role in which it requests services from other machines (rather than supplying services to other machines), the SCC behavior resembles more conventional machines such as notebook and desktop computers.

Today, machines in a distributed system are often characterized as being either a “client” machine or a “server” machine. This characterization is informally used to differentiate between large, shared machines and smaller machines dedicated to one task or to supporting one human user. In reality the terminology stems from the roles that the software in these computers is organized: in some case the software requests service from another computer, while in other cases it provides service to other computers. The two computers are said to play the roles of clients and servers, where client software requests service from server software. The software, and hence the machine, change roles, depending on the nature of the distributed task, and which part of the task the computer is currently fulfilling. That is, whether a machine is a client or a server depends only on the current behavior of the software, not on the size or type of the hardware. Historically large, shared computers tend run software that provides services, so they have become known as “server machines.” Similarly, historically small computers, such as PCs, request services from large machines, so they have come to be known as “client machines.” Unless explicitly mentioned in the discussion, we will bow to the popular usage of these terms and often refer to large machines in a distributed system as “server machines,” and small computers as “client machines.”

Figure 2-10: Of Clients and Servers

Client machines act as servers in the sense that they provide services to their environment. As suggested by Figure 2-10, if the client machine is a personal computer, cell phone, or PDA, the machine’s human user issues the directives to the SCC. (Figure 2-10 carries the client-server relationship to the

extreme by showing that even human users are servers to other humans such as their boss, and that even an HTTP server is a client to the electric utility company in the sense that it requests electricity from the electricity supplier.) Once the user has requested a service from the SCC, the SCC will use its own programs and resources to accomplish the action, or it will temporarily assume the role of a client to request help from servers in the distributed system. For example, if a handheld SCC is running a web browser program, when the user clicks on a link, the SCC temporarily suspends its role of user server and assumes the role of an HTTP client that requests a copy of an HTML file from an HTTP server.

The role of server software is to wait passively for requests for service, to perform that service, and then to resume waiting passively for other requests. The role of client software is to implement an independent algorithm, and to delegate some of the work to servers in the distributed system by requesting that they perform certain tasks in the overall computation.

In the server role, the difference between an SCC and, say, a notebook, is that SCCs are caused by the nature of their physical size, which tends to limit the amount of resources that can be configured into the SCC. This suggests that the SCC will tend to make more frequent client requests for the use of resources on server machines in the distributed system than would a larger client machine. For example, many SCCs do not include a hard disk drive, although they are likely to incorporate storage devices of limited capacity (compared to storage capacities of devices on desktop computers), such as flash drives. Like other machines in a distributed system, they will store and retrieve many of their files on a larger file server machine; but unlike larger client-style machines, they are likely to access the file server more often than other file clients since they are unable to store copies of very many files in their storage devices. SCCs are designed in an attempt to optimize their performance under the assumption that they will make more frequent use of servers than would a conventional notebook or desktop computer.

Thus, when an SCC is generally a client machine in a distributed system, it generally behaves much like conventional notebook and desktop computers. Once the SCC is incorporated into a distributed system, it is obliged to use a network with a communications framework (such as an instance of the OSI model) that is universally used in that distributed system. The SCC operating system provides the mechanism for the foundation of the distributed system coordination, and other system software is responsible for implementing the higher layer protocols of the communication. Before we can begin to look at OS details in Chapter 4, we will consider programming models for distributed systems in the next chapter.

2.5 Summary

All SCCs exist as machines in a distributed system. The SCC might be so simple that it can be implemented by a very simple program that continuously runs a simple loop, for example to read a thermometer, check the reading for threshold values, and then either transmit the reading or ignore it. Such uses of small communicating computers enables some interesting design possibilities for the SCC: should the SCC be a very simple computer that is dedicated to a single task, and has very little work to do. Or should the SCC itself incorporate hardware features found in larger computers, such as interrupt driven devices, operating modes for the CPU, and so on? Should the SCC focus on supporting software that handles a dedicated task, such as monitoring a sensor, or should it be expected to handle multiple tasks such as reading a set of sensors and controlling a set of actuators, for example, to guide the trajectory of a flying object? In our study of SCCs, we will determine that there are many different types of SCCs where some are modest machines that only handle a dedicated task, while others are expected to perform substantial information processing work.

Independent of the amount of responsibility delegated to the SCC, since it is a communicating small computer, there is an implicit assumption that it communicates with a remote machine. That is, in this book every SCC is a component in a distributed system that executes distributed programs on a combination of the SCC and one or more other machines. Studying SCC operating system is distinguished

from studying generic operating systems since every SCC must be designed to operate in the context of a distributed system.

Sometimes the SCC is assigned work to reduce the amount of processing that a host machine would otherwise have to perform, and sometimes (as in the thermometer controller case) work is assigned to the SCC to reduce the amount of information that needs to be exchanged between the two computers. Today, SCCs are sometimes packaged with other components so that they meet other, nontechnical needs; for example the SCC may be part of a cell phone that exchanges files with a server. You can expect that even these “loosely coupled” systems will evolve over time so that the SCC and other machines will share information using events, message, and objects in addition to information contained in files.

2.6 References

1.Stevens, W. Richard, Advanced Programming in the UNIX? Environment, Addison Wesley

Professional Computing Series, 1992.

2.Stevens, W. Richard, TCP/IP Illustrated, Volume 1: The Protocols, Addison Wesley Professional

Computing Series, 1994.

3.Tanenbaum, Andrew S., Distributed Operating Systems, Prentice Hall, 1995.

病例对照研究中选择匹配的目的是

1. 病例对照研究中选择匹配的目的是 A. 要求对照组在某些因素或特性上与病例组保持相同 B. 是进行病例组与组比较时排除匹配因素的干扰 C. 为了控制年龄因素 D. 不了增加分析时的统计学检验能力 E. 为了控制选择性贪偏依 2. 在队列研究或病例对空研究中,如果没有系统误差,且样本大小一定,达到统计学显著水平时相对危险度(比值 )的大烛取决于下列哪个条件 A. 定群研究中暴露组发病的频率或病例对照研究中病例驵暴露的比例 B. 规定的显著性水平(人) C. 规定的把握度水平(1- ) D. B和C E. A.B和C 3. 发生混杂偏依的可能原因是 A. 没有考虑疾病的独立危险因素 B. 除感兴趣的暴露因素或疾病外,第三个因素与暴露和疾病有关 C. 除暴露因素和疾病外,还存在第三个因素,该因素被说明既是疾病的独立危险因素.又与疾病的分布有关. D. 第三个因素与暴露因素分布有关,并是疾病独立危险因素 E. 以上都不对 4. 某研究者决定把每个病例的配比对照数从3个增加到6个来提高其设计病例对照研究的效力,对此做法你的观点是 A. 建议使用一个对照,因为多设对照的价值很小 B. 由于对照数如此之多,可利用这些对照进行定群研究,以得到RR值 C. 如有可能,适当增加病例数而不是对照数 D. 如果只是研究近期诊断的病例则同意其决定 E. 如果用6个对照劝其进行非配比分析 5. 信息偏倚指的是 A. 同时存在几个变量的效应,而结其中某个效应的估计不准确 B. 因变量测量或分类中的随机误差 C. 对自变量或因变量进行测量或分类时,由于随机变异而使精密度降低 D. 自变量或因变量测量或分类中的系统误差 E. 上述答案均不是 6. McNeyman Bas也称 A. 住院偏性 B. 选择性转诊偏性 C. 检诊造成的偏性 D. 存活病例偏性 E. 无应答偏性 7. Berksorv偏性也叫 A. 存活病例偏性

打击错误与对象错误如何区分

打击错误与对象错误如何区分 核心内容:打击错误与对象错误是否有必要区分?这是早在19世纪德国理论上就有争议的问题。现在,在外国刑法理论上,虽然仍有学者认为打击错误与对象错误没有区分的必要,但绝大多数学者还是主张把两者区分开来。以下就由为您详细介绍打击错误与对象错误的区分。 打击错误与对象错误在有的场合确实很难区分,对同一案件不同的学者或司法人员得出不同的结论也难以避免,依照具体符合说,确实有可能出现执法不统一的问题。但是,因理论标准不一导致执法差异的现象在刑法领域十分常见,例如,正犯与共犯的区分问题。在我国,主犯与从犯的区分由于标准很难掌握,司法人员认识出现差异从而导致执法不统一的现象屡见不鲜。但是,不能因为难以区分、并且区分出现差异会导致处理结果的重大差别,就不作区分,或者即便区分,在处罚上也无轻重差别。关键还是要看是否确有区分的必要、实行区别对待是否具有合理性。如前所述,同一构成要件范围内的打击错误与对象错误确有差别,并且行为的社会危害性和危险性程度也有差异,因而有必要区别对待。况且,根据我国刑法的规定,在日本按具体符合说对打击错误的行为人有可能出现的处刑过轻或不可罚

的现象,在我国完全有可能得到避免或弥补,因此,即便对同一案件出现错误类型(即打击错误与对象错误)上的区分差别,也不会直接导致处理结果上的重大差异。 事实上,当行为对象就在行为人眼前时,打击错误与对象错误并不难区分。二者区分的关键就在于行为的指向,即行为指向的对象与行为人意欲侵害的对象一致,但因行为发生偏差引起的结果与行为人的认识不符时,为打击错误;行为指向的对象与行为人意欲侵害的对象不一时,则为对象错误。 问题在于,当行为对象不在行为人眼前时,打击错误与对象错误就可能成为区分的难题。这又可分为在独犯的场合与共犯的场合二种类型:前者如行为人前一天晚上在仇人专用的汽车上安装炸弹意欲炸死仇人,但第二天仇人的妻子偶然开启车门时被炸死;后者如行为人教唆他人杀害自己的仇人,但被教唆者因认错了人而杀害了。前一例中,如果以行为人安装炸弹时的情况为准,是打击错误;如果以炸弹爆炸时的情况为准,则是对象错误。后一例中,如果以的认识情况为准,是打击错误;如果以被教唆人的认识情况为准,则属于对象错误。

影像信息提取之——面向对象特征提取

同物异谱,同谱异物”会对影像分类产生的影响,加上高分辨率影像的光谱信息不是很丰富,还有经常伴有光谱相互影响的现象,这对基于像素的分类方法提出了一种挑战,面向对象的影像分类技术可以一定程度减少上述影响。 本专题以ENVI中的面向对象的特征提取FX工具为例,对这种技术和处理流程做一个简单的介绍。 本专题包括以下内容: ●面向对象分类技术概述 ● ENVI FX简介 ● ENVI FX操作说明 1、面向对象分类技术概述 面向对象分类技术集合临近像元为对象用来识别感兴趣的光谱要素,充分利用高分辨率的全色和多光谱数据的空间,纹理,和光谱信息来分割和分类的特点,以高精度的分类结果或者矢量输出。它主要分成两部分过程:对象构建和对象的分类。 影像对象构建主要用了影像分割技术,常用分割方法包括基于多尺度的、基于灰度的、纹理的、基于知识的及基于分水岭的等分割算法。比较常用的就是多尺度分割算法,这种方法综合遥感图像的光谱特征和形状特征,计算图像中每个波段的光谱异质性与形状异质性的综合特征值,然后根据各个波段所占的权重,计算图像所有波段的加权值,当分割出对象或基元的光谱和形状综合加权值小于某个指定的阈值时,进行重复迭代运算,直到所有分割对象的综合加权值大于指定阈值即完成图像的多尺度分割操作。 影像对象的分类,目前常用的方法是“监督分类”和“基于规则(知识)分类”。这里的监督分类和我们常说的监督分类是有区别的,它分类时和样本的对比参数更多,不仅仅是光谱信息,还包括空间、纹理等对象属性信息。基于规则(知识)分类也是根据影像对象的属性和阈值来设定规则进行分类。 表1为三大类分类方法的一个大概的对比。

珍爱网征婚是怎么样的,如何匹配对象

珍爱网征婚是怎么样的?如何匹配对象? 现代人由于自己的工作生活原因,很多时候往往也都没有特别多的时间处对象,时间一久就成为了大龄单身,找对象也更难。也正是因为这种情况,通过网络平台进行的婚恋形式也都比较常见,成为不少人寻找对象的很好选择。从众多平台运作来看,珍爱网等都有非常高的人气,越来越成为单身男女们理想的选择,那么珍爱网征婚是如何运作?珍爱网的征婚到底是否可靠呢? 珍爱网征婚为保障安全性,要求以实名认证进行婚恋行为,毕竟作为如今的婚恋网第一品牌,每天登录的用户比较多,为有更好的筛选,也是为提供优质交往对象,珍爱网要求进入网站的人士完成实名认证注册,从而能够进行下一步的匹配。进入网站后可以直接看到注册选项,填写自己的个人信息(包括出生日期、性别、名字、工作地区以及婚姻状况等),同时提交个人的对象要求、择偶要素等,珍爱网的后台都会进行相应的审核,对注册用户们的诚信以及芝麻分进行评价。等到审核通过后就可以完成注册,便于会员进行相应的信息搜索和匹配。 从珍爱网的整体运作来看都还是比较稳定,平台拥有十余年的运作经验,能够很好地进行优质用户的筛选并完成匹配。在珍爱网征婚中有很多齐全的信息介绍,会员们完成注册后就可以通过平台的搜索方式找到自己心仪对象,通过照片以及信息了解,如果有遇到心动的人,可以直接选择“打招呼”或者通过留言的方式,如果对方对你也感兴趣的话,那么就可以进行下一步的了解。珍爱网上有很多真实的

成功案例,会员们也都可以随时查询了解,最新发布的动态消息也都可以很快获取,对帮助找到心仪对象来说都有很好的效果,为你轻松匹配。 珍爱网征婚作为如今比较经典的选择,对于很多人来说也都避免了很多繁琐事项。当然在实际参与珍爱网的时候也都需要自己有所考虑,要填写好真实的资料信息,以免到时候出现错误影响到双方的沟通和交流。此外在实际与对象交往的过程中也都要自己有一定的方法技巧,注意个人态度,两人也能够实现更好的交流,对进一步发展也都有好处。Ishan

标准正态分布表

标准正态分布表 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

标准正态分布表

4432198653 1.80.964 1 0.964 8 0.965 6 0.966 4 0.967 2 0.967 8 0.968 6 0.969 3 0.970 0.970 6 1.90.971 3 0.971 9 0.972 6 0.973 2 0.973 8 0.974 4 0.975 0.975 6 0.976 2 0.976 7 20.977 2 0.977 8 0.978 3 0.978 8 0.979 3 0.979 8 0.980 3 0.980 8 0.981 2 0.981 7 2.10.982 1 0.982 6 0.983 0.983 4 0.983 8 0.984 2 0.984 6 0.985 0.985 4 0.985 7 2.20.986 1 0.986 4 0.986 8 0.987 1 0.987 4 0.987 8 0.988 1 0.988 4 0.988 7 0.989 2.30.989 3 0.989 6 0.989 8 0.990 1 0.990 4 0.990 6 0.990 9 0.991 1 0.991 3 0.991 6 2.40.991 8 0.992 0.992 2 0.992 5 0.992 7 0.992 9 0.993 1 0.993 2 0.993 4 0.993 6 2.50.993 8 0.994 0.994 1 0.994 3 0.994 5 0.994 6 0.994 8 0.994 9 0.995 1 0.995 2 2.60.995 3 0.995 5 0.995 6 0.995 7 0.995 9 0.996 0.996 1 0.996 2 0.996 3 0.996 4 2.70.996 5 0.996 6 0.996 7 0.996 8 0.996 9 0.997 0.997 1 0.997 2 0.997 3 0.997 4 2.80.997 4 0.997 5 0.997 6 0.997 7 0.997 7 0.997 8 0.997 9 0.997 9 0.998 0.998 1 2.90.998 1 0.998 2 0.998 2 0.998 3 0.998 4 0.998 4 0.998 5 0.998 5 0.998 6 0.998 6 x00.10.20.30.40.50.60.70.80.9 30.998 7 0.999 0.999 3 0.999 5 0.999 7 0.999 8 0.999 8 0.999 9 0.999 9 1.000 正态分布概率表 Φ( u ) =

男生挑女朋友和选择结婚对象有什么区别

男生挑女朋友和选择结婚对象有什么区别? 一个是因为欲望,一个是因为陪伴,这就是最基本的区别。 男人最开始的时候一般是通过眼睛选女朋友,但是在选择结婚伴侣的时候就要走心了,这和人的年龄有关系。 男生有一个成长的阶段,在思想境界不一样的时候选择的对象肯定是不同的,比如说在学校的时候,那叫校园恋爱,那个时候选择的对象不会考虑很多,只是根据自己的一时好感就可以判断了,也许仅仅是因为隔壁班的女孩从你的身边走过,一缕长发的清香让你魂牵梦萦,这就可以作为你的女朋友,但是成年人的世界里不会这么草率。 大学毕业就是一个分手季,是因为人变得更现实了,往往人把事业看得更重,也就是说情感在内心占的比例越来越小了,有很多人放弃了爱情去寻找自己的事业和梦想,在步入社会以后情感占的比例就更少了,这个时候人在选择对象往往不会像校园里那么单纯,可能眼前这个人你觉得长得还可以,但你并不想和他结婚,因为他的家庭背景或者是其他方面的原因都会干扰到你的选择。 大多数的人对婚姻都是谨慎的,没有人抱着玩的心态去结婚,但是有人去抱着玩的心态做感情游戏,有很多男人不想结婚只想谈恋爱,他们觉得眼前这个人只适合作为一个恋爱伴侣,但是结婚绝对不合适,也许是因为这个女生身上某些特质,也许是因为这个女孩仍然没有走进他的心里,眼下在一起只不过是因为肾上腺的因素。 男生挑女朋友和挑选结婚对象是有本质区别的,挑选女朋友仅根据颜值就可以了,但是挑选结婚对象要考虑的因素则很多。 女朋友的性格可以多变和爱发小脾气的,但是老婆的话是需要温柔体贴会做家务。 ----------------------------------------------- 在恋爱中,低成本的表达最不值得信赖。 比如半夜给你买烤串啊, 比如姨妈时为你化红糖水啊, 比如天天嘘寒问暖啊, 这种低成本表达男人稍微花点心思就可以做到,即便我骨子里并不是这样的人,我追你时稍微伪装一下就可以做到。所以这些不是不重要,而是这些低成本表达只是基础条件。 女生在选择恋爱和结婚对象时,一定要想清楚两个问题: “除了低成本表达,他还能给我什么?” “除了低成本表达,他还有什么优点?” 我们在选择恋爱和结婚对象时,其实更应该关注“真正的稀缺资源”。

(完整版)t分布的概念及表和查表方法.doc

t分布介绍 在概率论和统计学中,学生 t - 分布(t -distribution ),可简称为 t 分布,用于根据小样本来估计呈正态分布且方差未知的总体的均值。如果总体方差已知(例如在样本数量足够多时),则应该用正态分布来估计总体均值。 t 分布曲线形态与 n(确切地说与自由度 df )大小有关。与标准正态分布曲线相比,自由度df 越小, t 分布曲线愈平坦,曲线中间愈低,曲线双侧尾部翘得愈高;自由度 df 愈大, t 分布曲线愈接近正态分布曲线,当自由度 df= ∞时, t 分布曲线为标准正态分布曲线。 中文名t 分布应用在对呈正态分布的总体 外文名t -distribution 别称学生 t 分布 学科概率论和统计学相关术语t 检验 目录 1历史 2定义 3扩展 4特征 5置信区间 6计算 历史 在概率论和统计学中,学生 t -分布( Student's t-distribution )经常应用在对呈正态分布的总体的均值进行估计。它是对两个样本均值差异进行显著性测试的学生t 测定的基础。 t 检定改进了Z 检定(en:Z-test ),不论样本数量大或小皆可应用。在样本数量大(超过 120 等)时,可以应用Z 检定,但 Z 检定用在小的样本会产生很大的误差,因此样本很小的情况下得改用学生t 检定。在数据有三组以上时,因为误差无法压低,此时可以用变异数分析代替学生t 检定。 当母群体的标准差是未知的但却又需要估计时,我们可以运用学生t-分布。 学生 t-分布可简称为t 分布。其推导由威廉·戈塞于 1908 年首先发表,当时他还在都柏林的健力士酿酒厂工作。因为不能以他本人的名义发表,所以论文使用了学生(Student )这一笔名。之后t 检验以及相关理论经由罗纳德·费雪的工作发扬光大,而正是他将此分布称为学生分布。 定义

面向对象图像分类

【ENVI入门系列】24. 面向对象图像分类 目录 1.概述 2.基于规则的面向对象信息提取 第一步:准备工作 第二步:发现对象 第三步:根据规则进行特征提取 3.基于样本的面向对象的分类 第一步:选择数据 第二步:分割对象 第三步:基于样本的图像分类 4.基于规则的单波段影像提取河流信息 1.概述 面向对象分类技术集合临近像元为对象用来识别感兴趣的光谱要素,充分利用高分辨率的全色和多光谱数据的空间,纹理,和光谱信息来分割和分类的特点,以高精度的分类结果或者矢量输出。它主要分成两部分过程:影像对象构建和对象的分类。ENVI FX的操作可分为两个部分:发现对象(Find Object)和特征提取(Extract features),如下图所示。

图1.1 FX操作流程示意图(*项为可选操作步骤) 这个工具分为三种独立的流程化工具:基于规则、基于样本、图像分割。 本课程分别学习基于规则的面向对象分类和基于样本的面向对象分类,以及基于规则的方法从单波段灰度影像中提取河流信息。 注:本课程需要面向对象空间特征提取模块(ENVI Feature Extraction-FX)使用许可。

2.基于规则的面向对象信息提取 该工具位置在:Toolbox /Feature Extraction/ Rule Based Feature Extraction Workflow。 数据位置:"24-面向对象图像分类\1-基于规则"。 第一步:准备工作 根据数据源和特征提取类型等情况,可以有选择地对数据做一些预处理工作。 ?空间分辨率的调整 如果您的数据空间分辨率非常高,覆盖范围非常大,而提取的特征地物面积较大(如云、大片林地等)。可以降低分辨率,提供精度和运算速度。可利用Toolbox/Raster Management/Resize Data工具实现。 ?光谱分辨率的调整 如果您处理的是高光谱数据,可以将不用的波段除去。可利用Toolbox/Raster Management/Layer Stacking工具实现。 ?多源数据组合 当您有其他辅助数据时候,可以将这些数据和待处理数据组合成新的多波段数据文件,这些辅助数据可以是DEM, lidar 影像, 和SAR 影像。当计算对象属性时候,会生成这些辅助数据的属性信息,可以提高信息提取精度。可利用Toolbox/Raster Management/Layer Stacking工具实现。

找对象性格匹配

找对象性格匹配 “我跟她的性格到底合不合适呢?”许多剩男剩女在谈恋爱的过程中愈挫愈疲惫,不知道如何才能找到属于自己的归宿。谁也说不清楚是从什么时候开始,“性格匹配度评估”开始火了起来,先是找工作要做性格评估,接着一些大公司在给新员工安排工作岗位时也要做,再后来,这种评估开始进入恋爱和婚姻的范畴。 有人在走进婚姻之前,拉上恋人一起去做这种评估。而另一个方面,社会上也很容易就找到做这种评估的地方,大方一点的去综合性大医院的心理科,隐秘一点的去社会上的心理咨询机构,甚至不愿意出门,在一些热门网站上也能完成这种评估。通过评估能知道对方真的适合自己吗? 英文中常把两人的关系用CHEMISTRY这个词来描写,CHEMISTRY 又名化学,也是形容两个人的密切程度,如膝似胶,和睦,融洽,铁,反正找不到一个合适的中文. 常听初识的恋人说他和她很有CHEMISTRY,除了身体的吸引,更多是个性的融洽。很多人说XX离婚是因为性格不合,其实天生就很融洽的夫妻不多。要不人说,爱上一个人不容易,持续的爱一个人是一门艺术。人类是万物之灵,每个人的性格各有不同,性格评估只是帮你更好的了解对方,取长补短,各自谦让,相互体贴,相互帮助,找到以后和睦相处的方式。道蒙皮纹检测根据遗传皮纹学、生物医学、心理学,准确解读你和他(她)的性格差异,建立幸福美满家庭。 没有完美的组合,每种组合都有冲突的可能。所以了解了各种类型的优缺点就尽量去调整自己的态度和行为, 当冲突发生时就想想对方的思维方式,不强求和自己一样,也就是不会钻牛角尖了。 如果让关系和睦起来婚姻不再只谈感情了,还要看下一代的性格是否是成功性格,另外可能这个性格基因遗传学将成为本世纪热点研究领域之一啦。如果真的关系大,那你也不用怕,可能有人去研究如何去改变性格。这样你也可以去改变了,花点钱,再冒点风险,毕竟什么事情都不是绝对的100%。

标准正态分布

标准正态分布 标准正态分布(英语:standard normal distribution,德语Standardnormalverteilung),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。期望值μ=0,即曲线图象对称轴为Y轴,标准差σ=1条件下的正态分布,记为N(0,1)。 定义: 标准正态分布又称为u分布,是以0为均数、以1为标准差的正态分布,记为N(0,1)。标准正态分布曲线下面积分布规律是:在-1.96~+1.96范围内曲线下的面积等于0.9500,在-2.58~+2.58范围内曲线下面积为0.9900。统计学家还制定了一张统计用表(自由度为∞时),借助该表就可以估计出某些特殊u1和u2值范围内的曲线下面积。 正态分布的概率密度函数曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是位置参数均数为0, 尺度参数:标准差为1的正态分布 特点: 密度函数关于平均值对称 平均值与它的众数(statistical mode)以及中位数(median)同一数值。 函数曲线下68.268949%的面积在平均数左右的一个标准差范围内。 95.449974%的面积在平均数左右两个标准差的范围内。 99.730020%的面积在平均数左右三个标准差的范围内。 99.993666%的面积在平均数左右四个标准差的范围内。 函数曲线的反曲点(inflection point)为离平均数一个标准差距离的位置。 标准偏差:

深蓝色区域是距平均值小于一个标准差之内的数值范围。在正态分布中,此范围所占比率为全部数值之68%,根据正态分布,两个标准差之内的比率合起来为95%;三个标准差之内的比率合起来为99%。 在实际应用上,常考虑一组数据具有近似于正态分布的概率分布。若其假设正确,则约68.3%数值分布在距离平均值有1个标准差之内的范围,约95.4%数值分布在距离平均值有2个标准差之内的范围,以及约99.7%数值分布在距离平均值有3个标准差之内的范围。称为“68-95-99.7法则”或“经验法则”

访谈对象许可合同(肖像权声音权)

访谈对象许可合同(肖像权/声咅权) 要点 对个人进行访谈并录音、录像,且需要在一定范围内使用访谈对象的录音、录像、肖像时,可以与访谈对象签署本协议,取得访谈对象授权。 访谈对象许可合同 甲方(授权方/被访谈对象): 身份证号: 乙方(使用方/访谈方): 身份证号: 根据法律有关规定,为明确双方权利义务关系,经双方友好协商,达成一致合同如下: 一、合同主旨 乙方对甲方进行采访、访谈,并对包括甲方声音、肖像、形象的采访资料进行适用使用,按照本合同约定向甲方支付费用。 二、访谈安排 1. 甲方应提供至少次访谈机会(每次访谈时间不低于两小时)。 2. 访谈地点在_________________________________________ ,具体由 ________ 方指定。 3. 访谈时乙方有权录音、录像与拍摄。 三、授权资料范围 1. 双方同意按下列第种方式确定: (1)访谈中的全部声音、形象(含摄影与录像、摄像等),均作为授权资料。 (2)乙方对访谈中形成的全部声音、形象(含摄影与录像等)进行剪辑,形成不超过分钟的视频(含声音与录像)与不超过张的图片,经甲方同意后作为授权资料。 2. 甲方保证甲方的访谈内容不侵犯第三方的知识产权与其它权利。如有此等内容不适于对外使用,则甲方应该向乙方指出。 四、授权使用范围 1. 甲方授权乙方将授权资料用于乙方各项业务及对外宣传活动。 2. 使用形式以乙方需要为准,包括但不限于:电子文档、印刷文档、视频资料、网站、图书报刊出版、展览、公司宣传广告等等。 3. 在不影响甲方表述本意、不影响甲方名誉的前提下,乙方有权对授权资料进行适当编辑、剪辑、改编使用,有权对声音、图像进行适当技术处理。

图形对象的属性

重要的属性包括CData,CDataMapping属性、XData属性和YData属性等。 (1)图形对象的CData属性 图形对象的CData属性包含一个数据阵列。在下面的代码中,h表示有image函数创建的图像对象的句柄::X和Y代表同一矩阵。 h=image(X); colonmap(map); Y=get(h,’CData’); 其中,属性CData数据阵列的维数决定了Matlab时使用颜色映像表还是使用RGB真彩的方式显示该图。如果CData属性的数据阵列是二维的,则图像显示为索引图像或灰度图像。不管哪一种方式,Matlab均使用颜色映像表。如果CData属性的数据阵列是三维的,例如m*n*3,那么matlab即将其显示为真彩图像。 (2)图形对象的CDataMapping属性 图形对象的CDataMapping属性决定图像是索引图像还是灰度图像,如果将该属性设置为direct,则该图像对象显示为索引图像。在这种情况下,CData属性中的数据阵列直接作为当前图形窗口的颜色影响表中的颜色索引,在matlab中,只要我们在调用image 函数时只使用一个参数,则系统自动将CDatamapping属性市值为direct。例如,我们在命令行中输入下列代码: h=image(X); colonmap(map); Y=get(h,’CDataMapping’); 回车执行结果为 Ans= direct 如果将该属性设置为scaled,则该图像对象显示为灰度图像。在这种情况下,CData属性中的数据线性缩放生成颜色映像表索引其中缩放因子纵坐标轴对象的Clim属性决定在matlab中,只要利用imagesce函数创建图像系统自动将CDatamapping属性市值为scaled,并且同时调整其父坐标轴对象的clim属性,例如,我们在命令行中输入下列代码: h=image(X); colonmap(map); Y=get(h,’CDataMapping’); 回车执行结果为 Ans= scaled 输入下列代码: get(gea,’Clim’) 回车执行结果为 Ans= [0 1] (2)像对象的XData和YData属性 图像对象的XData和YData属性决定了图像的坐标系统。对于一个数据矩阵为mn的图像对象来说,其XData属性的默认值[1 n],YData属性的默认值是【1 m】,这样的设置意义为: 图像数据矩阵的左边的列具有一个值为1的X坐标

区分不同的培训对象

区分不同的培训对象 区分不同的培训对象 企业不同职位的员工所需要的培训内容大不相同,建立企业的胜任能力模型(CorporateModel)能够帮助企业明确员工应该具备的能力。通用、宝洁和摩托罗拉等跨国企业在人力资源系统的基础上都有一个胜任能力模型,企业根据各个岗位的要求,设计出通用课程体系与课程库,再根据培训课程体系的调查结果进行增减,最后形成自己的课程体系库,这样,每个企业成员都可以在课程体系库中根据纵坐标所处层级和横坐标具体职位,选择自己需要接受的培训内容。 让培训后的员工动起来 为了实现员工增长技能,提升企业绩效的培训目标,要做好对受训员工的管理工作。如果培训需求符合员工工作所需,培训却没有提升员工工作绩效,出现这样的状况有以下两个原因: 第一、培训与员工职业发展脱节。员工看不到参加培训,提高技能和业务知识后,企业所应该给予的重视,没有职位或待遇的变化,学习的积极性就会下降。因此,企业培训要做好整体规划,考虑员工的职业生涯发展,对于关键员工则要针对性地进行培训。 第二、缺乏相关的培训考核。企业需要通过培训考核来保证培训的效果,除了颁布培训纪律、进行培训考试和培训评估之外,更重要是需要加强对员工的培训内化考核。培训内化是将培训的内容变成员工的工作习惯,自觉融入行为的过程,分为四个步骤:第一步、转化。学员需要制定将培训内容转化为工作技能的措施;第二步、应用。将培训内容应用于工作实践,真正领悟其中的要领;第三步、传播。学员将培训内容与其他同事进行分享交流,增加企业的培训覆盖率,加深学员对培训内容的理解;最后是固化。经过不断重复应用,形成良好的工作习惯。这四个步骤紧密相连,可以真正起到利用培训所学提升工作绩效的作用。培训内化的考核难度比较大,可以采用让学员填写《员工培训内化跟踪表》的方式进行,让学员按照培训内化的四个步骤,填写行动计划,由最了解员工实际工作情况的上级在一定周期内,根据员工的能力提升程度、工作效率、行为规范等方面,对照《员

IDL 对象图形法-图像对象 IDLgrImage用例解析

IDL 对象图形法-图像对象IDLgrImage用例解析 pro GrImage;IDL图像对象用例详解 oWindow=IDLgrWindow(DIMENSIONS=[400,300]) oView=IDLgrView() oModel=IDLgrModel() oView.Add,oModel oWindow.SetProperty,GRAPHICS_TREE=oView ;SUBDIRECTORY子目录 file=FILEPATH('tree.png',SUBDIRECTORY=['examples','data']) queryStatus=QUERY_IMAGE(file,imageInfo) ;把图片信息读到imageInfo中 imageSize=imageInfo.dimensions ;图片大小 image=READ_IMAGE(file) ;把图片数据读入到image中 oImage=IDLgrImage(image) oModel.Add,oImage oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize] oWindow.SetProperty,DIMENSIONS=imageSize oWindow.Draw end file=FILEPATH('tree.png',SUBDIRECTORY=['examples','data']) 选择了一个文件,他的目录是安装目录的Exelis\IDL83\examples\data 文件夹下,这里的tree.png图片是我自己放进去的,他自

己不会附带。 也可以不用SUBDIRECTORY 这个属性,直接在前面用绝对路径,也可以定位一个图片文件。 二、常用变换 (1)横向显示 ;设置显示区域为x方向为图像三倍 oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize]*[0,0,3,1] ;创建RGB波段图像 oRed=IDLgrImage(image[0,*,*]) oGreen=IDLgrImage(image[1,*,*],LOCATION=[imageSize[0],0]) oBlue=IDLgrImage(image[2,*,*],LOCATION=[imageSize[0]*2,0]) oModel.Add,[oRed,oGreen,oBlue] oWindow.SetProperty,DIMENSIONS=imageSize*[3,1] oWindow.Draw (2)重叠显示 oGreen.SetProperty,LOCATION=imageSize*.5 oBlue.SetProperty,LOCATION=imageSize oWindow.SetProperty,DIMENSIONS=imageSize*2 oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize]*[0,0,2,2] oWindow.Draw

卡方分布概念及表和查表方法

若n个相互独立的随机变量ξ?,ξ?,...,ξn,均服从标准正态分布(也称独立同分布于标准正态分布),则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为卡方分布(chi-square distribution)。 目录 1简介 2定义 3性质 4概率表 简介 分布在数理统计中具有重要意义。分布是由阿贝(Abbe)于1863年首先提出的,后来由海尔墨特(Hermert)和现代统计学的奠基人之一的卡·皮尔逊(C K·Pearson)分别于1875年和1900年推导出来,是统计学中的一个非常有用的著名分布。 定义 若n个相互独立的随机变量ξ?、ξ?、……、ξn ,均服从标准正态分布(也称独立同分布于标准正态分布),则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为分布(chi-square distribution), 卡方分布是由正态分布构造而成的一个新的分布,当自由度很大时,分布近似为正态分布。

对于任意正整数x,自由度为的卡方分布是一个随机变量X的机率分布。 性质 1) 分布在第一象限内,卡方值都是正值,呈正偏态(右偏态),随着参数 的增大,分布趋近于正态分布;卡方分布密度曲线下的面积都是1。 2) 分布的均值与方差可以看出,随着自由度的增大,分布向正无穷方向延伸(因为均值越来越大),分布曲线也越来越低阔(因为方差越来越大)。 3)不同的自由度决定不同的卡方分布,自由度越小,分布越偏斜。 4) 若互相独立,则:服从分布,自由度为 。 5) 分布的均数为自由度,记为 E( ) = 。 6) 分布的方差为2倍的自由度( ),记为 D( ) = 。 概率表 分布不象正态分布那样将所有正态分布的查表都转化为标准正态分布去查,在 分布中得对每个分布编制相应的概率值,这通过分布表中列出不同的自由度来表示, 查分布概率表时,按自由度及相应的概率去找到对应的值。如上图所示的单侧概率(7)=的查表方法就是,在第一列找到自由度7这一行,在第一行中找到概率这一列,行列的交叉处即是。 表中所给值直接只能查单侧概率值,可以变化一下来查双侧概率值。例如,要在自由度为7的卡方分布中,得到双侧概率为所对应的上下端点可以这样来考虑:双侧概率指的是在

区别词语的适用对象答案

1、这道题属于实词的辨析,主要考查区别词语的适用对象。 处世:待人接物,应付世情;与世人相处 经营:筹划并管理(企业等) 神游:形体不动而心神向往,如亲游其境。 处事: 办事。 从“行动上……,思想上……”可以看出贯穿这本回忆录的不是马内阿的“经营”之道,B 项排除。“处世”泛指人在社会上活动.跟人往来。“处事”是处理事物的意思,一般是指对具体事物的处理。此处显然是泛指,而不是具体事物,因此A项正确。 2、本题主要考查了实词的辨析和适用范围。 阻碍:阻力 障碍:阻挡前进的东西 瓶颈:比喻易生阻碍的部分 产业:指生产事业,特指工业 规模:事业、工程、运动、机构等所包含的范围 市场:买卖商品的场所,把货物的买主和卖主正式组织在一起进行交易的地方 就句意看来,此处要指出的是前进中的障碍;针对成本而言,可知后一空是要突出可再生能源发展的范围,“规模化”最为恰当。 3、这道题属于实词的辨析,主要考查区别词语的适用对象。 秉承:也作禀承,接受、承接的意思,一般用于抽象的事物,如秉承宗旨、秉承遗愿、秉承旨意等。 继承:指依法承接死者的遗产或权利或者后人继续做前人遗留下来的事业,一般用于具体的事物。 出谋划策:指制定计谋策略,为人出主意。 建言献策:一般用于在大的场合和大事情上献谋献策。 秉承一般用于抽象的事物,如秉承宗旨、秉承遗愿、秉承旨意等。继承一般用于具体的事物。而建言献策一般用于在大的场合和大事情上献谋献策,要比出谋划策正式和庄重。 4、这道题属于实词的辨析,主要考查区别词语的适用对象。 接近:靠近;相距不远。 直到:径直抵达,一直到(多指时间)。 截止:到一定期限停止进行。 截至:截止到某个时候。 根据题意时间到十月中旬,我们一般用“截至”表示时间截止到某个时候,故选择D. 5、这道题属于实词的辨析,主要考查区别词语的适用对象。 流年:指光阴 经年:久经时日 尘封:指物品放置过久,覆满灰尘 冰封:指江、河等冰冻覆盖 回忆:想过去的事 回味:正对食物或事件回想体会味道 忘却:忘记。 追忆:回忆;回想。 来之不易:得到它不容易。表示财物的取得或事物的成功是不容易的。 国泰民安:国家太平,人民安乐。用来形容全国形势稳定;人民安居乐业。 相比较以往,我们现在的生活是经历了很多艰难困苦而得到的,用“来之

声音

声音的三要素:响度、音调、音色1.响度: 响度的大小主要依赖于声强,也与声音的振幅有关。振幅越大,响度越大;振幅越小,响度越小。此外,响度还与距离发生体的远近有关,距离发声体越近,响度就越大。 2.音调: 音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。普通话中有四个声调:阴平、阳平、上声和去声,也是音调的重要形式,音高的变化决定了声调的性质 纯音只有一种频率的声音叫做纯音,而一般的声音是由几种频率的波组 成的。如音叉发出的声音就是纯音3.音色: 音色是指声音的感觉特性不同 的发声体由于材料、结构不同,发出声音的音色也就不同,这样我们就可以通过音色的不同去分辨不同的发 声体音色是声音的特色,根据不同的音色,即使在同一音高和同一声音强度的情况下,也能区分出是不同乐器或人发出的。 立体声 如果从记录到重放整个系统能 够在一定程度上恢复原发生的空间 感(不可能完全恢复)那么,这种具有一定程度的方位层次等空间分布 特性的重放声,称为音响技术中的立体声。 室内声学与音质 反射声与混响:直达声、反射声混响声:后期反射声则经过多次反射,其能量较小,而且彼此间的间隔比较小,好像混在一起一样。 声音质量主观评价 影视中的声音元素: 基本的声音元素:语言、音响效果、音乐 (一)语言 1、对白:电影中人物之间进行交流 的语言。它是电影中使用最多,因此也是最为重要的语言内容。 1)对话是人物思想、感情的主要 表达手段 2)对话是人物性格的主要表现手 段之一 3)对话是剧情发展的重要手段 4)对话是人物矛盾纠葛的重要表 现手段 2、独白:剧中人物在画面中对内心 活动所进行的自我表述。三种情 况: ①以自我为交流对象的独白, 即“自言自语”。 ②对其他剧中人物。如演讲、 祈祷等。 ③对观众。 3、旁白:以画外音的形式出现的人 物语言。主要有两种情况: ①第一人称的自述(画面中没有说 话的人) ②第三人称的介绍、议论、评说等(二)音响效果 1.动作音响:人和动物行动所产生的声音。如人的走路声,打斗声,动物的奔跑声。 2.自然音响:自然界中非人的行为动 作所发出的声音。如风声、雨声、鸟

标准正态分布表

标准正态分布表 x 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0 0.500 0 0.504 0 0.508 0 0.512 0 0.516 0 0.519 9 0.523 9 0.527 9 0.531 9 0.535 9 0.1 0.539 8 0.543 8 0.547 8 0.551 7 0.555 7 0.559 6 0.563 6 0.567 5 0.571 4 0.575 3 0.2 0.579 3 0.583 2 0.587 1 0.591 0 0.594 8 0.598 7 0.602 6 0.606 4 0.610 3 0.614 1 0.3 0.617 9 0.621 7 0.625 5 0.629 3 0.633 1 0.636 8 0.640 4 0.644 3 0.648 0 0.651 7 0.4 0.655 4 0.659 1 0.662 8 0.666 4 0.670 0 0.673 6 0.677 2 0.680 8 0.684 4 0.687 9 0.5 0.691 5 0.695 0 0.698 5 0.701 9 0.705 4 0.708 8 0.712 3 0.715 7 0.719 0 0.722 4 0.6 0.725 7 0.729 1 0.732 4 0.735 7 0.738 9 0.742 2 0.745 4 0.748 6 0.751 7 0.754 9 0.7 0.758 0 0.761 1 0.764 2 0.767 3 0.770 3 0.773 4 0.776 4 0.779 4 0.782 3 0.785 2 0.8 0.788 1 0.791 0 0.793 9 0.796 7 0.799 5 0.802 3 0.805 1 0.807 8 0.810 6 0.813 3 0.9 0.815 9 0.818 6 0.821 2 0.823 8 0.826 4 0.828 9 0.835 5 0.834 0 0.836 5 0.838 9 1 0.841 3 0.843 8 0.846 1 0.848 5 0.850 8 0.853 1 0.855 4 0.857 7 0.859 9 0.86 2 1 1.1 0.864 3 0.866 5 0.868 6 0.870 8 0.872 9 0.87 4 9 0.877 0 0.879 0 0.881 0 0.883 0 1.2 0.884 9 0.886 9 0.888 8 0.890 7 0.892 5 0.894 4 0.89 6 2 0.898 0 0.899 7 0.901 5 1.3 0.903 2 0.904 9 0.906 6 0.90 8 2 0.90 9 9 0.911 5 0.913 1 0.914 7 0.916 2 0.917 7 1.4 0.919 2 0.920 7 0.922 2 0.923 6 0.925 1 0.926 5 0.927 9 0.929 2 0.930 6 0.931 9 1.5 0.933 2 0.934 5 0.935 7 0.937 0 0.938 2 0.939 4 0.940 6 0.941 8 0.943 0 0.944 1 1.6 0.945 2 0.946 3 0.947 4 0.948 4 0.949 5 0.950 5 0.951 5 0.952 5 0.953 5 0.953 5 1.7 0.955 4 0.956 4 0.957 3 0.958 2 0.959 1 0.959 9 0.960 8 0.961 6 0.962 5 0.963 3 1.8 0.964 1 0.964 8 0.965 6 0.966 4 0.967 2 0.967 8 0.968 6 0.969 3 0.970 0 0.970 6 1.9 0.971 3 0.971 9 0.972 6 0.973 2 0.973 8 0.974 4 0.975 0 0.975 6 0.976 2 0.976 7 2 0.977 2 0.977 8 0.978 3 0.978 8 0.979 3 0.979 8 0.980 3 0.980 8 0.981 2 0.981 7 2.1 0.982 1 0.982 6 0.983 0 0.983 4 0.983 8 0.984 2 0.984 6 0.98 5 0 0.985 4 0.985 7 2.2 0.98 6 1 0.986 4 0.986 8 0.98 7 1 0.987 4 0.987 8 0.988 1 0.988 4 0.988 7 0.98 9 0 2.3 0.989 3 0.989 6 0.989 8 0.990 1 0.990 4 0.990 6 0.990 9 0.991 1 0.991 3 0.991 6 2.4 0.991 8 0.992 0 0.992 2 0.992 5 0.992 7 0.992 9 0.993 1 0.993 2 0.993 4 0.993 6 2.5 0.993 8 0.994 0 0.994 1 0.994 3 0.994 5 0.994 6 0.994 8 0.994 9 0.995 1 0.995 2 2.6 0.995 3 0.995 5 0.995 6 0.995 7 0.995 9 0.996 0 0.996 1 0.996 2 0.996 3 0.996 4 2.7 0.996 5 0.996 6 0.996 7 0.996 8 0.996 9 0.997 0 0.997 1 0.997 2 0.997 3 0.997 4 2.8 0.997 4 0.997 5 0.997 6 0.997 7 0.997 7 0.997 8 0.997 9 0.997 9 0.998 0 0.998 1 2.9 0.998 1 0.998 2 0.998 2 0.998 3 0.998 4 0.998 4 0.998 5 0.998 5 0.998 6 0.998 6 x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 3 0.998 7 0.999 0 0.999 3 0.999 5 0.999 7 0.999 8 0.999 8 0.999 9 0.999 9 1.000 0

相关主题