Fig. 1-4. A taxonomy of parallel and distributed computer systems.. 1.3.3. Bus-Based Multicomputers. 3.5.1. Distributed Deadlock Detection. Fig. 5-2. (a) A directory tree contained on one machine. (b) A directory graph on two machines.. To prevent two or more CPUs from trying to access the memory at the same time, some kind of bus arbitration is needed. Various schemes are in use. For example, to acquire the bus, a CPU might first have to request it by asserting a special request line. Only after receiving permission would it be allowed to use the bus. The granting of this permission can be done in a centralized way, using a bus arbitration device, or in a decentralized way, with the first requesting CPU along the bus winning any conflict.. Fig. 6-9. (a) A simplified view of the Cm* system. (b) The BBN Butterfly. The CPUs on the right are the same as those on the left (i.e., the architecture is really a cylinder).. Sequential consistencyis a slightly weaker memory model than strict consistency. It was first defined by Lamport (1979), who said that a sequentially consistent memory is one that satisfies the following condition:. Barriers are implemented by a central server. When a barrier is created, it is given a count of the number of processes that must be waiting on it before they can all be released. When a process has finished a certain phase in its computation it can send a message to the barrier server asking to wait. When the requisite number of processes are waiting, all of them are sent a message freeing them.. Orca has aforkstatement to create a new process on a user-specified processor. The new process runs the procedure named in theforkstatement. parameters, including objects, may be passed to the new process, which is how objects become distributed among machines. For example, the statement. As in the usual case, no kernel may passM up to its application program until it has seen theAccept message. Because theAccept message is not generated until it is certain thatk+1 machines have storedM, it is guaranteed that if one machine getsM, they all will eventually. In this way, recovery from the loss of anyk machines is always possible. As an aside, to speed up operation fork>0, whenever an entry is made in a history buffer, a short control packet is broadcast to announce this event to the world.. 5. Making Mach portable to a larger collection of machines.. Copy-on-write has several advantages over doing all the copying at the time the new process is created. First, some pages are read-only, so there is no need to copy them. Second, other pages may never be referenced, so even if they are potentially writable, they do not have to be copied. Third, still other pages may be writable, but the child may deallocate them rather than using them. Here too, avoiding a copy is worthwhile. In this manner, only those pages that the child actually writes on have to be copied.. Now let us look at the client side. In the simplest case, at the time of the first RPC, the client stub asks the cell directory server to find it a host running an instance of the server. The client then goes to the RPC daemon, which has a well-known endpoint, and asks it to look up the endpoint (e.g., TCP port) in its endpoint table. Armed with this information, the RPC can now take place. On subsequent RPCs this lookup is not needed. DCE also gives clients the ability to do more sophisticated searches for a suitable server when that is needed. Authenticated RPC is also an option. We will discuss authentication and protection later in this chapter.. Every named entity has a collection of attributes that describe it. These can include its country (e.g., US, GB, DE), its organization (e.g., IBM, Harvard, DOD), its department (e.g., CS, SALES, TAX), as well as more detailed items such as employee number, supervisor, office number, telephone number, and name. Each attribute has a value. An X.500 name is a list ofattribute=value items separated by slashes. For example,. Fig. 10-26. Major components of the DCE security system for a single cell..