2.2.4. The ATM Adaptation Layer. For the record, we would like to point out that some authors use a different criterion to distinguish synchronous from asynchronous primitives (Andrews, 1991). In our view, the essential difference between a synchronous primitive and an asynchronous one is whether the sender can reuse the message buffer immediately after getting control back without fear of messing up thesend. When the message actually gets to the receiver is irrelevant.. [Картинка: any2fbimgloader61]. As we have pointed out repeatedly, the action of committing a transaction must be done atomically, that is, instantaneously and indivisibly. In a distributed system, the commit may require the cooperation of multiple processes on different machines, each of which holds some of the variables, files, and data bases, and other objects changed by the transaction. In this section we will study a protocol for achieving atomic commit in a distributed system.. [Картинка: any2fbimgloader93]. When a workstation owner is running processes on other people’s machines, it accumulates penalty points, a fixed number per second, as shown in Fig. 4-18. These points are added to its usage table entry. When it has unsatisfied requests pending, penalty points are subtracted from its usage table entry. When no requests are pending and no processors are being used, the usage table entry is moved a certain number of points closer to zero, until it gets there. In this way, the score goes up and down, hence the name of the algorithm.. Ousterhout also described several variations to this basic method to improve performance. One of these breaks the matrix into rows and concatenates the rows to form one long row. Withk processors, anyk consecutive slots belong to different processors. To allocate a new process group to slots, one lays a windowk slots wide over the long row such that the leftmost slot is empty but the slot just outside the left edge of the window is full. If sufficient empty slots are present in the window, the processes are assigned to the empty slots; otherwise, the window is slid to the right and the algorithm repeated. Scheduling is done by starting the window at the left edge and moving rightward by about one window’s worth per time slice, taking care not to split groups over windows. Ousterhout’s paper discusses these and other methods in more detail and gives some performance results.. Fig. 5-5. Four ways of dealing with the shared files in a distributed system.. 5.3.6. Multimedia. [Картинка: any2fbimgloader152]. A multiprocessor is available to do the analysis. Since the meteorological, agricultural, and environmental programs are all quite different, and were written by different people, it is not reasonable to make them threads of the same process. Instead, each is a separate process, and each maps the current photograph into its address space, as shown in Fig. 8-9. Note that the file containing the photograph may be mapped in at a different virtual address in each process. Although each page is present in memory only once, it may appear in each process’ page map at a different place. In this manner, all three processes can work on the same file at the same time in a convenient way.. Thesend_size andrcv_size parameters tell how large the outgoing message is and how many bytes are available for storing the incoming message, respectively.Rcv_port is used for receiving messages. It is the capability name of the port or port set being listened to.. The point of these examples is that the determination of cell boundaries tends to be driven by business considerations, not technical properties of DCE.. This problem is solved by providing jackets around some of the library procedures (mostly I/O procedures) that provide mutual exclusion for the individual calls. For the other procedures, a single global mutex makes sure that only one thread at a time is active in the library. The library procedures, such asread andfork are all jacketed procedures that handle the mutual exclusion and then call another (hidden) procedure to do the work. This solution is something of a quick hack. A better solution would be to provide a proper reentrant library.. In DCE a different authentication procedure is necessary. When a user logs in, the login program verifies the user’s identity using an authentication server. The protocol will be described later, but for the moment it is sufficient to say that it doesnot involve sending the password over the network. The DCE authentication procedure uses the Kerberos system developed at M.I.T. (Kohl, 1991; and Steiner et al., 1988). Kerberos, in turn, is based on the ideas of Need-ham and Schroeder (1978). For other approaches to authentication, see (Lamp-son et al., 1992; Wobber et al., 1994; and Woo and Lam, 1992)..