Introduction to Distributed Systems. [Картинка: any2fbimgloader13]. 2.3. THE CLIENT-SERVER MODEL. [Картинка: any2fbimgloader28]. 11. In Fig. 3-13 we have twoELECTION messages circulating simultaneously. While it does no harm to have two of them, it would be more elegant if one could be killed off. Devise an algorithm for doing this without affecting the operation of the basic election algorithm.. Various solutions to this problem are possible. One is to prohibit global variables altogether. However worthy this ideal may be, it conflicts with much existing software, such as UNIX. Another is to assign each thread its own private global variables, as shown in Fig. 4-7. In this way, each thread has its own private copy oferrno and other global variables, so conflicts are avoided. In effect, this decision creates a new scoping level, variables visible to all the procedures of a thread, in addition to the existing scoping levels of variables visible only to one procedure and variables visible everywhere in the program.. To provide insight into how processor allocation can really be accomplished, in this section we will discuss several different algorithms. These have been selected to cover a broad range of possibilities, but there are others as well.A Graph-Theoretic Deterministic Algorithm. Fig. 4-22. A simple primary-backup protocol on a write operation.. In Fig. 5-5 we summarize the four approaches we have discussed for dealing with shared files in a distributed system.. Nevertheless, it is possible to maintain consistency. Imagine thatP4now releases a lock, so it sends the updates toP2. The acknowledgement message fromP2 toP4 contains a note saying thatP1 also has a copy. WhenP4 contactsP1 it hears about P3. In this way, it eventually discovers the entire copyset, so all copies can be updated and it can update its own copyset. . 6.6.2. Linda. Small multiprocessors are often bus based, but large ones are switched. The protocols the large ones use require complex data structures and algorithms to keep the caches consistent. NUMA multiprocessors avoid this complexity by forcing the software to make all the decisions about which pages to place on which machine.. The DCE directory service is organized per cell. Each cell has aCell Directory Service (CDS), which stores the names and properties of the cell’s resources. This service is organized as a replicated, distributed data base system to provide good performance and high availability, even in the face of server crashes. To operate, every cell must have at least one running CDS server.. /…/cs.ucla.edu/fs/usr/ann/exams/january. Now consider how caching works in NFS. Several machines may have the same file open at the same time. Suppose that process 1 reads part of a file and caches it. Later, process 2 writes that part of the file. The write does not affect the cache on the machine where process 1 is running. If process 1 now rereads that part of the file, it will get an obsolete value, thus violating the UNIX semantics. This is the problem that DFS was designed to solve..